summaryrefslogtreecommitdiff
path: root/Omni
AgeCommit message (Collapse)Author
2025-11-26Fix worker: only set Review after commit succeedsBen Sima
If commit fails (lint hooks, etc), save retry context and reopen task for another attempt. After 3 failures, mark for human intervention. Task-Id: t-1o2g8gugkr1
2025-11-26Fix auto-review to use full namespace pathBen Sima
Task-Id: t-1o2g8gugkr1
2025-11-26Add task detail view with status formBen Sima
Task-Id: t-1o2g8gugkr1.3 Amp-Thread-ID: https://ampcode.com/threads/T-dc8aefa0-840e-412d-bc09-9c446be48117 Co-authored-by: Amp <amp@ampcode.com>
2025-11-26Simplify worker to use lint --fixBen Sima
Task-Id: t-1o2g8gugkr1
2025-11-26Add task list view with mobile-friendly cardsBen Sima
Task-Id: t-1o2g8gugkr1.2
2025-11-26Clean commit message subject for gitlint complianceBen Sima
- Remove trailing punctuation from subject line - Truncate to 72 chars max - Capitalize first letter Task-Id: t-1o2g8gugkr1
2025-11-26Fix worker to run formatters before commitBen Sima
- Run ormolu --mode inplace on changed .hs files - Run hlint --refactor to auto-fix lint issues - Use tryCommit that returns Either instead of panicking - Prevents commit hook failures from hlint violations Task-Id: t-1o2g8gugkr1
2025-11-26Add jr loop command for autonomous work+review cycleBen Sima
- jr review [<task-id>] [--auto]: auto-accepts if tests pass - jr review (no args): picks first task in Review status - jr loop [--delay=N]: runs work->review loop continuously - Auto-review runs bild --test on task namespace Task-Id: t-1o2g8gugkr1
2025-11-26Add jr web command with Servant skeletonBen Sima
Task-Id: t-1o2g8gugkr1.1
2025-11-25jr: implement Gerrit-style conflict handlingBen Sima
- Add RetryContext to track failed attempts (merge conflicts, rejections) - jr review checks for clean cherry-pick before showing diff - If conflict detected, kicks back to coder with context - Worker prompt includes retry context (attempt count, conflict files, reason) - After 3 failed attempts, marks task for human intervention Task-Id: t-1o2g8gudqlx
2025-11-25worker: format commit messages for gitlint complianceBen Sima
Split amp output into subject/body with blank line separator. Task-Id: t-1jbp4l5o Amp-Thread-ID: https://ampcode.com/threads/T-7d88c849-530f-4703-9f90-cbc86d608e3c Co-authored-by: Amp <amp@ampcode.com>
2025-11-25task: use sqids for uniform-length IDsBen Sima
8-char lowercase IDs using sqids with sequential counter. Task-Id: t-1o2g8gu9y2z Amp-Thread-ID: https://ampcode.com/threads/T-7d88c849-530f-4703-9f90-cbc86d608e3c Co-authored-by: Amp <amp@ampcode.com>
2025-11-25fix(agent): show elapsed duration instead of wall clock timeBen Sima
Task-Id: t-1o2g8gu6p8o
2025-11-25fix(jr): review command git show argsBen Sima
Task-Id: t-1o2g8gu6p8o
2025-11-25feat: implement t-1o2eyi9ipb2Ben Sima
The `task sync` command is now implemented and working. It: 1. Exports tasks to `.tasks/tasks.jsonl` 2. Checks if there are any git changes 3. If there are changes, stages and commits them locally with message "task: sync task database" 4. If no changes, prints "No task changes to sync."
2025-11-25jr: add review command, --try-opus, Task-Id trailerBen Sima
- jr review <task-id>: show diff, accept/reject/skip - Worker uses --try-opus for better code quality - Commit messages use Task-Id: trailer (Gerrit-style) Task-Id: t-1o2g8gu6p8o
2025-11-24fix(task): ensure thread safety and isolate testsBen Sima
Re-introduces MVar locking in Task Core to prevent race conditions during Read-Modify-Write cycles (e.g. ID generation). Updates tests to use isolated SQLite databases instead of the production DB or JSONL files. Removes legacy test artifacts. Amp-Thread-ID: https://ampcode.com/threads/T-ac41b9b6-d117-46de-9e4f-842887a22f1d Co-authored-by: Amp <amp@ampcode.com>
2025-11-24deprecate(agent): move functionality to jrBen Sima
Moves the 'agent start' and 'agent merge-driver' commands to 'jr work' and 'jr merge-driver' respectively. Deletes Omni/Agent.hs as it is no longer the entry point. Amp-Thread-ID: https://ampcode.com/threads/T-ac41b9b6-d117-46de-9e4f-842887a22f1d Co-authored-by: Amp <amp@ampcode.com>
2025-11-24fix(agent): round credits to 2 decimal places and use totalCreditsBen Sima
Amp-Thread-ID: https://ampcode.com/threads/T-ac41b9b6-d117-46de-9e4f-842887a22f1d Co-authored-by: Amp <amp@ampcode.com>
2025-11-24agent: add note about legacy merge driver logicBen Sima
Adds a comment to the merge driver logic in Omni/Agent.hs acknowledging that it may be obsolete given the removal of git-tracked tasks.jsonl, but keeping it for now to avoid breaking potential legacy rebase scenarios. Amp-Thread-ID: https://ampcode.com/threads/T-ac41b9b6-d117-46de-9e4f-842887a22f1d Co-authored-by: Amp <amp@ampcode.com>
2025-11-24feat: implement t-1o2egbj8o0n.3Ben Sima
I have implemented the `jr work` command in `Omni/Jr.hs`. **Changes:** 1. **Modified `Omni/Jr.hs`**: * Added necessary imports (`Omni.Agent.Core`, `Omni.Agent.Worker`, `System.Directory`, `System.FilePath`, `Data.Text`). * Updated the Docopt usage to include `jr work [<task-id>]`. * Implemented the `work` command handler in the `move` function to initialize a `Worker` and call `Worker.start`, mirroring the logic in `Omni/Agent.hs`. * Added unit tests to verify parsing of the `work` command with and without a task ID. **Verification:** * Ran `bild --test Omni/Jr.hs` which passed, confirming the code compiles and tests pass. * Ran `lint Omni/Jr.hs` which passed. * Verified `_/bin/jr --help` shows the new command. I am now ready to exit.
2025-11-24Remove harvest command and documentationBen Sima
The 'harvest' functionality was tied to git-synced JSONL task files, which have been replaced by a local SQLite database. This commit removes the command from the CLI and updates documentation to reflect the new workflow. Amp-Thread-ID: https://ampcode.com/threads/T-ac41b9b6-d117-46de-9e4f-842887a22f1d Co-authored-by: Amp <amp@ampcode.com>
2025-11-24feat: implement t-1o2egbj8o0n.2Ben Sima
I have successfully integrated the existing `Omni/Task` functionality into `jr`. The `Omni/Jr.hs` file already had the logic to forward `task` commands to `Omni/Task.main`, but it was failing to compile/run because it was missing a dependency declaration for `sqlite-simple` (which `Omni/Task` relies on). I added the missing dependency to `Omni/Jr.hs`: ```haskell -- : dep sqlite-simple ``` I verified the fix by running: 1. `Omni/Ide/run.sh Omni/Jr.hs task list` - Verified it lists tasks correctly. 2. `Omni/Ide/run.sh Omni/Jr.hs task create "Test Task via Jr"` - Verified it creates tasks. 3. `Omni/Ide/run.sh Omni/Jr.hs task show <id>` - Verified it shows task details. 4. `Omni/Ide/run.sh Omni/Jr.hs task -h` - Verified it shows `task` specific help. 5. `Omni/Ide/run.sh Omni/Jr.hs task test` - Verified it runs the `Omni/Task` test suite. 6. `bild --test Omni/Jr.hs` - Verified `Omni/Jr.hs` itself builds and passes its own tests. All `jr task` commands now behave exactly like the `task` command, fulfilling the requirements. The existing `Omni/Task` logic is fully reused.
2025-11-24agent: restore git commit with amp outputBen Sima
Re-enables git commits in the worker, using the captured output from 'amp' as the commit message. Also updates 'Omni/Agent.hs' to handle the API change in TaskCore.exportTasks (commenting out harvest logic for now as it depended on git-tracked tasks). Amp-Thread-ID: https://ampcode.com/threads/T-ac41b9b6-d117-46de-9e4f-842887a22f1d Co-authored-by: Amp <amp@ampcode.com>
2025-11-24task: migrate storage from jsonl to sqliteBen Sima
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>
2025-11-24Remove git actions from workerBen Sima
2025-11-24fix(worker): remove unnecessary reset to worker branchBen Sima
2025-11-24Allow worker to take a specific task to work onBen Sima
2025-11-24feat: implement t-1o2egbj8o0n.1Ben Sima
2025-11-24feat(jr): Create Omni/Jr.hs main entry pointBen Sima
Amp-Thread-ID: https://ampcode.com/threads/T-663b6704-a8b0-4983-a62f-0ef00c61410c Co-authored-by: Amp <amp@ampcode.com>
2025-11-24Display credits correctly and don't loop agentBen Sima
2025-11-24Simplify agent commandBen Sima
I think the cd'ing and stuff was messing with the direnv assumptions.
2025-11-24Restore AGENTS.md instructions to workerBen Sima
2025-11-22Merge branch 'task/t-1o2cbco62ly' into liveBen Sima
2025-11-22feat(agent): restore vertical status layoutBen Sima
Amp-Thread-ID: https://ampcode.com/threads/T-cb6b70cf-bfac-4ef2-bad9-280aa47efacf Co-authored-by: Amp <amp@ampcode.com>
2025-11-22feat: implement t-1o2cbco62lyBen Sima
2025-11-22task: complete t-1o2c9vazf64 (Merge)Ben Sima
Amp-Thread-ID: https://ampcode.com/threads/T-ca3b086b-5a85-422a-b13d-256784c04221 Co-authored-by: Amp <amp@ampcode.com>
2025-11-22feat: implement t-1o2c9vazf64Ben Sima
2025-11-22fix: cleanup test artifact in Omni/Task/RaceTest.hsBen Sima
Amp-Thread-ID: https://ampcode.com/threads/T-ca3b086b-5a85-422a-b13d-256784c04221 Co-authored-by: Amp <amp@ampcode.com>
2025-11-22fix: remove redundant imports in Omni/Agent/Log.hsBen Sima
Amp-Thread-ID: https://ampcode.com/threads/T-ca3b086b-5a85-422a-b13d-256784c04221 Co-authored-by: Amp <amp@ampcode.com>
2025-11-22fix: fix compilation and lint errorsBen Sima
Amp-Thread-ID: https://ampcode.com/threads/T-ca3b086b-5a85-422a-b13d-256784c04221 Co-authored-by: Amp <amp@ampcode.com>
2025-11-22fix: fix compilation errors in Omni/Ci.hsBen Sima
Amp-Thread-ID: https://ampcode.com/threads/T-ca3b086b-5a85-422a-b13d-256784c04221 Co-authored-by: Amp <amp@ampcode.com>
2025-11-22Merge branch 'review/t-1o2bxd3kezj' into liveBen Sima
2025-11-22task: complete t-1o2bxd11zv9 (Merge)Ben Sima
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
2025-11-22Merge branch 'review/t-1o2bxcq7999.4' into liveBen Sima
2025-11-22chore: remove legacy Omni/Ci.shBen Sima
Amp-Thread-ID: https://ampcode.com/threads/T-ca3b086b-5a85-422a-b13d-256784c04221 Co-authored-by: Amp <amp@ampcode.com>
2025-11-22Merge branch 'review/t-1o2bxcq7999.3' into liveBen Sima
2025-11-22task: complete t-1o2bxcq7999.2 (Merge)Ben Sima
Amp-Thread-ID: https://ampcode.com/threads/T-ca3b086b-5a85-422a-b13d-256784c04221 Co-authored-by: Amp <amp@ampcode.com>
2025-11-22feat: implement t-1o2bxd3kezjBen Sima
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, ```
2025-11-22feat: implement t-1o2bxcq7999.4Ben Sima
I have completed the task. 1. **Analysis**: I located `Omni/Agent/start-worker.sh` and identified the correct location to insert the `git sync` command (before building `task` and `agent`). 2. **Implementation**: I modified `Omni/Agent/start-worker.sh` to run `git sync` inside the worker directory. 3. **Verification**: * Ran `lint Omni/Agent/start-worker.sh` (passed). * Ran `bash -n Omni/Agent/start-worker.sh` to check syntax (passed). * Ran `bild --test Omni/Agent.hs` to ensure no regressions in the associated Haskell code (passed). The `start-worker.sh` script now syncs the worker repository before building the necessary tools, ensuring the worker runs with the latest code. Files updated: - `Omni/Agent/start-worker.sh`