| Age | Commit message (Collapse) | Author |
|
Removes .tasks/tasks.jsonl and replaces it with a local SQLite database
(.tasks/tasks.db). Adds --db flag to CLI. Removes sync command.
Amp-Thread-ID:
https://ampcode.com/threads/T-ac41b9b6-d117-46de-9e4f-842887a22f1d
Co-authored-by: Amp <amp@ampcode.com>
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-ca3b086b-5a85-422a-b13d-256784c04221
Co-authored-by: Amp <amp@ampcode.com>
|
|
|
|
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-ca3b086b-5a85-422a-b13d-256784c04221
Co-authored-by: Amp <amp@ampcode.com>
|
|
The task was to update `Omni/Task/Core.hs` to exclude tasks with
`taskType == Epic` from the `task ready` command.
I have: 1. Analyzed the codebase and located the `getReadyTasks`
function in `Omni/Task/Core.hs`. 2. Created a reproduction script to
confirm that Epics were appearing in the `ready` list. 3. Modified
`Omni/Task/Core.hs` to add `taskType task /= Epic` condition in
`getReadyTasks`. 4. Added a unit test in `Omni/Task.hs` to verify
that Epics are excluded from ready tasks. 5. Ran tests using `bild
--test Omni/Task.hs` and verified they pass. 6. Ran `lint Omni/Task.hs
Omni/Task/Core.hs` to ensure code quality.
The changes are verified and ready.
```haskell 397: isReady task = 398: taskType task /= Epic 399: && not
(isParent (taskId task)) 400: && all (`elem` doneIds) (blockingDepIds
task) ```
Added a new test case: ```haskell
Test.unit "ready tasks exclude epics" <| do
epic <- createTask "Epic task" Epic Nothing Nothing P2 []
Nothing ready <- getReadyTasks (taskId epic `notElem` map
taskId ready) Test.@?= True,
```
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-ca3b086b-5a85-422a-b13d-256784c04221
Co-authored-by: Amp <amp@ampcode.com>
|
|
The task "Add Approved status to Omni/Task" has been implemented.
**Changes made:**
1. **`Omni/Task/Core.hs`**:
* Updated `Status` enum to include `Approved`. * Updated
`TaskStats` record to include `approvedTasks` count. *
Updated `getTaskStats` to count `Approved` tasks. * Updated
`showTaskStats` to display the count. * Updated `printTreeNode'`
and `printTask` to visualize `Approved` status with `[+]` symbol
and green color.
2. **`Omni/Task.hs`**:
* Updated `help` documentation to list `approved` as a valid
status. * Updated `list` command to support filtering by
`--status=approved`. * Updated `update` command to support
setting status to `approved`. * Added unit tests for the new
CLI functionality.
**Verification:** * Ran `bild --test Omni/Task.hs` (with `CODEROOT`
explicitly set to current directory to bypass build caching issue)
and all tests passed. * Manually verified creating a task, updating
it to `approved`, showing it, viewing the tree, and viewing stats
using the compiled binary.
**Note on Build Environment:** * I encountered an issue where `bild`
would not rebuild because `CODEROOT` was pointing to `/home/ben/omni`
instead of the worker workspace `/home/ben/omni-worker-3`. I
temporarily set `export CODEROOT=$(pwd)` to successfully build and
verify the changes.
The `Approved` status is now fully supported in the Task core and CLI,
enabling the review workflow described in the plan.
|
|
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-ca3b086b-5a85-422a-b13d-256784c04221
Co-authored-by: Amp <amp@ampcode.com>
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-ca3b086b-5a85-422a-b13d-256784c04221
Co-authored-by: Amp <amp@ampcode.com>
|
|
The task to automate the git commit template configuration has been
completed.
**Changes Implemented:** 1. **Created `.gitmessage`**: Added
a standard commit message template to the repository root. This
template encourages following the "50/72 rule" for commit messages
(50-char summary, 72-char wrapped body) and provides sections for
explanation and links. 2. **Updated `Omni/Task.hs`**: Modified
the `init` command handler in the task manager CLI. Now, when `task
init` is run, it executes `git config commit.template .gitmessage`
in addition to initializing the task database.
**Verification:** - Ran `bild --test Omni/Task.hs` to verify that the
changes compile correctly and do not break existing tests. - The
`task init` command is the standard entry point for setting up the
repository environment (as per `AGENTS.md`), ensuring that all users
(human and agents) running the setup will automatically get the commit
template configured.
**Files Created/Modified:** - `Omni/Task.hs` (modified) - `.gitmessage`
(created)
The changes are ready for the system to commit.
[Omni/Task.hs](file:///home/ben/omni-worker-3/Omni/Task.hs)
[.gitmessage](file:///home/ben/omni-worker-3/.gitmessage)
|
|
The task was to verify that lowercase task IDs are accepted and do
not clash with old tasks.
I have verified this by: 1. **Analyzing the codebase**: I explored
`Omni/Task.hs` and `Omni/Task/Core.hs` to understand how task
IDs are generated, stored, and compared. I found that `matchesId`
implements case-insensitive comparison, which means `t-abc` and
`t-ABC` are effectively the same task ID in lookup operations. 2.
**Updating Core Logic**: I modified `Omni/Task/Core.hs` (via a
sub-agent operation that I verified) to:
* Implement `toBase36` for ID generation, ensuring new
IDs use only lowercase characters (0-9, a-z). * Implement
`generateUniqueId` which checks for collisions against existing
tasks (case-insensitively) before assigning a new ID. * Update
`createTask` to use `generateUniqueId` instead of `generateId`.
3. **Adding Tests**: I modified `Omni/Task.hs` to add unit tests
that explicitly verify:
* Lowercase task IDs can be created and found. * `generateId`
(now unique and lowercase) produces valid IDs that can be found.
4. **Verifying**: I ran `bild --test Omni/Task.hs` and confirmed
that all tests pass, including the new ones.
The system now generates lowercase IDs by default and actively
prevents collisions with any existing mixed-case IDs, satisfying
the requirements.
Task Status: Done (Ready to be closed by system/user) Changes are
committed to local files.
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-a65df310-235f-4d63-9f78-4affc537b80b
Co-authored-by: Amp <amp@ampcode.com>
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-ec034efc-0ef1-43df-8abe-b0cda0f9115b
Co-authored-by: Amp <amp@ampcode.com>
|
|
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-ffe97b65-9fa4-4cd2-a708-ebbf0b74d57f
Co-authored-by: Amp <amp@ampcode.com>
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-79499d9e-f4f4-40de-893c-524c32a45483
Co-authored-by: Amp <amp@ampcode.com>
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-79499d9e-f4f4-40de-893c-524c32a45483
Co-authored-by: Amp <amp@ampcode.com>
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-79499d9e-f4f4-40de-893c-524c32a45483
Co-authored-by: Amp <amp@ampcode.com>
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-79499d9e-f4f4-40de-893c-524c32a45483
Co-authored-by: Amp <amp@ampcode.com>
|
|
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-79499d9e-f4f4-40de-893c-524c32a45483
Co-authored-by: Amp <amp@ampcode.com>
|
|
|
|
Amp-Thread-ID: https://ampcode.com/threads/T-7109f8d0-feb4-4a24-bc4b-37743227e2cb
Co-authored-by: Amp <amp@ampcode.com>
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-7109f8d0-feb4-4a24-bc4b-37743227e2cb
Co-authored-by: Amp <amp@ampcode.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Add 'Review' status to Task tool - Add Omni/Agent/ directory with
setup and sync scripts - Add WORKER_AGENT_GUIDE.md - Configure custom
merge driver for tasks.jsonl
|
|
- Add 'task stats' command to show task statistics - Display total
tasks, status breakdown (open/in-progress/done) - Show epic count,
ready vs blocked tasks - Show task counts by priority (P0-P4) and
namespace - Support both human-readable and JSON output (--json flag)
- Add tests for stats command and stats --json - TaskStats data type
with ToJSON/FromJSON instances
All 31 tests passing.
Amp-Thread-ID:
https://ampcode.com/threads/T-4e6225cf-3e78-4538-963c-5377bbbccee8
Co-authored-by: Amp <amp@ampcode.com>
|
|
- Implement box-drawing characters (├──, └──, │) for
task tree visualization - Fix 'task create' flag ordering by using
[options] in docopt (same as 'task list') - Document TASK_TEST_MODE
environment variable in AGENTS.md Testing section - Add test case for
multi-flag ordering on 'task create' - Clean up test tasks polluted
in production database
All 29 tests passing.
Amp-Thread-ID:
https://ampcode.com/threads/T-4e6225cf-3e78-4538-963c-5377bbbccee8
Co-authored-by: Amp <amp@ampcode.com>
|
|
- Changed 'task list' usage from explicit flags to [options] -
Allows flags to be specified in any order (fixes t-10KNtTF) - All
combinations now work: --namespace --status, --status --namespace, etc.
- Updated AGENTS.md examples to use correct status argument format -
All tests passing (28/28)
|
|
- Implemented 'task show <id>' command with human-readable output -
Shows all task fields: title, type, status, priority, timestamps -
Displays dependencies with their types - Supports --json flag for
programmatic use - Added CLI tests for show command - Includes priority
descriptions (Critical/High/Medium/Low/Backlog)
|
|
|
|
Add 'task tree' command to show hierarchical task structure:
Usage:
task tree # Show all epics with their children task tree <id> #
Show specific epic/task with children
Features: - Visual status indicators: [ ] open, [~] in-progress,
[✓] done - Shows task type: [Epic] or [Task] - Indented display
for hierarchy - Shows namespace associations
Example output:
t-PpXWsU [Epic] [ ] Task Manager Improvements [Omni/Task.hs]
t-PpYZt2 [Task] [ ] Implement child ID generation t-PpZGVf [Task]
[✓] Add filtering by type and parent
Updated AGENTS.md with usage examples.
Closes task t-PpZlbL
|
|
Implemented proper pre-commit hook that: - Calls 'task export --flush'
to consolidate tasks - Auto-stages .tasks/tasks.jsonl if modified -
Runs before every commit
Added reminder message after 'task update' to inform users that task
changes will be committed on next git commit.
Updated AGENTS.md to document the auto-commit behavior.
This fixes the bug where task status updates (e.g., marking tasks as
Done) were not being committed to git.
|
|
Implement --status and --namespace filters for task list:
New filters: - --status: Filter by open, in-progress, or done -
--namespace: Filter by namespace (e.g., Omni/Task)
All filters can be combined: - task list --parent=t-abc123
--status=open - task list --type=epic --status=done - task list
--namespace="Omni/Task" --status=open
Updated listTasks signature to accept all filter parameters and apply
them in sequence. Updated AGENTS.md with examples.
Closes task t-PpZGVf
|
|
- Add TASK_TEST_MODE environment variable to use separate test database
- All file operations now use getTasksFilePath to respect test mode -
Tests use .tasks/tasks-test.jsonl instead of production database -
Add automatic migration from old task format (taskProject field)
to new format - Migrated tasks convert taskProject to WorkTask type
with empty parent - Old [Text] dependencies converted to [Dependency]
with Blocks type - Restore actual tasks from commit 3bf1691 (were
lost during testing)
This prevents accidental data loss when running tests and provides
backward compatibility for existing task databases.
|
|
Implement four dependency types based on beads patterns: - Blocks:
Hard dependency, blocks ready work queue (default) - DiscoveredFrom:
Work discovered during implementation (doesn't block) - ParentChild:
Epic/task relationships (blocks ready work) - Related: Soft
relationships (doesn't block)
Key changes: - New Dependency data type with depId and depType fields
- New DependencyType enum with four relationship types - Updated CLI
with --dep-type and --discovered-from flags - Enhanced getReadyTasks
to respect only blocking dependency types - Added comprehensive tests
for all dependency behaviors - Updated AGENTS.md with usage examples
and patterns
The discovered-from pattern is especially important for AI agents to
maintain context of work found during implementation while keeping
it immediately available in the ready work queue.
Amp-Thread-ID:
https://ampcode.com/threads/T-178b273a-3ac7-416c-a964-db89bac3c8f7
Co-authored-by: Amp <amp@ampcode.com>
|
|
Major refactoring of task data model: - Added TaskType enum (Epic |
WorkTask) - Replaced taskProject with taskType and taskParent fields -
Epics are containers for tasks (hierarchical organization) - Tasks can
have optional parent epics - Updated createTask signature to accept
type and parent - Updated CLI: --type=epic|task and --parent=<id>
options - Updated list command to filter by type and parent - Updated
printTask to display type and parent info - Fixed naming collision
(WorkTask instead of Task constructor)
Example usage:
task create "Auth System" --type=epic task create "Design API"
--type=task --parent=t-abc123 task list --type=epic task list
--parent=t-abc123
Completed task: t-8WR5Zg
Amp-Thread-ID:
https://ampcode.com/threads/T-85f4ee29-a529-4f59-ac6f-6ffec75b6a56
Co-authored-by: Amp <amp@ampcode.com>
|
|
Updated namespace handling to use the Omni.Namespace module: - Import
Omni.Namespace in Task CLI - Parse and validate namespace strings
using fromHaskellModule - Convert to proper path format using toPath -
Ensures namespaces are well-formed (e.g., Omni/Task -> Omni/Task.hs)
Example:
task create "Fix bug" project --namespace="Omni/Task" # Creates
task with validated namespace Omni/Task.hs
This provides type safety and ensures all task namespaces correspond
to actual code namespaces in the monorepo.
Amp-Thread-ID:
https://ampcode.com/threads/T-85f4ee29-a529-4f59-ac6f-6ffec75b6a56
Co-authored-by: Amp <amp@ampcode.com>
|
|
Tasks can now be associated with specific namespaces in the monorepo:
- Added taskNamespace (Maybe Text) field to Task data type - Updated
createTask to accept optional namespace parameter - Added --namespace
CLI option to task create command - Display namespace in task list
output (e.g., [Omni/Task]) - Updated tests to pass Nothing for
namespace - Updated AGENTS.md documentation
Example usage:
task create "Fix bug" project --namespace="Omni/Task"
Completed task: t-j0k1L2
Amp-Thread-ID:
https://ampcode.com/threads/T-85f4ee29-a529-4f59-ac6f-6ffec75b6a56
Co-authored-by: Amp <amp@ampcode.com>
|
|
Implemented a dependency-aware task tracker inspired by beads: - Task
CRUD operations (create, list, update, ready) - Dependency tracking
and ready work detection - JSONL storage with git sync via hooks -
Export/import for cross-machine synchronization - Short base62-encoded
task IDs (e.g., t-1ky7gJ2)
Added comprehensive AGENTS.md documentation: - Task manager usage and
workflows - Development tools (bild, lint, repl.sh) - Git-branchless
workflow guidelines - Coding conventions
Integrated with git hooks for auto-sync: - post-merge/post-checkout:
import tasks - pre-commit/pre-push: export tasks
Also includes beads design analysis document for reference.
Completed tasks: - t-a1b2c3: Show help text when invoked without args
- t-d4e5f6: Move dev instructions to AGENTS.md - t-g7h8i9: Implement
shorter task IDs - t-p6q7r8: Add git-branchless workflow docs
https: //ampcode.com/threads/T-85f4ee29-a529-4f59-ac6f-6ffec75b6a56
Co-authored-by: Amp <amp@ampcode.com> Amp-Thread-ID:
https://ampcode.com/threads/T-85f4ee29-a529-4f59-ac6f-6ffec75b6a56
|