Releases: beyondeye/aitasks
Releases · beyondeye/aitasks
v0.26.1
Features
- Launch a bare code agent from the TUI switcher (t1070): The TUI switcher gained an
eshortcut to start a code agent in a fresh window with no task attached, letting you pick the agent and model on the spot for ad-hoc work.
Bug Fixes
- Resilient
ait upgradeunder GitHub rate limiting (t1069):ait upgradeandait setupnow handle GitHub API rate limits gracefully — falling back to git tags and reporting accurate status instead of failing with a misleading "No releases found" message.
v0.26.0
Features
- Gate orchestrator engine (t635_11): Added a gate orchestrator that runs a task's declared verification gates — handling retries, parallelism, and stuck-detection — plus
ait gates runand gate-authoring scaffolding. - Resume in-flight tasks (t635_6): Added an
aitask-resumecommand that re-enters an interrupted task at its last checkpoint, driven by the recorded gate ledger. - Gate-aware task picking (t635_7):
aitask-picknow surfaces in-flight tasks as resume candidates and routes a picked task straight back to where it left off. - Shared gate-ledger parser (t635_8): Added a shared parser for gate-run state so TUIs and tools read task progress from one consistent source.
- Board In-Flight view (t635_9): The board gained an In-Flight view listing actively implementing tasks with their gate state and a one-key resume launch.
- Monitor gate status (t635_10): The monitor now shows a compact gate summary (passed/pending/failed) for each running agent.
- Mobile live terminal streaming (t822_8): Applink can stream live terminal snapshots to the mobile companion as compact binary keyframes.
- Mobile delta streaming (t822_9): Terminal updates stream as row-level deltas, sending only changed lines to the mobile app.
- Mobile append fast path (t822_10): Scrolling output uses an append fast path that sends just the new bottom rows, cutting bandwidth for log-like panes.
- Mobile task-action handshakes (t822_11): Added confirm/suggest handshakes for restarting a task or picking the next sibling from the mobile app.
- Headless applink bridge (t822_13):
ait monitor --headless-for-applinkruns the mobile bridge without the terminal UI, printing an ASCII-QR pairing block — ideal for servers. - Device name in pairing QR (t822_5): The mobile pairing QR now carries the host's name so the companion app can label the connection.
- Applink firewall doctor (t1043): Applink diagnoses LAN firewall issues at launch and offers a guided, consent-based fix so pairing isn't silently blocked.
- Project groups (t1025_1): Projects can be organized into named groups via
ait projects group, with an explicit ungrouped bucket and slug validation. - Two-axis project navigation (t1025_2): The TUI switcher and stats view added group-aware navigation, letting you cycle by project group as well as by session.
- Project Groups settings tab (t1025_3): The settings TUI gained a Project Groups tab to assign, clear, rename, and sync groups, with create-on-type support.
- Topic anchor field (t1016_1): Tasks can carry an
anchorfield grouping them under a root topic, with--anchor/--followup-offlags on create and update. - Board By-Topic view (t1016_4): The board gained a By-Topic view (
y) that groups tasks into topic lanes by their anchor, with an editable anchor field in task detail. - Shadow concern format (t1037_1): Defined a structured concern-block format and parser so a shadow agent's plan critiques can be machine-read.
- Shadow emits concerns (t1037_2): The shadow agent now emits its plan challenges and assumption checks as a structured, prioritized concern block.
- Concern picker (t1037_3): Added a picker modal to select among a shadow agent's surfaced concerns and copy them for the followed agent.
- Forward shadow concerns (t1037_4): minimonitor can capture a shadow agent's concerns (
c), offer them automatically, and copy the selected ones to the clipboard.
Enhancements
- Restart operations from Running tab (t1018_2): The brainstorm Running tab can re-run a whole operation group fresh (
n) or retry-apply it (i), with one-call group cleanup. - Double-click to open group detail (t1018_3): Double-clicking a group row in the brainstorm Running tab opens its detail, and a focused+hovered row keeps the accent color.
- Cross-group project browsing (t1036): Session cycling in the switcher and stats walks a cross-group ring, re-pointing the group axis as you move.
- Auto-refresh In-Flight board (t1024): Switching to the board's In-Flight view reloads task and gate state automatically.
- DAG node marks (t1004): Marked nodes in the brainstorm graph show a ☑/☐ checkbox glyph, matching the list view.
- Follow-up anchor provenance (t1016_3): Auto-created follow-up tasks inherit their origin via
--followup-of, keeping them grouped with the originating topic. - Richer concern framing (t1037_6): Shadow concern bodies carry full framing (problem, why it bites, how to confirm) rather than a bare one-liner.
Improvements
- Unified Browse tab (t983_3): Merged the brainstorm list and graph tabs into a single Browse tab with a toggle and one shared node-detail panel.
- Operations dialog (t983_4): The node-action dialog became a unified Operations dialog with selection-aware ops, a target summary, and in-modal help.
- Node Hub overlay (t983_5): Pressing Enter on a node opens a Node Hub overlay combining detail view with an Operations entry point.
- Pre-seeded operation wizard (t983_6): Launching an operation from a node or marked set pre-seeds the wizard, skipping the redundant node-selection step.
- Compare overlay (t983_7): The brainstorm Compare tab became an on-demand overlay reachable from the Node Hub and Browse.
- Session tab (t983_8): Split session-lifecycle actions into their own Session tab, keeping the operations picker focused on design ops.
- Running tab + status strip (t983_9): Renamed the Status tab to Running, added an always-on runtime strip, and added agent cleanup/retry actions.
- Operation wizard as overlay (t983_11): Moved the multi-step operation wizard out of a tab into a dedicated modal screen.
- Footer keybinding hygiene (t1018_1): Scoped brainstorm retry actions to their owning tab and replaced undeliverable chord shortcuts with working ones.
- Single Browse cursor state (t1003): Consolidated the brainstorm Browse cursor onto a single selection model.
- Modularized brainstorm code (t1048): Split the large brainstorm TUI module into focused submodules, shrinking the main file by ~39% with no behavior change.
- Named project registry records (t1029): Project registry rows are parsed into named records for clearer, safer field access.
- Shared group-cycle logic (t1033): Centralized the project-group cycling logic shared by the switcher and stats views.
Bug Fixes
- Cross-repo & archived board relations (t1021): The board resolves archived tasks in cross-repo, child, and folded relations.
- Board detail actions from dependencies (t1062): Fixed board detail actions being dropped when a task was opened from a dependency.
- Parent/child task resolution (t1026): A parent id no longer wrongly matches an active child.
- Primary-branch detection in sync (t1027): Sync/desync detects the repo's primary branch instead of assuming
main. - Primary-branch in contribute/externalize (t1031): Fixed hardcoded
mainassumptions in the contribute and plan-externalize flows. - Brainstorm comparator lifecycle (t1020): Gave the comparator a proper completion lifecycle so results apply reliably.
- Brainstorm crew status (t1041): Fixed stale crew status by deriving the rollup on read.
- Brainstorm tab-switch keys (t1060): Tab-switch keys fire from any tab, not just Browse.
- Brainstorm wizard/preview UX (t1047): Fixed several node-operation wizard and preview-checkbox UX bugs.
- Brainstorm config mount timing (t1050): Hardened config mounting so the proposal preview populates reliably.
- Root node delete guard (t1010): Guarded against deleting the root node in a brainstorm graph.
- Brainstorm footer scoping (t1039): The footer no longer shows actions that don't apply to the current tab.
- Brainstorm cycle-field contrast (t1019): Fixed low-contrast text on a focused cycle field.
- Focused-row hover color (t1038): Fixed focused brainstorm rows losing their accent color on hover.
- Applink empty subscribe (t1044): An empty applink subscribe expands to all panes instead of subscribing to none.
- Monitor pane resize (t981): Fixed monitor pane resize to use the subprocess path, restoring correct geometry.
- Narrow agent-command dialog (t1012): Fixed the minimonitor agent-command dialog to render correctly in narrow panes.
- Codex plan helper readiness (t1006): The Codex plan helper waits for the composer to be ready before sending the prompt.
- Codex/OpenCode mirror markers (t1028): Fixed duplicated instruction markers in the Codex and OpenCode mirrors.
- Helper-script permission drift (t1001): Restored a missing helper-script permission entry that caused approval drift.
- Pre-existing test failures (t1014): Fixed pre-existing board and workflow test failures.
- Multi-session monitor test (t987): Fixed a multi-session monitor test by isolating its tmux environment.
Documentation
- Brainstorm TUI docs (t929_3): Added a code-verified brainstorm TUI documentation set (overview, how-to, reference).
- Brainstorm agent defaults (t968): Documented brainstorm per-agent model defaults and stopped the settings UI from rendering orphaned agent rows.
- Project group docs (t1025_4): Added code-verified documentation for project groups and the new navigation behaviors.
- Anchor docs (t1016_2): Documented the new task
anchorfield across all schema, skill, and website surfaces. - Shadow agent docs (t986_6): Documented the shadow companion agent across the framework docs and website.
- Shadow concern picker docs (t1049): Documented the shadow concern-forwarding flow and the minimonitor
cpicker. - Applink permissions docs (t822_12): Synced the applink permission/verb gating table with the canonical command inventory.
- Monitor design doc refresh (t1013): Refreshed the applink monitor-port design doc to drift-proof symbol references.
Mai...
v0.25.0
Features
- Gate ledger substrate (t635_1): Tasks can now carry named approval checkpoints ("gates") recorded in a durable ledger — the foundation for gate-aware dependency, archival, and resume behavior.
- Task-workflow checkpoint recording (t635_2): With the new
record_gatesprofile option, the task workflow records its approval checkpoints (plan approved, risk evaluated, build verified, review approved, merge approved) as gate runs. Enabled by default on thefastprofile. - Dependency-unblock semantics (t635_3): A task's dependents are now released as soon as its integration gates pass, rather than waiting for the task to fully complete.
- Gate-guarded archival (t635_4): A task that declares gates won't archive until all of them pass, with an in-session "resolve now & archive" offer and an
--ignore-gatesescape hatch. - Ledger-driven re-entry (t635_5): The task workflow is now re-entrant — picking up an in-flight task resumes it at the right point (planning, implementation, or post-implementation) based on its recorded checkpoints.
- Applink WebSocket listener (t822_7): Added the applink control plane — a paired, TLS-secured
wss://listener that lets the mobile companion app connect, plus a Devices screen for viewing and revoking paired devices. - Shadow context fetch (t986_3): Added a helper that resolves a task's file and most-recent plan (and optionally sibling context) to feed the shadow companion.
- Shadow companion command (t986_4): Added
/aitask-shadow, an advisory companion that reads a followed agent's terminal output to explain it, help answer a prompt, or critically challenge its plan. - Minimonitor shadow trigger (t986_5): The minimonitor can now launch a shadow companion for the followed agent (the
ekey), with a configurable agent/model and same-window-vs-separate-window placement.
Bug Fixes
- Preserve local models on upgrade (t982): Upgrading now merges new seed models into your model configuration instead of overwriting it — local entries are kept and new ones appended.
- Monitor refresh benchmark (t984): Fixed the monitor-refresh benchmark to patch the current monitor internals instead of a removed symbol.
- Cross-repo deps in board detail (t990): The board detail view now shows cross-repo dependencies, and opening a linked cross-repo task renders its metadata and body correctly instead of raw YAML.
- Project resolver whitelist (t991): Whitelisted the project-resolver helper so code agents can resolve cross-repo project names without a permission prompt.
- Archived tasks in board dialogs (t992): Board relation dialogs (Depends / Verifies) now resolve and open archived tasks read-only instead of failing to find them.
- Narrow-pane sibling dialogs (t998): Fixed cramped rendering of the minimonitor's next-sibling dialogs in narrow panes — they now widen and stack their buttons vertically.
Enhancements
- Minimonitor shadow layout (t994): Improved the minimonitor shadow pane (placement and configurable width), reorganized the footer, added an
rrefresh binding, and wrapped the task description onto two lines. - Trim kill-confirm dialog (t995): Trimmed the minimonitor's kill-confirmation dialog so it fits in narrow panes.
- Shadow startup greeting (t997): The shadow companion now greets you with its capabilities at startup and proactively surfaces relevant observations after each capture.
Improvements
- Extract monitor core (t822_6): Extracted a Textual-free headless monitor core module — the shared substrate for the monitor TUIs and the new applink listener (no user-visible behavior change).
- Brainstorm node detail panel (t983_1): Refactored the brainstorm node-detail view into a reusable panel widget.
- Brainstorm node-selection model (t983_2): Added a headless node-selection model (primary cursor + marked set) for the brainstorm TUI.
- Pane-keyed monitor state (t986_1): Re-keyed monitor state by pane so multiple agents per window — and shadow panes — are tracked and excluded correctly.
Tests
- Multi-session monitor test update (t999): Aligned the multi-session monitor test suite with the monitor_core package and the new shadow-target pane field.
Maintenance
- Stale test comment fix (t915): Fixed a stale comment in the skill-render test suite.
- Port shadow to Codex (t988): Ported the
/aitask-shadowcommand to Codex CLI. - Port shadow to OpenCode (t989): Ported the
/aitask-shadowcommand to OpenCode.
v0.24.0
Features
- Gates framework roadmap (t635): Locked the design decisions and roadmap for an upcoming task-gates framework, including a documentation track and a
docs_updatedgate. - Kill & next commands in minimonitor (t944): The minimonitor can now kill the followed agent (
k) or launch its next sibling task (n) directly, and shows the followed agent in its own dedicated panel separate from the general list. - Reusable proposal preview pane (t945_1): Added a side-by-side proposal preview to the brainstorm TUI, with a section minimap and adjustable split ratios.
- Proposal preview in the explore wizard (t945_2): The brainstorm explore wizard now shows the source node's proposal side-by-side as you configure the next step.
- Source-node choice & preview in decompose (t945_3): The module-decompose wizard now lets you pick the source node and previews its proposal side-by-side, with full Tab navigation across inputs, minimap, and proposal.
- Fable 5 model for Claude Code (t966): Registered the Fable 5 (
claude-fable-5) model so it can be selected for Claude Code agents.
Enhancements
- Review module decomposition before applying (t929_1): module_decompose now offers a "Review before apply" gate where you can preview the proposed breakdown and re-run it with steering notes before it lands.
- Agent-proposed module sets (t929_2): module_decompose gained an "Agent-proposed" mode that infers the module breakdown from the plan instead of requiring you to name modules up front.
- Tmux sessions survive compositor restarts (t943): Agent tmux sessions now launch in a persistent systemd user slice, so they survive a session/compositor teardown (e.g., a Wayland compositor restart).
- Dedicated tmux server (t953):
aitnow runs its tmux sessions on a dedicated, persistent socket isolated from your default tmux server, with a configurable opt-out and a legacy-attach offer. - Line-numbered proposal view (t954): Added a
Ctrl+Shift+Ltoggle that switches the brainstorm proposal preview to a syntax-highlighted, line-numbered source view. - Hardened tmux server creation (t956): New tmux servers spawned by agent launches now land in a persistent slice (with setsid/plain fallbacks), making detached agent sessions more robust.
- Fuzzy search for shortcuts (t958): The shortcut editor and the Settings Shortcuts tab now have a fuzzy filter box for quickly finding keybindings.
Bug Fixes
- Codebrowser ANSI-file hang (t940): Fixed the codebrowser hanging on files containing raw ANSI/control characters; those bytes now render as visible control-picture glyphs.
- Monitor window rename (t941): The monitor now renames only its own tmux window on startup instead of an untargeted rename that could hit the wrong window.
- TUI switcher default project from minimonitor (t947): Opening the TUI switcher from the minimonitor now defaults to the followed agent's project, regardless of list focus.
- Dead minimap Tab binding (t949): Removed a dead minimap class carrying a misleading, latent Tab binding.
- tmux test bitrot (t951): Fixed two broken tmux tests (a relative-import failure and a stale field assertion).
- stats-tui missing from help (t963):
ait helpnow lists thestats-tuicommand. - App-scope shortcut remapping (t964): Custom App- and modal-scope keybinding overrides now take effect on the live keymap immediately, instead of silently requiring a restart.
- Settings shortcuts test isolation (t972): Fixed a test-ordering failure in the Settings Shortcuts tab caused by shared label-case cache state.
- Detached TUI-spawned agents (t974): Agents launched from a TUI (board, codebrowser, sync) now run in their own session and survive quitting the TUI that spawned them.
- History progressive-load fixes (t975): Fixed the codebrowser History view dropping child tasks during progressive loading and serving stale data; it now reconciles the window and auto-refreshes on open.
- Minimonitor pane width on resize (t978): The minimonitor companion pane now stays pinned to its target width when the terminal is resized.
Improvements
- Brainstorm: drop detail/patch ops (t891_2): Removed the brainstorm
detail/patchoperations and the detailer/patcher agents as part of the move to a proposal-only model. - Brainstorm: remove plan data model (t891_3): Removed the brainstorm plan data model and the plan-tab TUI surfaces.
- Brainstorm: finalize exports a proposal (t891_4): Brainstorm "finalize" now exports the node's proposal to
aiplans/and blocks if a decomposed module still needs syncing. - Brainstorm initializer cleanup (t672): Simplified the brainstorm initializer's error handling, removing a stale slow-watcher path.
- Editable Settings tab-switch keys (t896): The Settings tab-switch keys are now driven by the keybinding registry — editable, reflected in footer hints, and shown in each tab title.
- NodeDetailModal minimap pane (t946): Moved the NodeDetailModal section minimap into a fixed sibling pane with exact-heading scrolling.
- Tmux command gateway (t952_1, t952_2, t952_3, t952_4, t952_5): Centralized all tmux invocations (Python and shell) behind a single gateway that owns socket policy and exact-match targeting, re-pointed the monitor's control mode through it, and added a lint guard preventing new raw tmux calls.
- Shared numbered source view (t959): Extracted a shared line-numbered source-view widget used by both the codebrowser and the brainstorm proposal preview.
- Single projects.yaml registry reader (t970): Collapsed the projects.yaml registry reader to a single authoritative implementation shared by the read and write paths.
- Dead-code cleanup (t976): Removed a dead
find_terminalhelper from the codebrowser.
Documentation
- Monitor-to-applink port design (t822_3): Added a design doc mapping the monitor's headless core and protocol verbs for the mobile companion port.
- Brainstorm architecture v2 (t891_1): Authored a proposal-only brainstorm engine architecture doc and archived the v1 (two-level plan) design.
- AgentCrew docs (t917): Documented
ait crewand the AgentCrew concept on the website, including all subcommands and the dashboard/logview TUIs. - tmux pane-switching shortcuts (t948): Documented native tmux pane-switching shortcuts and how to focus the minimonitor from the agent pane.
- Wish/SSH transport evaluation (t950): Added an evaluation of SSH-based serving (charmbracelet/wish) as a complementary access path alongside the native mobile transport.
- Persistent tmux workspace docs (t957): Documented how to keep a self-launched tmux server alive across a compositor restart on Linux/Wayland.
- Module design doc reconciliation (t971): Updated the module-decomposition design doc to reflect the as-implemented (post-t756) proposal-only reality.
- tmux gateway architecture (t980): Documented the tmux gateway chokepoint, its centralized policies, and the raw-tmux freeze/allowlist.
Tests
- Run tmux tests alongside a live session (t936): tmux tests now run against an isolated socket so they no longer refuse to run when a live tmux session is present.
- CodeViewer render regression tests (t960): Added render-contract regression tests for the CodeViewer after the shared numbered-source-view refactor.
Maintenance
- Hide migrate-archives from help (t918): The one-time, upgrade-only
migrate-archivescommand is now hidden fromait help(the command itself remains available).
v0.23.1
Bug Fixes
- Cleaner installs and repeatable setup (t938): Re-running the installer no longer aborts when the global
aitshim is already present, and an untrackedpackaging/directory left behind by the installer is now removed automatically (a git-trackedpackaging/is preserved). - Reliable test Python resolution (t935): The test suite now invokes the project's resolved virtual-environment Python instead of a bare
python3, preventing spuriousModuleNotFoundErrorfailures when the system Python is missingyaml/textual.
Enhancements
- Rendered skill-closure ignore rules installed by setup (t939):
ait setupnow writes gitignore rules that hide locally rendered skill-closure directories under.claude,.agents, and.opencodewhile still tracking the committed headless prerenders — so generated skill variants no longer show up as untracked clutter.
v0.23.0
Features
- Brainstorm module decomposition (t756): Break a brainstorm design into independent module subgraphs. Decompose, merge, and sync modules as first-class brainstorm operations, view per-module fluid status, and use the "Fast-track this module" preset to extract a module into a linked aitask in a single pass.
- Risk evaluation in task planning (t884): Planning now assesses two risk dimensions separately — code-health risk and goal-achievement risk — records them on the task, auto-creates before/after mitigation follow-up tasks, and force re-verifies a plan when a mitigation lands.
- Cross-repo paired planning in explore (t832_11):
aitask-exploreauto-detects cross-repo scope from your description and can create a cross-repo paired task that inherits the cross-repo planning flow. - Brainstorm node action dialog (t925): The node picker surfaces all node operations — including cascade delete with a casualty preview — each with relevance hints.
Bug Fixes
- Explicit agent args beat the env var (t703):
--agent/--cli-idnow take precedence overAITASK_AGENT_STRING, which acts only as a default. - macOS/BSD setup crashes fixed (t931):
ait setupno longer silently crashes on BSD; added seed fallbacks and POSIX-portable parsing. - Remaining macOS sed portability (t932): Replaced GNU-only sed quantifiers with portable
-Eforms. - Board fast-path fallback (t933): venv Python dependencies are validated at install time, with the PyPy fast-path falling back to CPython when deps are missing.
- Risk evaluation reaches the verify path (t909): the risk step now runs on the plan verify path, not just fresh planning.
- Config-aware op-help hint (t921): the brainstorm op-help hint shows the live keybinding instead of a hardcoded key.
- Headless prerender freshness (t894, t907): generalized the skill-verify headless prerender check and repaired git-equalized prerender drift via content diffing.
- Drop minijinja from PyPy venv (t930): removed an unneeded dependency from the PyPy install line.
- Harden test assert helpers (t920): guarded assert-grep calls against dash-prefixed needles.
Improvements
- Opt-in headless mode (t778):
claudeheadless--printis now gated behind an explicit--headlessflag to reduce billing surprises. - Redesigned Settings → Execution Profiles tab (t900): fixed selector, name filter, dirty-state-aware Save/Revert, and keyboard navigation.
- Larger board task-detail dialog (t904): taller dialog with collapsible metadata sections.
- Board auto-refresh off by default (t927): the board no longer auto-refreshes unless you set an interval (existing configured values are preserved).
- Single-source level enum (t911): priority/effort/risk levels now come from one canonical definition shared across bash and Python.
- Internal refactors (t898, t923, t937): declarative brainstorm wizard step machine; consolidated the test assert helpers into one shared library; switched fragile test
sed -icalls to thesed_inplacehelper.
Documentation
aitcommand reference completed (t914): added missing TUI, cross-repo, and maintenance command docs.- aidocs reorganized (t901): loose docs moved into
framework/,packaging/, andcodeagents/subjects. - Codex workflow-compliance caveats (t916): documented reasoning-effort guidance for workflow step compliance.
- macOS awk/sed portability class (t934): documented the BSD/macOS portability bug class for contributors.
Performance
- Slimmer CLAUDE.md (t924): moved on-demand sections into
aidocs/, cutting always-loaded context by ~30%.
Tests
- Brainstorm module-ops coverage (t906, t913, t922): added apply-hardening, module-sync contract, and module-status compute contract tests.
Maintenance
- macOS compatibility audit (t926): clean periodic audit; filed follow-ups.
- pickn/workflown hardening sandbox (t928): staging copies with stricter fail-closed gates.
- Regenerate stale planning renders (t903): refreshed drifted prerenders and goldens.
v0.22.1
Enhancements
- Task risk fields (t884_1): Tasks now support a
riskfield (high/medium/low) and arisk_mitigation_taskslist. Set them withait update --risk <level>/--risk-mitigation-tasks "a,b,c"; risk is shown inait lsand is viewable/editable in the board TUI. risk_evaluationprofile key (t884_2): Added an opt-inrisk_evaluationexecution-profile key (in the Planning group) that gates risk evaluation during the planning step. Configure it per profile or from the settings TUI; it's off unless enabled.
Bug Fixes
- Board detail dialog arrow navigation (t893): Restored up/down arrow-key field navigation in the board's task-detail dialog, while keeping arrow-key support in the shortcut editor's table.
Documentation
- AI-enhanced workflows homepage highlight (t892): Added a fourth homepage feature highlight linking to the workflows docs, with the highlights reflowed into a 2×2 grid.
v0.22.0
Features
- Cross-repo task dependencies (t832): Tasks can now depend on tasks in other aitasks projects via new
xdeps/xdeprepofrontmatter, with cross-repo blocking logic, a parallel cross-repo planning procedure,ait boardpicker support, interactive cross-repo task creation, cross-repoexplain-context, and cross-projectaitasks#835_3notation. Linked projects are referenced by logical name, not directory path. - Customizable keyboard shortcuts (t848): Per-user keyboard-shortcut overrides now work across all TUIs, with an in-TUI shortcut editor modal, a Shortcuts tab in the settings TUI, and case-aware mnemonic label rendering.
- Autonomous manual-verification mode (t843, t845): Manual-verification tasks can run their checks autonomously — choose an impromptu or pre-built strategy, configurable per profile and from the settings TUI.
- Claude Opus 4.8 (t853): Added Opus 4.8 to the model registry and promoted it to the default agent model.
- Codex request-user-input flag (t861): Added a Codex feature flag that enables request-for-user-input behavior.
Bug Fixes
- Compare-wizard improvements (t873): Fixed glob dimension link expansion and badge counts, section scroll-to-position accuracy, added expandable dimension descriptions in the detail pane, and scoped/grouped/labeled the wizard's dimensions.
- TUI task-directory handling (t877, t881): The keybinding registry, user-config path, and TUI module/metadata loading now honor a non-default task directory.
- YAML config guards (t863, t864, t865): Hardened YAML loading/writing in the keybinding registry, user-config writer, and shortcut persistence against parse failures and style collisions.
- Brainstorm nested sections (t878): Fixed nested-section parsing and navigation in the brainstorm TUI.
- TUI switcher overlay shortcuts (t876): The TUI switcher overlay's shortcuts are now properly registered.
- Board cross-repo picker navigation (t886): Fixed keyboard navigation in the board's cross-repo reference picker.
- add-model default target (t852): Fixed the target of the default-agent-string update in
aitask-add-model. - Stale Gemini note in CLAUDE.md (t839): Removed an outdated Gemini reference from the Codex root note.
- Test-fixture fixes (t883, t890): Repaired the desync test fixture's Python resolution and the PR-contributor fixture's cross-repo re-exec scaffold.
Improvements
- Board task filtering (t850): Reworked board filtering into an independent base-filter plus git and type toggles, with broader locked/free visibility rules.
- Re-verification prompt (t885): When a task plan is already verified, you're now asked whether to re-verify.
- Eager subscope registration & mnemonic labels (t848_9, t848_10): Shortcut subscopes register eagerly and labels render case-aware mnemonics.
- Terminology cleanups (t849, t859): Renamed "impromptu" → "autonomous" and the
manual_verification_auto_modeprofile key to clearer names across skills and docs.
Documentation
- Multi-project & cross-repo workflow docs (t826_3, t832_12): New website pages covering the multi-project registry workflow and cross-project dependencies/planning.
- Manual-verification & shortcuts docs (t846, t848_6): Documented autonomous manual-verification mode and the customizable-shortcuts layer.
- Codex limitations & model-default refs (t862, t854): Refreshed Codex limitations docs and updated stale model-default references.
- Memory-to-aidocs audit (t869): Promoted durable authoring conventions from Claude memories into
aidocs/.
Tests
- AGENTS.md idempotency (t875): Added tests for
AGENTS.mdcreation and marker idempotency.
Maintenance
- Codex profile/prompt cleanups (t860, t866, t870): Removed redundant default-profile prompt-suppression keys, relaxed forced Codex plan mode for analysis skills, and deleted orphaned Codex interactive prerequisites.
Removals
- Remove Gemini CLI Support (t812): Removed
geminiclifrom the framework: agent identity layer, skill rendering and templating, setup/install/release pipeline, and all current-state documentation. Google is sunsetting Gemini CLI in favor of Antigravity CLI (agy); see t813 and t814 for the agy migration path. Existing CHANGELOG / blog references to Gemini CLI are preserved as historical record.aidocs/adding_a_new_codeagent.mdwas expanded into a reusable add-an-agent checklist along the way.
v0.21.1
Bug Fixes
- Fix Brainstorm Retry Apply Drained Set (t841): The
ctrl+shift+x/y/dretry-apply bindings in brainstorm now rescan the worktree for completed explorer/synthesizer/patcher/detailer agents instead of consuming a one-shot in-memory set, so retries no longer silently no-op after the original apply ran. Surfaces a "No completed agents to retry" notify when the worktree is empty. - Fix v0.21.0 Blog YAML and Release Post Quoting (t844): Repaired the v0.21.0 blog frontmatter (unescaped inner quotes broke the YAML parse) and hardened
website/new_release_post.shto escape title/description fields plus run a Python YAML smoke check after generation, preventing future release posts from shipping broken frontmatter.
Enhancements
- Improve Dialog for Next in Monitor (t840): The monitor TUI's next-task dialog now offers a "Choose sibling" picker listing every ready sibling of the current task with blocked-by-sibling annotations, so you can pivot mid-family without backing out to the board.
- Textual 8.2.7 Floor: Bumped the minimum
textualversion to 8.2.7 acrossait setupand the applink reference docs to pick up upstream text-selection improvements in TUI screens.
v0.21.0
Features
- Brainstorm Apply Explorer Output (t739): Brainstorm now auto-applies explorer agent outputs into DAG nodes when they complete, with a
ctrl+shift+xretry binding and anapply-explorerCLI fallback for failure recovery. - Brainstorm Apply Synthesizer Output (t740): Brainstorm auto-applies synthesizer agent outputs to create hybrid nodes linked to multiple parents, with a
ctrl+shift+yretry binding and anapply-synthesizerCLI fallback. - Brainstorm Apply Detailer Output (t741): Brainstorm auto-applies detailer agent outputs, writing the detailed plan into the node and updating its
plan_filereference, with actrl+shift+dretry binding. - Operation Detail Screen (t749_5): Added an
OperationDetailScreenmodal to the brainstorm TUI showing an operation Overview plus per-agent Input / Output / log tail tabs. - Aitask Skill Render Subcommand (t777_2): Added the renderer that produces per-profile skill variants from
.md.j2templates, with skip-if-fresh caching and cross-skill include resolution. - Stub Skill Design and Gitignore (t777_3): Established the canonical "stub + per-profile render" model so each agent's skill surface dispatches to a profile-specific rendered variant, with a
*-/gitignore convention for the generated dirs. - Aitask Skill Verify and Precommit (t777_4): Added
aitask_skill_verify.shto validate that.md.j2templates render cleanly across all profiles and agents and that per-agent stubs carry the canonical dispatch markers. - Aitask Skillrun Wrapper Dispatcher (t777_5): Added
ait skillrunfor launching any code agent with a profile-aware aitask skill, including--profile-overridefor ad-hoc YAML merges and--dry-runpreviews. - Per Run Profile Edit in AgentCommandScreen (t777_17): The launch dialog now has an
(E)ditbutton to tweak the active execution profile for either a one-shot run or persistent save, propagated through to the rendered prompt. - Profile Modification Invalidation (t777_20): Saving a profile from the settings or launch TUIs now eagerly re-renders all affected per-profile skill variants so running agents see the new values on next invocation.
- Extend Renderer for Uniform Recursive Rendering (t777_22): The skill renderer now walks the full reference closure of a template, rewriting cross-skill
.mdreferences per agent root and tracking staleness across the entire dependency graph. - Support Open in Editor in Codebrowser (t781): Added an
Ekeybinding to the codebrowser TUI that suspends to$EDITORon the currently-viewed file, then refreshes annotations on return. - Clickable Nodes in DAG (t793): Brainstorm Graph-tab DAG nodes are now click-focusable, mirroring arrow-key focus behavior; actions still require keyboard confirmation.
- Detailed Operation Description in Wizard (t796): The brainstorm Actions wizard now shows the operation label plus a brief description on every step beyond Step 1, with
?reachable from any wizard step. - Allow Archived Tasks in Task Dependencies in Create (t798):
ait createnow offers a fzf-based picker for adding archived task references inline into a task description. - Context Aware Operations in Brainstorm (t819): Added an
Akeybinding on the brainstorm Graph/Dashboard tabs that pops a picker for Explore / Detail / Patch on the focused node and pre-seeds the Actions wizard with the choice. - Applink TUI QR (t822_2): Added the
ait applinkTUI which generates a QR code carrying a LAN pairing URI for the mobile companion app, including hostname and TLS-fingerprint fields. - Applink QR Add Hostname Field (t822_5): The applink QR pairing URL now includes an optional
name=field carrying the local hostname for friendly device identification on the mobile side. - Registry Resolver Projects Cmd and Create Flag (t826_1): Added the cross-repo project registry at
~/.config/aitasks/projects.yamlplus theait projectscommand (list/add/resolve/exec) andait create --project <name>flag for cross-repo task creation. - TUI Switcher Show Inactive Projects (t826_2): The TUI switcher's Session row now surfaces registered-but-inactive projects; selecting one transparently spawns a tmux session for it on demand.
- Ait Projects Remove Update Verbs (t826_7): Added
ait projects remove(with--force) andait projects updateverbs to manage entries in the cross-repo registry. - Ait Projects Prune Verb (t826_8): Added
ait projects pruneto bulk-remove stale registry entries whose marker file is gone, with--dry-runand--yesmodes. - Ait Projects Doctor Verb (t826_9): Added
ait projects doctorfor interactive triage of stale registry entries with options to prune, repoint, or clone the missing project back. - Switcher Stale Inline Render and Race (t826_10): The TUI switcher dims stale registry entries with a
(stale)suffix and pops an inline Prune / Repoint modal when one is selected, including the race-condition path when an entry goes stale mid-session.
Bug Fixes
- Template Completeness and Resolver Key (t777_26): Dropped the runtime profile-resolution fallback in templated skills and fixed the resolver-key mismatch between stubs and bodies so per-profile dispatch lands on the correct variant.
- Graph Tab Breaks Tab Navigation (t788): Pressing Up on the brainstorm Graph tab's top layer now escalates focus back to the tab row instead of trapping the user inside the DAG view.
- Missing Shortcuts from TUI Switcher Footer (t789): The TUI switcher footer is now pinned to the bottom of the dialog and stays visible regardless of list size, so keyboard shortcuts remain discoverable.
- Status Update Error in Explorer Agent (t791): Crew agents can now use
-mas a short alias for--messageon the heartbeat command, and the generated instructions show the message syntax explicitly. - Brainstorm Explore Progress (t792): Brainstorm now force-canonicalizes each agent's
created_by_groupon apply, defends graph-tab consumers against historical drift, and shows a group-level aggregate progress bar in the Status tab. - Brainstorm Explorer Input Missing Node ID (t795): Brainstorm now assigns the node ID to each explorer/synthesizer/patcher agent at registration time, so parallel siblings cannot collide on the same generated node.
- Disallow Patch for Node Without Plan (t797): The brainstorm UI now shows a
has plan/no planindicator on each node and disables the patch operation for nodes without a plan, preventing silent failures. - Aitask Explore With Codex (t801):
ait setupnow installspexpectso theaitask exploreworkflow launches Codex without import errors on fresh installs. - Add Codex Rules Allowlist Support (t802): Added runtime and seed Codex allow-rules so the
codexagent can be launched through aitasks without hand-editing rules files. - Keybinding in Wizard for Node Selection (t806): The brainstorm Hybridize / Compare wizards now offer a fuzzy filter plus Tab group cycling and arrow-key checkbox navigation, with checked rows always visible.
- Synthetize or Hybridize (t807): Renamed the brainstorm DAG merge operation from
hybridizetosynthesizeacross code, tests, and docs, with a backward-compat alias so in-flight sessions still render correctly. - Fix Patcher CLI Next Node ID Assertion (t810): Fixed a brainstorm patcher CLI test that wrongly asserted
next_node_idwould advance on apply — the apply path is correct, the assertion was off-by-one. - Fix Aitask Update Multiline YAML List Parsing (t813): YAML frontmatter parsers now correctly join multi-line flow-list values (e.g. wrapped
folded_tasks,verifies) soait update, archive, and crew tools no longer truncate them. - TUI Switch Multiproject Hide Brainstorms (t814): The TUI switcher's brainstorm session discovery is now scoped to the selected project's
.aitask-crews/, so multi-project switches don't surface cross-project brainstorms. - Dedup Read YAML Field Definition (t815): Consolidated two competing
read_yaml_fielddefinitions into a single sharedyaml_utils.shlib, eliminating a silent function-collision risk at archive time. - Fix Skill Dep Walker SKILL.md Collision (t817): The skill dep-walker now skips self-referencing
SKILL.mdprose mentions and raises a loud collision error if two distinct sources ever map to the same target path. - Brainstorm Ops Fail to Write Output (t820): Crew
_instructions.mdnow tells the agent to read the pre-existing<agent>_output.mdplaceholder before writing, preventing accidental overwrites that produced empty operation results. - Detailer Final Output Parsing Seems Not Work (t821): Brainstorm's auto-apply scan now tracks in-flight agents (not just Completed ones) and prunes terminally-failed ones from polling, so detailer/patcher output is reliably picked up.
- Fix TUI Switcher Desync Line Stale Across Sessions (t823): The desync helper now resolves the repo root from cwd rather than the script's install location, so the switcher's desync line reflects the active project in multi-project setups.
- Fix Test Desync State Copy Changelog Missing YAML Utils (t824): Added the missing
yaml_utils.shto the changelog-test scaffold's file list so the test no longer crashes on missing-source errors. - Idle State Not Detected (t825): The monitor TUI now distinguishes "agent awaiting user input" from "idle" via per-agent prompt regex patterns, surfaces a separate
awaitingcount, and prefers awaiting panes when auto-switching. - Fix Test Codeagent Scaffold Missing Agent String (t827): Added
agent_string.shto the codeagent test scaffold so the test suite no longer fails on a missing source library. - Obsolete AgentCommand Dialog in Monitor (t830): The per-run profile edit now propagates through to launch dialogs in monitor, codebrowser, and history-screen TUIs, not just t...