| Age | Commit message (Collapse) | Author |
|
- Update OpenRouter model IDs to Claude 4.5 family:
- anthropic/claude-sonnet-4.5 (default) - anthropic/claude-haiku-4.5
(simple tasks) - anthropic/claude-opus-4.5 (complex tasks)
- Remove aider-chat from dev shell (broken, unused) - Simplify
llm package (remove llm-ollama plugin) - Update nixos-unstable for
llm 0.27.1
Task-Id: t-163
|
|
The build and tests pass. Let me provide a summary of the changes made:
Removed the amp dependency entirely from the codebase:
- Removed `runAmp` function (was running amp subprocess) - Removed
`shouldUseEngine` function (env var check `JR_USE_ENGINE`) - Removed
`monitorLog` and `waitForFile` helpers (for amp.log parsing) - Removed
unused imports: `System.IO`, `Data.Text.IO` - Made `runWithEngine`
the default/only path - Updated error messages from "amp" to "engine" -
Renamed `ampOutput` parameter to `agentOutput` in `formatCommitMessage
- Added `Data.IORef` import for `newIORef`, `modifyIORef'`, `readIORef`
- Removed amp.log parsing code: `LogEntry`, `processLogLine`,
`updateFro - Removed unused imports: `Data.Aeson`,
`Data.ByteString.Lazy`, `Data.Te
- Renamed `activityAmpThreadUrl` to `activityThreadUrl`
- Updated field references from `activityAmpThreadUrl` to
`activityThrea - Updated UI label from "Amp Thread:" to "Session:"
- Updated comment from "amp completes" to "engine completes"
- Updated `Amp.execute` to `Engine.runAgent` - Updated logging section
to describe Engine callbacks instead of amp.lo - Updated integration
test guidance to mock Engine instead of amp binary
Task-Id: t-141.6
|
|
All tests pass. Let me summarize the changes made:
- Added `taskComplexity :: Maybe Int` field to the `Task` data type
(1-5 - Updated SQL schema to include `complexity INTEGER` column -
Updated `FromRow` and `ToRow` instances to handle the new field -
Updated `tasksColumns` migration spec for automatic schema migration
- Updated `saveTask` to include complexity in SQL INSERT - Updated
`createTask` signature to accept `Maybe Int` for complexity
- Added `--complexity=<c>` option to the docopt help string -
Added complexity parsing in `create` command (validates 1-5 range)
- Added complexity parsing in `edit` command - Updated `modifyFn`
in edit to handle complexity updates - Updated all unit tests to
use new `createTask` signature with complexi - Added CLI tests for
`--complexity` flag parsing - Added unit tests for complexity field
storage and persistence
- Updated `selectModel` to use `selectModelByComplexity` based
on task c - Added `selectModelByComplexity :: Maybe Int -> Text`
function with map
- `Nothing` or 3-4 → `anthropic/claude-sonnet-4-20250514` (default)
- 1-2 → `anthropic/claude-haiku` (trivial/low complexity) - 5 →
`anthropic/claude-opus-4-20250514` (expert complexity)
- Updated `createTask` calls to include `Nothing` for complexity
Task-Id: t-141.5
|
|
Implementation complete. Summary of changes to
[Omni/Agent/Worker.hs](fi
1. **Added imports**: `Omni.Agent.Engine`, `Omni.Agent.Tools`,
`System.E
2. **Added `shouldUseEngine`** (L323-327): Checks `JR_USE_ENGINE=1`
envi
3. **Added `runWithEngine`** (L329-409): Native engine implementation
th
- Reads `OPENROUTER_API_KEY` from environment - Builds
`EngineConfig` with cost/activity/tool callbacks - Builds
`AgentConfig` with tools from `Tools.allTools` - Injects AGENTS.md,
facts, retry context - Returns `(ExitCode, Text, Int)` tuple
4. **Added `buildBasePrompt`** and `buildRetryPrompt`** (L411-465):
Help
5. **Added `selectModel`** (L467-471): Model selection (currently
always
6. **Updated `processTask`** (L92-120): Checks feature flag and
routes t
Task-Id: t-141.4
|
|
All checks pass. The implementation is complete:
1. Added imports for `Data.List` and `Omni.Fact` 2. Added
`getRelevantFacts` function that retrieves facts for the task's
3. Added `formatFacts` and `formatFact` functions to format facts
for in 4. Updated `runAmp` to call `getRelevantFacts`, format them,
and append
Task-Id: t-186
|
|
Build and lint both pass. The implementation:
1. Updated `formatTask` in
[Omni/Agent/Worker.hs](file:///home/ben/omni/ 2. Extracted deps
formatting to a separate `formatDeps` helper for consi 3. Added
`formatComments` and `formatComment` helpers that show timestam
Task-Id: t-184
|
|
All tests pass. Here's a summary of the changes I made:
1. **Added `Comment` data type** in `Omni/Task/Core.hs` with
`commentTex 2. **Added `taskComments` field** to the `Task` type
to store a list of 3. **Updated database schema** with a `comments
TEXT` column (stored as 4. **Added SQL instances** for `[Comment]`
to serialize/deserialize 5. **Added `addComment` function** to
add timestamped comments to tasks 6. **Added CLI command** `task
comment <id> <message> [--json]` 7. **Updated `showTaskDetailed`**
to display comments in the detailed vi 8. **Added unit tests**
for comments functionality 9. **Added CLI tests** for the comment
command 10. **Fixed dependent files** (`Omni/Agent/Worker.hs` and
`Omni/Jr/Web.h
Task-Id: t-167
|
|
The build passed. The task was to update nixpkgs hash in Biz/Bild.nix,
b
Task-Id: t-163
|
|
The build and tests pass. The change is complete - the task title
in com
Task-Id: t-159
|
|
All tests pass. Let me summarize the implementation:
I've added a human notes field for intervention tasks with the
following
1. **Omni/Task/Core.hs**:
- Added `retryNotes :: Maybe Text` field to `RetryContext` data type
- Added `notes` column to `retryContextColumns` for schema migration
- Updated `getRetryContext` to fetch the notes field from DB -
Updated `setRetryContext` to save the notes field to DB - Updated
`getAllRetryContexts` to include notes - Added `updateRetryNotes ::
Text -> Text -> IO ()` function to updat
2. **Omni/Jr/Web.hs**:
- Added new API endpoint: `POST /tasks/:id/notes` - Added
`NotesForm` type and `FromForm` instance - Added `taskNotesHandler`
to save notes - Updated `renderRetryContextBanner` to accept task
ID and display:
- Notes textarea form when max retries exceeded (intervention
tasks - Existing notes display for non-critical retry banners
3. **Omni/Agent/Worker.hs**:
- Updated worker prompt to include human notes/guidance in the
retry - Preserved existing notes when setting new retry context
4. **Omni/Jr.hs**:
- Updated all `RetryContext` creations to preserve existing notes
Task-Id: t-153.5
|
|
All tests pass. Let me summarize what was implemented:
- Extended `TaskActivity` type with new fields:
- `activityAmpThreadUrl` - Link to amp thread - `activityStartedAt` -
Work start timestamp - `activityCompletedAt` - Work completion
timestamp - `activityCostCents` - API cost in cents -
`activityTokensUsed` - Token usage count
- Updated `SQL.FromRow` and `SQL.ToRow` instances for the new fields -
Updated schema to include new columns in `task_activity` table - Added
`logActivityWithMetrics` function to log activities with all met -
Added `updateActivityMetrics` function to update metrics on existing
a - Added `getLatestRunningActivity` helper function
- Captures execution timing (start/end timestamps) - Retrieves amp
thread URL from `AgentLog.getStatus` - Converts credits to cents
and logs to activity record - Uses `logActivityWithMetrics` and
`updateActivityMetrics` for tracking
- Added `getStatus` function to retrieve current status (thread
URL, cre
- Added `TaskMetricsPartial` type for HTMX auto-refresh - Extended
`TaskDetailPage` to include `RetryContext` - Added Execution Details
section on task detail page showing:
- Amp Thread URL (clickable link) - Duration (formatted as "Xm Ys")
- Cost (formatted as "$X.XX") - Retry Attempt count (if applicable)
- Last Activity timestamp
- Added `/partials/task/:id/metrics` endpoint for HTMX auto-refresh
- Auto-refresh enabled while task is InProgress (every 5s) - Added
`renderExecutionDetails` helper function
- Added `executionDetailsStyles` for metric rows and execution section
- Added dark mode support for execution details section
Task-Id: t-148.4
|
|
The build passes. The fix I implemented:
1. **Changed the API type** in `Omni/Jr/Web.hs` to use `QueryParam
"stat 2. **Added manual parsing** in `taskListHandler` with
`parseStatus` and 3. **Applied `emptyToNothing`** to both status and
priority params befor
This ensures that when "All" is selected (empty string), it's
treated as
I also fixed two pre-existing issues that were blocking the build:
- Type annotation for `show stage` in `Omni/Task/Core.hs` -
`AesonKey.fromText` conversion in `Omni/Agent/Worker.hs`
Task-Id: t-149.1
|
|
Implementation complete. The task is done:
1. **Created `logActivity` helper** in `Omni/Task/Core.hs` that writes
t 2. **Integrated into Worker.hs** at all key points:
- `Claiming` - when claiming task - `Running` - when starting amp
- `Reviewing` - when amp completes successfully - `Retrying` -
on retry (includes attempt count in metadata) - `Completed` - on
success (includes result type in metadata) - `Failed` - on failure
(includes exit code or reason in metadata)
Task-Id: t-148.2
|
|
- More explicit prompt: MUST run bild --test, fix hlint issues -
Add workerQuiet flag to disable ANSI status bar in loop mode - Loop
mode uses simple putText, manual jr work keeps status bar
|
|
When amp completes but makes no changes, the task is already done.
Mark it Done directly instead of Review (which would fail to find
a commit).
|
|
- Reorder loop to check pending reviews before starting new work -
Loop no longer exits on missing commit (skips instead) - Add [loop],
[review], [worker] prefixes to all log messages - Worker leaves task
in InProgress on amp failure (avoids retry loop)
|
|
Fixes gitlint failures by using the pre-validated task title as the
commit subject line, while preserving amp's output in the body for
review context. Body lines are truncated to 72 chars for compliance.
|
|
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
|
|
Task-Id: t-1o2g8gugkr1
|
|
- Remove trailing punctuation from subject line - Truncate to 72
chars max - Capitalize first letter
Task-Id: t-1o2g8gugkr1
|
|
- 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
|
|
- 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
|
|
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>
|
|
- 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
|
|
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>
|
|
|
|
|
|
|
|
|
|
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-ca3b086b-5a85-422a-b13d-256784c04221
Co-authored-by: Amp <amp@ampcode.com>
|
|
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
|
|
The task to fix missing Time, Thread, and Credits in the Agent Log
has been completed.
**Changes Implemented:**
1. **`Omni/Agent/Log.hs`**:
* Added `Data.Aeson` and `Data.ByteString` imports for JSON
parsing. * Updated `Status` data type to include `statusThread`.
* Implemented `LogEntry` data type and `FromJSON` instance to
match the `amp` log format. * Added `processLogLine` function
to parse JSON log lines and update the global status. * Updated
`render` function to display the Thread ID. * Added logic to
extract and format `Time` and `Credits` from log entries.
2. **`Omni/Agent/Worker.hs`**:
* Added a log monitoring thread using `forkIO` in `runAmp`. *
Implemented `monitorLog` to tail the `_/llm/amp.log` file and
pass lines to `AgentLog.processLogLine`. * Added `waitForFile`
to ensure the log monitor waits for the log file to be created.
**Verification:** * Verified that both `Omni/Agent/Log.hs` and
`Omni/Agent/Worker.hs` compile successfully using `bild` (ignoring
the expected "no main" error for library modules). * Ran `lint`
on both files with no errors.
The agent status bar should now correctly display the Thread ID,
elapsed/current Time, and Credits usage as parsed from the `amp` logs.
|
|
|
|
|
|
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-5a2ca80d-5cba-409f-a262-6b5c652c257d
Co-authored-by: Amp <amp@ampcode.com>
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-5a2ca80d-5cba-409f-a262-6b5c652c257d
Co-authored-by: Amp <amp@ampcode.com>
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-5a2ca80d-5cba-409f-a262-6b5c652c257d
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-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-4f2905ef-a042-4880-b146-f6809ce83751
Co-authored-by: Amp <amp@ampcode.com>
|