Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add TaskChef Next: a read-only local Codex chat board. SQLite supplies inventory and turn state; optional JSONL reads add selected-chat details. Database errors remain fatal.
Cache database records with persistent read-only connections and PRAGMA data_version. Check every five seconds while visible. No open read transaction is held between checks.
Keep Scheduled, Running, Waiting for input/review, and Done visible when empty, with short messages specific to each column. Interrupted/failed turns appear in Waiting with an Interrupted tag. Unknown states remain Unverified. Archived chats have a separate optional column.
Retain List code but hide List mode and Board/List controls. Render saved reply excerpts as safe Markdown and use compact calendar timestamps.
Add native structured settings for exec, CLI, and archived visibility. All default hidden. Restore the settings icon. An app-only MCP tool requests the installed local plugin page through the native OS Codex URL handler, using the same opener as Open chat. Unresolved locations and opener failures appear in notifications.
Exclude no-turn chats, subagents, Guardian reviews and recorded spawn children. Keep local Mark Done tied to the selected turn; a new turn resets its effect. No Reopen control.
Feature the first supported Markdown image from the full latest assistant reply above the card title. Lazy-load local PNG/JPEG/GIF/WebP up to 4 MiB via an app-only tool bound to the chat, turn, and saved URL. HTTPS images load in the sidebar with no referrer. Missing or failed covers are hidden; clicking opens Details.
Add a shared local notification center: bell/unread badge, five-second overlay toasts, newest 100 messages, All/Unread, Mark all read, and Clear all. First scan is quiet; per-turn watermarks prevent duplicate or cleared notifications from replaying. Completed ordinary-input turns and interruptions create unread notices; scheduled completions stay quiet. Mark Done confirmations are already read. Saved notices can open Details for chats later hidden by Settings. No daemon or OS notifications. Unarchiving an old terminal turn does not replay its notification.
Add editable storage and lookup diagrams, exports, and research docs. GitHub PR status and cloud chat support remain backlog work.
Group chats by saved Codex projects instead of raw working folders. Use SQLite projects/project_roots/threads.project_id, legacy desktop assignments/ID migration hints, and Git worktree pointers (including nested cwd). Preserve actual working folders in Details. Combine projectless/dated Codex folders into No project.
Replace the Project select with a searchable folder popover, selection check, keyboard navigation, and All projects/No project filters. Include saved projects without visible chats; no project creation controls.
Validation
Full Node suite: 385 tests passed before the final nested-worktree/missing-settings-target changes; all 27 affected server tests passed afterward. All 107 final UI tests passed. Remote CI runs the complete final suites.
Both TypeScript checks and UI builds passed; package creation and diff checks passed.
Fresh independent complete-branch review: CLEAN.
Browser QA with real local data verified board-only UI, Settings desktop-opening tool request, interrupted grouping/tag, and empty Scheduled, Running, Waiting and Done columns after project/date filtering. QA used isolated local settings and Done state.
Local preview 8.6.2-next.28 installed. Installed MCP probe reports healthy real data and cache reuse, native settings capability, and the expected settings link.
Notification browser QA exercised readiness/error messages, five-second toasts, Details navigation, Done confirmation overlay, unread controls, 1280px/420px layouts, and read synchronization between two views. Tests used synthetic chat fixtures with the real registered MCP tools and isolated local storage. The corrected test host reported no console errors on the final pass.
Installed package probe read 980 real local chat records with a quiet notification baseline and verified the installed settings tool resolves the correct preview marketplace. Screenshot evidence remains local.
Project picker comparison: all 38 saved local project names and paths match the Codex list_projects tool, with no differences.
Browser QA with real local chats verified search, selection/reset, No project filtering, keyboard selection and 1280px/420px layouts. The browser startup MutationObserver warning also reproduces in an empty iframe without TaskChef code; no additional errors appeared during picker interactions.
Installed Next.28 MCP probe reads real chats and returns all 38 saved projects. Local screenshot: /private/tmp/taskchef-next-project-picker.png.
Limits
Image QA: verified a missing real saved image path, then an isolated test cover through the same raster reader; final browser QA confirmed the real Jevfast SEO missing cover is hidden. Browser confirmed image-above-title layout, Details click, and no console errors on the successful-cover pass. No Codex database records were changed.
Project picker sorting
Validation: both TypeScript checks, 107 UI tests, 21 scanner tests, MCP app build, real-data browser checks for all sort modes, search, selection, refresh and narrow sidebar layout. Fresh complete-branch independent review.
Notification bell
Replace the numbered badge with a 7px unread dot. The dot clears when notifications are read. The bell announces unread state to screen readers. Updated existing read/clear tests; 107 UI tests, TypeScript check, build and sidebar-width browser read/unread checks passed. Local preview 8.6.2-next.30.
TaskChef icon assets
Validation: SVG parsing, exact SVG-to-PNG rendering, 512px dimensions, corner alpha checks, package dry-run inclusion, git diff --check, and independent branch review.
Avatar follow-up: enlarge the hat by 30%, preserve it inside a circle crop, and add named light/dark sidebar SVG exports matching existing MCP colors. Exact render/crop checks, package inclusion and fresh full-branch review passed. GitHub public page verified.
Scheduled chat rules update
Validation: 428 Node tests passed, no skips; independent full-branch review CLEAN. Read-only real-data probe confirmed four completed routine turns return to Scheduled. Installed preview 8.6.2-next.39.
GitHub settings and fetch scope
Validation: 429 Node tests, 120 UI tests, TypeScript, build, and independent review passed. Browser QA exercised sign-in/poll/disconnect with simulated GitHub responses and resource permission checks. Real GitHub sign-in was not changed. Preview 8.6.2-next.40 installed; existing desktop MCP process still needs reload to expose the new settings tools.
GitHub settings follow-up
Validation: 430 Node tests and 124 UI tests; both TypeScript checks; MCP App build; full-branch independent review. Browser QA verified signed-out/connected controls, repository access border, All time, scrolling scope changes, empty-search scope clearing, and no console errors. GitHub sign-in simulation did not change real credentials. Preview 8.6.2-next.41 needs a desktop MCP runtime reload to expose backend changes.
Card PR icons and persistent cache
Validation for this update
Private PR status fix
Validation: 43 GitHub tests and 3 MCP tests passed; independent full-branch review CLEAN. Installed preview 8.6.2-next.43 matches source. Live checks verified merged status and CI in private repositories with existing permissions; inaccessible organization PRs remain unknown.
Unified card status popup
Validation: 134 UI tests passed; dashboard and MCP App TypeScript checks and builds passed; package dry-run includes the screenshot; narrow and wide browser preview, PR-link keyboard focus, Escape dismissal, and console check verified.
CI cache verification: merged PRs with pending or unknown CI retry while visible; 49 GitHub and MCP tests passed.
The focusable status line includes a semantic PR-state description for screen-reader users.
Browser keyboard order verified: status line → time toggle → PR link; Escape closes and restores focus.
Closed PRs with settled CI keep their cached result when mergeability is unknown. Existing open/draft icon-readiness retries remain.
CI follow-up: avoid jsdom floating-layout work in the row/keyboard unit test. Real Mantine layout is checked in browser QA. All 134 UI tests pass locally in 13.55s; popup tests take 0.15s.
Compact status rows and repository access warnings
Validation: 135 UI tests and 53 GitHub/MCP tests pass. Both TypeScript checks and builds pass. Browser preview checked at 1280px and 340px, including PR link focus, Escape, title truncation, access action, and console errors. Package dry-run includes the updated screenshot.
Codex-style PR glyphs
Validation: 135 UI tests, both TypeScript checks, and both production builds pass. Browser comparison covers all states; actual board and popup verified with no console errors. Package dry-run includes the screenshot. Independent complete-branch review CLEAN. Installed UI-only preview update; sidebar Refresh reloads the change.
Schedule clock direction
Mirror the schedule clock horizontally in the card and next-run popup row to match Codex. Both TypeScript checks and builds pass. Browser verification covers both clock locations with no console errors; the docs popup screenshot is updated. Installed UI-only preview update uses sidebar Refresh.
Running duration alignment
Card timestamp formats
Repository access popup
Chat search metadata
Text and popup alignment
Card drag destinations
Board loading, transitions, and notifications
Waiting column, notifications, and detail proposal
Theme selector
Appearance fix and revised design proposals
Approved Appearance panel
Approved chat details redesign
Sidebar-only responsive detail layout; Activity above Pull requests, reply without extra heading or footer.
Details reads a bounded selected-rollout history tail (1,000 items, up to 25 owned PRs), newest occurrence first. Board classification still uses latest-turn PRs only.
Repository access alerts appear once; missing older PR warnings stay with the affected PR.
Technical details collapse to Chat ID, Turn ID, Source, and Last input. Copy and archive guidance are in the action menu.
Validation: 451 Node tests and 153 UI tests passed in the full run; affected scanner tests and 11 detail/icon UI tests rerun after review fixes; both typechecks and both builds passed. Browser verified wide and 390px drawer, scrolling, menu, technical fields, and archive guidance.
Review fixes: automatic covers are local-only; remote images remain click-only Markdown links. Unavailable PRs use ambiguous private-or-removed wording and an optional Check access link. Affected 33 Node and 34 UI tests plus both builds/typechecks passed after these fixes.
Light appearance and detail cache polish
Validation: full 453 Node and 154 UI tests passed; after the final cache-selection fix, the affected 30 UI tests passed. Both TypeScript checks and builds passed. Browser checks covered Light and Dark, wide and narrow Details, chat-name title, compact PR rows, neutral controls, and both time rows. Fresh full-branch independent review: CLEAN.
Duration wording correction
Saved usage and detail typography
Validation: final affected scanner/usage tests, full Node and UI suites, both TypeScript checks, both builds, wide and narrow browser checks for font size/overflow/usage visibility and console errors, and fresh complete-branch independent review. Read-only real-data probe exercised historical rollouts and descendants.
The local preview is updated; backend usage requires one Codex restart. The cost estimate uses current standard rates and does not represent subscription charges or historical/tier/tool fees.
Detail and popup polish
Validation: TypeScript checks, both UI builds, all 158 UI tests, browser checks at normal and 390px widths, and independent full-branch review.
Latest-turn card usage
Validation: 160 UI tests, 18 focused backend tests, TypeScript, both UI builds, normal/narrow browser checks, and full-branch independent review.
Persistent usage cache and incomplete-estimate notes
Validation: 163 UI tests, 52 focused backend tests, TypeScript, both builds, wide/narrow browser checks, and independent full-branch review.
Unread chat indicators and numbered usage notes
Validation: 164 UI tests; 36 scanner/project tests; TypeScript checks; both UI builds; wide/narrow browser checks; clean independent branch review.