summaryrefslogtreecommitdiff
path: root/Omni/Jr
AgeCommit message (Collapse)Author
2025-11-30Remove amp dependency entirelyBen Sima
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
2025-11-29Expand intervention page to show all human action itemsBen Sima
All tests pass and lint is clean. The implementation is complete: **Changes made:** 1. **Omni/Task/Core.hs:** - Added `EpicForReview` data type to hold epic with progress info - Added `HumanActionItems` data type to group all three categories - Added `getHumanActionItems` function that returns: - `failedTasks`: Tasks with retry_attempt >= 3 - `epicsInReview`: Epics where all children are Done (and has at le - `humanTasks`: HumanTask type tasks in Open status 2. **Omni/Jr/Web.hs:** - Updated `InterventionPage` data type to use `HumanActionItems` - Updated `interventionHandler` to call `getHumanActionItems` - Rewrote `ToHtml InterventionPage` to show 3 sections with headers - Added `renderEpicReviewCard` for epic review cards with "Approve & - Renamed navbar link from "Intervention" to "Human Action" Task-Id: t-193.5
2025-11-29Add Draft status option to task detail status dropdownBen Sima
Build and tests pass. The change has been successfully implemented - Dra Task-Id: t-192
2025-11-29Add dark mode styles for retry/failure banner on task detail pagesBen Sima
Build and tests pass. The dark mode styles for the retry/failure banner Task-Id: t-191
2025-11-29Add dark mode styles for KB fact detail page form elementsBen Sima
The build and tests pass. The dark mode styles for KB fact detail page f Task-Id: t-190
2025-11-29Sort /blocked page by blocking impact (transitive dependents)Ben Sima
All tests pass. The implementation is complete: **Summary of changes:** 1. **Omni/Task/Core.hs** - Added helper functions: - `getBlockingImpact`: Counts how many tasks are transitively blocked - `getTransitiveDependents`: Gets all tasks that depend on a task (di - `dependsOnTask`: Helper to check if a task depends on a given ID wi 2. **Omni/Jr/Web.hs** - Updated blocked page: - Changed `BlockedPage` type to include blocking impact: `[(TaskCore. - Updated `blockedHandler` to compute blocking impact and sort by it - Added `renderBlockedTaskCard` to display tasks with their blocking - Updated the info message to explain the sorting 3. **Omni/Jr/Web/Style.hs** - Added CSS: - `.blocking-impact` badge style (light mode) - `.blocking-impact` dark mode style Task-Id: t-189
2025-11-29Render task descriptions as markdown (not just epics)Ben Sima
Build and tests pass. The fix is complete - task descriptions now render Task-Id: t-187
2025-11-29Add comments UI to task detail web pagesBen Sima
The build passes. The comments UI is already fully implemented in the co 1. **Route**: `/tasks/:id/comment` with POST handler (line 226) 2. **Handler**: `taskCommentHandler` (lines 763-766) calls `TaskCore.add 3. **Form type**: `CommentForm` (lines 374-379) 4. **Display section**: renders in `TaskDetailPage` (lines 1484-1490) sh - Comment count in header - Empty message if no comments - Each comment with text and relative timestamp 5. **Comment form**: textarea with "Post Comment" button (lines 1553-156 6. **Helper function**: `renderComment` (lines 1547-1551) 7. **CSS**: Full styling in `Style.hs` including dark mode (lines 552-58 The implementation is complete and the build passes. Task-Id: t-183
2025-11-29Add clickable priority dropdown on task detail pagesBen Sima
The build passes successfully. Let me provide a summary of the changes m I implemented the clickable priority dropdown on task detail pages, mirr 1. **Added new API route** for priority updates: ```haskell "tasks" :> Capture "id" Text :> "priority" :> ReqBody '[FormUrlEncode ``` 2. **Added new types**: - `PriorityBadgePartial` - partial response for HTMX updates - `PriorityForm` - form data for priority changes with `FromForm` ins 3. **Added handler** `taskPriorityHandler` that updates task priority vi 4. **Added priority dropdown components**: - `priorityBadgeWithForm` - container with clickable badge and dropdo - `clickablePriorityBadge` - the clickable badge showing current prio - `priorityDropdownOptions` - dropdown menu with P0-P4 options - `priorityOption` - individual priority option with HTMX form 5. **Added JavaScript** `priorityDropdownJs` for dropdown toggle/close b 6. **Updated task detail page** to use `priorityBadgeWithForm` instead o 7. **Added `ToHtml` instance** for `PriorityBadgePartial` 1. **Added priority badge styles** for P0-P4 with appropriate colors 2. **Added priority dropdown styles** (mirroring status dropdown) 3. **Added dark mode styles** for priority badges and dropdown Task-Id: t-182
2025-11-29Add sorting options to task list pagesBen Sima
The implementation is complete and all tests pass. Here's a summary of w 1. Added `SortOrder` data type with 5 options: `SortNewest`, `SortOldest 2. Added helper functions: `parseSortOrder`, `sortOrderToParam`, `sortOr 3. Updated API routes to include `?sort=` query param for `/ready`, `/bl 4. Updated page data types to include `SortOrder` 5. Updated all list handlers to parse sort param and apply sorting 6. Added `sortDropdown` component that renders a dropdown with all sort 7. Added `sortOption` helper to render individual sort options with acti 8. Updated all `ToHtml` instances for list pages to render the sort drop 1. Added `sortDropdownStyles` for the page header row and sort dropdown 2. Added dark mode styles for the sort dropdown Task-Id: t-181
2025-11-29Add time range filter to homepage Task Status sectionBen Sima
The build and tests pass with no errors. The time range filter feature f **Implementation summary:** - Route accepts `?range=today|week|month|all` query param - `TimeRange` type with `Today`, `Week`, `Month`, `AllTime` variants - `homeHandler` filters both tasks and activities by time range - Toggle buttons rendered with `timeFilterBtn` helper - Full CSS styling in `timeFilterStyles` with dark mode support - Default selection: "All Time" Task-Id: t-180
2025-11-29Add cost and duration metrics to homepage Task Status sectionBen Sima
The implementation is complete. The build passed with `bild --test Omni/ **Summary of changes:** 1. **Omni/Task/Core.hs**: Added `getGlobalAggregatedMetrics :: IO Aggreg 2. **Omni/Jr/Web.hs**: - Updated `HomePage` data type to include `AggregatedMetrics` paramet - Updated `homeHandler` to fetch global metrics via `getGlobalAggrega - Updated `ToHtml HomePage` instance to add two new cards: "Cost" (fo - Added helper functions `metricCard`, `formatCost`, and `formatDurat 3. **Omni/Jr/Web/Style.hs**: Added `badge-neutral` CSS styling (gray bor Task-Id: t-179
2025-11-29Fix Cancel button on description edit formBen Sima
The fix is complete: 1. Changed the Cancel element from `<a href="#">` to `<button type="butt 2. Added button reset styling (transparent background, no border, underl The `<button>` element works better with HTMX because it doesn't have th Task-Id: t-178
2025-11-29Remove background and border from breadcrumbsBen Sima
Build and tests pass. I've removed the background and border from `.brea Task-Id: t-177
2025-11-29Inline description editing with HTMX view/edit swapBen Sima
The implementation is complete. Here's a summary of the changes: **Omni/Jr/Web.hs:** 1. Added new API routes for `/tasks/:id/description/view` and `/tasks/:i 2. Added `DescriptionViewPartial` and `DescriptionEditPartial` data type 3. Added `ToHtml` instances for both partials with HTMX attributes for v 4. Added handlers: `descriptionViewHandler`, `descriptionEditHandler`, ` 5. Updated the TaskDetailPage render to use the view partial instead of **Omni/Jr/Web/Style.hs:** 1. Added `.description-block` container styles 2. Added `.description-header` flex styles for header with title and edi 3. Added `.edit-link` and `.cancel-link` styles (12px font, blue for edi 4. Added dark mode overrides for the links Task-Id: t-175
2025-11-29Fix dark mode contrast for homepage stat card numbersBen Sima
Build and tests passed with no errors. Task-Id: t-174
2025-11-29Fix navbar dropdown click-to-toggle behaviorBen Sima
The build passed with no errors. The implementation adds: 1. JavaScript click-toggle handler for navbar dropdowns (closes all, the 2. Click-outside-to-close behavior 3. CSS rule for `.navbar-dropdown.open` state to show dropdown content Task-Id: t-173
2025-11-29Add breadcrumbs navigation for task hierarchyBen Sima
The implementation is complete. Here's a summary of the changes made: 1. Added `Breadcrumb` data type and `Breadcrumbs` type alias 2. Added `pageBodyWithCrumbs` function that renders the page with breadc 3. Added `renderBreadcrumbs` function to render the breadcrumb navigatio 4. Added `getAncestors` helper to traverse task parent chain 5. Added `taskBreadcrumbs` helper to build breadcrumbs including parent Updated all page ToHtml instances to use breadcrumbs: - `ReadyQueuePage`: Jr > Ready Queue - `BlockedPage`: Jr > Blocked - `InterventionPage`: Jr > Needs Intervention - `KBPage`: Jr > Knowledge Base - `FactDetailPage`: Jr > Knowledge Base > Fact #N - `EpicsPage`: Jr > Epics - `TaskListPage`: Jr > Tasks - `TaskDetailPage`: Jr > Tasks > (parent chain) > task-id - `TaskReviewPage`: Jr > Tasks > task-id > Review - `TaskDiffPage`: Jr > Tasks > task-id > Diff (short hash) - `StatsPage`: Jr > Stats - `HomePage`: Uses regular `pageBody` (no breadcrumbs) Added `breadcrumbStyles` function with CSS for: - `.breadcrumb-container`: Light gray background, subtle bottom border - `.breadcrumb-list`: Flex layout with wrapping - `.breadcrumb-item`: Flex items with gap - `.breadcrumb-sep`: Gray separator ">" - `.breadcrumb-current`: Current page label (no link) - Link styling for breadcrumb links Added dark mode overrides for breadcrumbs in `darkModeStyles`. Task-Id: t-172
2025-11-29Compact task detail metadata into inline Gerrit-style layoutBen Sima
The implementation is complete. Here's a summary of changes: **Omni/Jr/Web.hs:** - Added `metaSep` helper function for the `·` separator - Added top-level `priorityDesc` function mapping priority levels to hum - Replaced the vertical `detail-row` layout with compact inline `task-me - Primary line: ID · Type · Status · Priority · Namespace (optional) - Secondary line: Parent (optional) · Created · Updated - Removed the shadowing local `priorityDesc` from the `where` clause **Omni/Jr/Web/Style.hs:** - Added `taskMetaStyles` function with styles for `.task-meta`, `.task-m - Added dark mode overrides for the new task-meta classes - Registered `taskMetaStyles` in the stylesheet Task-Id: t-171
2025-11-29Fix dark theme description text invisible on task detail pageBen Sima
The fix is complete. The build and tests pass. The change adds `color "# Task-Id: t-170
2025-11-29Fix Recent Activity pagination and refresh bugsBen Sima
Build and tests pass. The implementation is complete: **Summary of changes to [Omni/Jr/Web.hs](file:///home/ben/omni/Omni/Jr/W 1. Added `Data.Time.Clock.POSIX` import for `posixSecondsToUTCTime` and 2. Replaced `RecentActivityPartial` with two new types: - `RecentActivityNewPartial` - for auto-refresh (prepends new items) - `RecentActivityMorePartial` - for "Load More" pagination 3. Updated API routes: - `/partials/recent-activity-new?since=<unix-ts>` - returns new items - `/partials/recent-activity-more?offset=<n>` - returns paginated old 4. Updated `HomePage` render with proper HTMX attributes: - Added `#recent-activity` ID and `data-newest-ts` attribute - Added `#activity-list` ID for the list container - Added `#activity-load-more` ID for the button - Updated hx-targets and hx-swap attributes 5. Added `taskToUnixTs` helper function 6. Created two new ToHtml instances with OOB updates for button replacem Task-Id: t-169
2025-11-28Use HTMX hx-boost for smoother page navigationBen Sima
The build and tests pass. The `hx-boost="true"` is already implemented o ```haskell pageBody content = Lucid.body_ [Lucid.makeAttribute "hx-boost" "true"] <| do navbar content ``` This means: - All anchor tags (`<a>`) and forms within the body will automatically u - Page content will be swapped via AJAX without full page reloads - Scroll position is preserved, making navigation feel snappier The task appears to have already been implemented correctly. The build p Task-Id: t-151.5
2025-11-28Add description edit form to task detail page in web UIBen Sima
The build and tests pass. The implementation adds a description edit for 1. An expandable `<details>` section similar to the existing Epic design 2. A textarea for editing the description 3. HTMX `hx-post` for seamless update (with `hx-swap="none"` since the e 4. Also shows "No description yet." message when description is empty (p Task-Id: t-168
2025-11-28Add comments field to tasks for providing extra contextBen Sima
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
2025-11-28Fix llm tool installation - update nixpkgs hash in Biz/Bild.nixBen Sima
The build passed. The task was to update nixpkgs hash in Biz/Bild.nix, b Task-Id: t-163
2025-11-28Remove Jr Dashboard header from homepageBen Sima
The build and tests pass. The "Jr Dashboard" header has been removed fro Task-Id: t-154.6
2025-11-28Add pagination to Recent Activity with HTMX load more buttonBen Sima
The implementation is complete. Here's a summary: **Changes made:** 1. **API**: Added `QueryParam "offset" Int` to the `/partials/recent-act 2. **Data types**: - Updated `HomePage` to include a `Bool` for whether there are more t - Updated `RecentActivityPartial` to include `nextOffset :: Int` and 3. **Homepage rendering**: Shows a "Load More" button when there are mor 4. **Partial rendering**: The `RecentActivityPartial` now shows a "Load 5. **Handler**: `recentActivityHandler` now supports pagination with off 6. **Styling**: Added CSS for `.load-more-btn` and `.btn-secondary` clas The HTMX integration uses: - `hx-get` to fetch the next page with offset - `hx-target="closest .recent-activity"` to target the parent container - `hx-swap="beforeend"` to append new items (including another Load More Task-Id: t-151.4
2025-11-28Add create fact form in web UIBen Sima
All tests pass. The create fact form has been added to the web UI. Here' 1. **Added `FactCreateForm` data type** - New form type to handle the cr 2. **Added API route** - `POST /kb/create` endpoint that accepts the for 3. **Added handler** - `factCreateHandler` that creates a new fact using 4. **Added form UI** - A collapsible form on the KB page with fields for - Project (required) - Fact Content (required textarea) - Related Files (optional, comma-separated) - Confidence level (0.0-1.0, default 0.8) 5. **Added CSS styles** - Styling for the create fact section in both li Task-Id: t-158.6
2025-11-28Add fact detail/edit view in web UIBen Sima
All tests pass with no warnings. The implementation is complete: 1. **Added new routes** (`/kb/:id`, `/kb/:id/edit`, `/kb/:id/delete`) to 2. **Created `FactDetailPage` data type** with `FactDetailFound` and `Fa 3. **Created `FactEditForm`** data type for handling form submissions 4. **Added handlers** (`factDetailHandler`, `factEditHandler`, `factDele 5. **Added `ToHtml` instance for `FactDetailPage`** with: - Detail view showing project, confidence, created date - Editable content textarea - Related files input - Confidence slider - Source task link - Danger zone with delete button 6. **Updated KB listing** to make facts clickable links to their detail 7. **Added CSS styles** for form elements, buttons, danger zone, and err Task-Id: t-158.5
2025-11-28Create /kb web page listing facts with confidence scoresBen Sima
The implementation is complete. The `/kb` web page now: 1. Fetches all facts from the database via `Fact.getAllFacts` 2. Displays each fact in a card showing: - Fact ID - Confidence score as a colored badge (green ≥80%, yellow ≥50%, red < - Project name - Fact content - Related files (if any) - Source task link (if any) Task-Id: t-158.4
2025-11-28Add Omni/Fact.hs core module with CRUD operationsBen Sima
The build passes now. The task was to add `Omni/Fact.hs` with CRUD opera - `createFact` - Creates a new fact - `getFact` - Gets a fact by ID - `getAllFacts` - Gets all facts - `getFactsByProject` - Gets facts for a project - `getFactsByFile` - Gets facts related to a file - `updateFact` - Updates an existing fact - `deleteFact` - Deletes a fact by ID The actual fix needed was completing the pattern matches in `Omni/Jr/Web Task-Id: t-158.2
2025-11-27Ensure keyboard accessibility for status badge dropdownBen Sima
The implementation is complete. Here's a summary of the keyboard accessi **Changes to Omni/Jr/Web.hs:** 1. Added `statusDropdownJs` - JavaScript functions for keyboard handling - `toggleStatusDropdown()` - Opens/closes dropdown, updates aria-expa - `closeStatusDropdown()` - Closes dropdown, returns focus to trigger - `handleStatusKeydown()` - Handles Enter/Space (toggle), Escape (clo - `handleMenuItemKeydown()` - Handles ArrowUp/ArrowDown (navigate), E - Click-outside handler to close open dropdowns 2. Updated `clickableBadge`: - Added `tabindex="0"` for keyboard focusability - Added `role="button"` for screen readers - Added `aria-haspopup="true"` and `aria-expanded="false"` - Changed onclick to use `toggleStatusDropdown()` function - Added `onkeydown` handler 3. Updated `statusDropdownOptions`: - Added `role="menu"` and `aria-label` for accessibility 4. Updated `statusOption`: - Added `role="none"` on form wrapper - Added `role="menuitem"` on button - Added `tabindex="-1"` (focus managed by JS) - Added `onkeydown` handler **Changes to Omni/Jr/Web/Style.hs:** - Added focus styles for `.status-dropdown-option:focus` - Added focus styles for `.status-badge-clickable:focus` Task-Id: t-157.3
2025-11-27Click badge to show inline dropdown optionsBen Sima
The implementation is complete. The changes I made: 1. **Web.hs** - Replaced the `statusBadgeWithForm` function from a `<sel - `statusBadgeWithForm` now creates a container div with the clickabl - `clickableBadge` renders a badge that, when clicked, toggles the "o - `statusDropdownOptions` renders all the status options as badge-sty - `statusOption` renders each status option as an HTMX form that upda 2. **Style.hs** - Added CSS styles for the new dropdown component: - `.status-badge-dropdown` - Container with relative positioning - `.status-badge-clickable` - Clickable badge styling with cursor poi - `.dropdown-arrow` - Arrow indicator styling - `.status-dropdown-menu` - Hidden dropdown that appears when parent - `.status-option-form` and `.status-dropdown-option` - Styling for o - Dark mode support for the dropdown menu Task-Id: t-157.2
2025-11-27Merge status badge display and dropdown into single elementBen Sima
The build and tests pass. The changes merge the status badge display and Task-Id: t-157.1
2025-11-27Audit and fix any remaining vertical button stacksBen Sima
The changes are in place. The build passes with no errors. Summary of ch 1. **`.actions`** - Added explicit `flexDirection row` to ensure horizon 2. **`.review-actions`** - Added `display flex`, `flexDirection row`, `f 3. **`.form-actions`** - Added same flex row layout for consistency Task-Id: t-156.6
2025-11-27Make filter buttons horizontal instead of vertical stackingBen Sima
The changes are complete. The filter buttons are now styled to be horizo 1. Changed `.filter-group` from `flexDirection column` to `flexDirection 2. Added `whiteSpace nowrap` to labels to prevent wrapping 3. Updated responsive styles for mobile to maintain horizontal layout wi Task-Id: t-156.5
2025-11-27Remove redundant borders, consolidate to margin OR padding onlyBen Sima
All tests pass. Summary of changes made: 1. **Removed redundant `borderBottom` from `.detail-row`** - replaced wi 2. **Removed redundant `borderBottom` from `.stats-row`** - replaced wit 3. **Removed redundant `borderBottom` from `.metric-row`** - replaced wi 4. **Removed corresponding dark mode border color overrides** for the ab Task-Id: t-156.4
2025-11-27Convert task list/search page to list-group patternBen Sima
The build and tests pass. The task list/search page now uses the `list-g Task-Id: t-156.3
2025-11-27Convert dashboard ready queue and recent activity to list-group patternBen Sima
All the changes are in place: 1. Created `renderListGroupItem` function for compact list-style task di 2. Updated the dashboard's Ready Queue section to use `list-group` with 3. Updated the dashboard's Recent Activity section to use `list-group` w 4. Updated the `RecentActivityPartial` (HTMX partial) to also use the li 5. Added CSS styles for `.list-group`, `.list-group-item`, etc. in Style 6. Added dark mode styles for the list-group components The build and tests pass successfully. Task-Id: t-156.2
2025-11-27Add status breakdown counts per epic on epics pageBen Sima
The build and tests pass. The implementation adds status breakdown count 1. Changed `EpicsPage` from a newtype to a data type that holds both epi 2. Added `renderEpicCardWithStats` function that calculates descendant c 3. Added `getDescendants` helper to find all child tasks recursively 4. Updated `epicsHandler` to pass all tasks to the page 5. The breakdown shows badges for done, in-progress, review, and open co Task-Id: t-155.4
2025-11-27Implement multi-color progress bar componentBen Sima
The build and test passed with no errors. The multi-color progress bar c **Implementation summary:** - **[Omni/Jr/Web.hs](file:///home/ben/omni/Omni/Jr/Web.hs#L234-L275)**: - **[Omni/Jr/Web/Style.hs](file:///home/ben/omni/Omni/Jr/Web/Style.hs#L3 The progress bar is used on the dashboard (line 324 in Web.hs) to visual Task-Id: t-155.3
2025-11-27Create /epics page listing all epicsBen Sima
The build passes. The `/epics` page has been successfully created and al Task-Id: t-155.2
2025-11-27Style navbar dropdowns for dark mode compatibilityBen Sima
The build and tests pass. The change adds proper dark mode styling for n Task-Id: t-154.5
2025-11-27Remove homepage action links section (redundant with navbar)Ben Sima
The build and tests pass with no errors. The homepage action links secti Task-Id: t-154.4
2025-11-27Implement hamburger collapse menu for mobileBen Sima
The implementation is complete. I've implemented a hamburger collapse me 1. **Omni/Jr/Web.hs**: Added a checkbox-based hamburger menu toggle (CSS - Hidden checkbox input for toggle state - Label with 3 hamburger lines that acts as the button - The navbar links are shown/hidden based on checkbox state 2. **Omni/Jr/Web/Style.hs**: Added responsive CSS styles: - Hamburger menu styles (`.navbar-hamburger`, `.hamburger-line`) - Hidden by default on desktop, displayed on mobile (< 600px) - Full-width mobile menu with proper ordering - Dark mode support for hamburger lines - Dropdown menus expand inline on mobile Task-Id: t-154.3
2025-11-27Add dropdown menusBen Sima
Tasks (Ready, Blocked, Intervention, All), Plans (Epics, KB). Task-Id: t-154.2
2025-11-27Refactor navbar to single horizontal row (Jr logo left, links right)Ben Sima
The changes are complete. The navbar is now refactored to always stay as - The Jr logo/brand on the left - Navigation links on the right - On mobile screens, instead of switching to a column layout, it now jus Task-Id: t-154.1
2025-11-27Add Reset Retries action buttonBen Sima
Build and tests pass. The implementation is complete: 1. **Added API endpoint**: `POST /tasks/:id/reset-retries` in the API ty 2. **Added handler**: `taskResetRetriesHandler` that clears retry contex 3. **Added UI button**: "Reset Retries" button in the retry context bann Task-Id: t-153.6
2025-11-27Add human notes field for intervention tasksBen Sima
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
2025-11-27Store and display Amp thread URLBen Sima
The build and tests pass. Let me verify the changes are complete by chec 1. ✅ The Amp thread URL is already parsed from amp output and stored in 2. ✅ The display has been updated to show a "View in Amp ↗" button inste 3. ✅ CSS styling has been added for the button (`.amp-thread-btn`) 4. ✅ Dark mode styles added for the button 5. ✅ Both instances of the URL display (in `renderExecutionDetails` and The implementation is complete. The changes: - [Omni/Jr/Web.hs](file:///home/ben/omni/Omni/Jr/Web.hs#L632-L637) - Cha - [Omni/Jr/Web.hs](file:///home/ben/omni/Omni/Jr/Web.hs#L969-L974) - Sam - [Omni/Jr/Web/Style.hs](file:///home/ben/omni/Omni/Jr/Web/Style.hs#L531 - [Omni/Jr/Web/Style.hs](file:///home/ben/omni/Omni/Jr/Web/Style.hs#L916 Task-Id: t-153.4