Skip to content

v0.29.0

Latest

Choose a tag to compare

@github-actions github-actions released this 26 Jul 06:45

Features

  • Implementation trails (t1210, t1210_1–t1210_4): New /aitask-trail command builds a durable, wave-structured implementation plan across a topic's tasks — evidence-backed sequencing stored as a versioned artifact, with automatic drift detection when the underlying tasks change. The board gained a By-Trail view (z) that renders the waves as columns with drift badges and a detail view.
  • Work reports (t1162_1–t1162_4): New /aitask-work-report drafts a manager-facing report from selected board columns — what shipped, what's in flight, and an opt-in delivery projection based on your recent velocity. Launch it from the board with w.
  • Chatlink config panel and setup wizard (t1149_2, t1149_3): The ait chatlink TUI now shows a live config-check panel (transport / runtime / operation) and ships a step-by-step setup wizard (w) that writes your Discord config for you instead of hand-editing YAML.
  • Live Discord validation (t1149_5): The wizard verifies your bot token against Discord for real — login, privileged intents, channel visibility, and channel permissions — before you save.
  • Four-tier shadow implementation review (t1158): The shadow companion's implementation review now offers Quick / Basic / Standard / Deep tiers with explicit correctness and cleanup angles, verdicts, and a per-finding disposition (blocking / follow-up / informational).
  • Explore with an agent picker (t1148): X in the TUI switcher launches /aitask-explore after letting you pick the agent and model.
  • Shadow with an agent picker (t1152): E in the minimonitor launches a shadow companion with an agent/model picker, alongside the existing e.
  • Framework version model (t1223_2): Groundwork for in-app upgrades — the framework can now read its installed version, resolve the latest release, detect whether the target workspace is busy, and hand off an upgrade request safely.
  • Opus 5 and Sonnet 5 (t1241): Registered for Claude Code and promoted to the defaults for the heavier operations (pick, explore, learn, trail, brainstorm).

Bug Fixes

  • ait setup misses Codex config seeds (t1185): A clean setup now populates the four agent config seeds into aitasks/metadata/ instead of leaving them absent.
  • Install through dangling symlinks (t1193): install.sh now repairs (or diagnoses) a dangling aitasks/aiplans symlink instead of aborting mid-install.
  • Install commits sweeping unrelated work (t1145): The installer now path-scopes its commits, so your other staged changes are never swept into a framework commit.
  • Crew runner config never delivered (t1196): The crew runner config template is now actually installed and seeded, matching what the docs claimed.
  • Applink secrets not ignored (t1132): ait setup now seeds the applink .gitignore entries so TLS keys and session files aren't committed.
  • Seeded gate registry drift (t1147): The gate registry now has one canonical source shared by install, setup, and the live data branch, with a drift guard.
  • Manual-verification tasks got the risk gate (t1156): Manual-verification tasks are now restricted to gates they can actually reach, so they no longer stall on a code-health risk gate.
  • Explore output invisible on Fable 5 (t1150): The explore skill now embeds its progress summary in the question widget, so it stays visible on agents that don't render pre-tool prose.
  • Agent/model picker truncated in narrow panes (t1153): The picker adapts to narrow hosts like the minimonitor, Esc reliably cancels, and the switch hint no longer clips.
  • Shadow review dropped findings (t1200): The review's disposition rubric and cap rules were reworked so a genuine defect can never be silently omitted; omissions must be disclosed.
  • Shadow concerns lost to line wrapping (t1167, t1187): Concern markers split across wrapped terminal rows are now rejoined, and truncated capture blocks are detected with a deeper retry.
  • Clipboard copies from hidden tmux panes (t1161): Copying from a TUI in a non-visible tmux pane now reaches the system clipboard.
  • Verification checklist em-dash truncation (t1208): Checklist items containing an em dash are no longer cut short when annotations are stripped.
  • Board: empty columns unfocusable (t1209): Empty columns now carry a focusable placeholder, so you can navigate to and act on them.
  • Board: collapsed placeholder focus shade (t1212): The collapsed-column placeholder uses the accent focus shade instead of flipping to gray.
  • Board: double-click bypassed action gating (t1245): Double-clicking a task card no longer toggles children in views where the action is disabled.
  • Board: dialog "run" ignored branch overrides (t1225): All six dialog run paths now go through one dispatcher, so branch/command overrides apply consistently.
  • Settings dropped unknown default profiles (t1219): Profile keys the settings UI doesn't recognize are now shown read-only and preserved on save instead of being deleted.
  • Chatlink live-check hints (t1189): Failure hints now include a bot-invite URL and a link to the public docs instead of internal paths.
  • Chatlink wizard stale picker rows (t1204): A failed member/channel refresh now marks the affected picker stale rather than silently showing outdated rows.
  • Gate lock stale reclaim race (t1188): Reclaiming a stale gate lock is now single-winner and TOCTOU-safe.
  • Internal test-suite fixes (t1143, t1160, t1211, t1240): Python 3.14 module-loading crash in the shortcut sweep, drift in the quick-jump table, cross-test module identity leakage, and monitor tests renaming your real tmux windows.

Improvements

  • Gate activation resolved at render time (t635_33, t635_35): A task's enforced gate set is now materialized once when the task is claimed — with provenance for which profile and inputs produced it — and read through one validated path everywhere, including the remote and web lanes.
  • docs_updated gate uses the config resolver (t1110): The doc-update guide is located through the standard config resolver, so a configured path with quotes or comments resolves correctly.
  • Chat authorization modes (t1186_1): Explicit deny_all / open_members / restricted postures for who may file bug reports, with a pinned precedence and warnings for ignored lists.
  • Allowlist picker in the wizard (t1186_2, t1186_4): The wizard fetches your Discord channel members and roles and lets you pick them from a filterable list instead of typing IDs.
  • Wizard resumes a partial setup (t1190): An interrupted wizard run saves a token-free draft and offers to resume where you left off.
  • Wizard step order (t1186_3): Token and live check now come before the allowlist step, so the fetched pickers are available when you need them; step numbering is derived, not hardcoded.
  • Shadow review tier names (t1169): Tiers renamed to clearer names, with the old names kept as permanent aliases; the Codex two-stage chooser was dropped.
  • No plan mode injected for Codex agents (t1171): Codex launches in its default mode; ~550 lines of plan-mode injection machinery and the pexpect dependency are gone.
  • Work report consolidation (t1226): The report is consolidated before the satisfaction rating step.
  • Sonnet 5 as the default for lighter operations (t1242).
  • Tabbed syncer (t1223_1): The syncer TUI is now a tabbed shell (Branches / Versions / Settings), with actions gated to the active tab.
  • Internal restructuring (t1149_1, t1217): Chatlink preflight checks extracted into a reusable module; task_yaml promoted out of the board package into lib/ with a layering guard.

Documentation

  • Work report docs (t1162_5): New skill and workflow pages, plus board reference/how-to updates.
  • Agent attribution prose (t1181): Replaced a stale plan-mode example with wording that holds for every supported code agent.

Tests

  • Gate lock characterization (t1183): 36 assertions pinning the gate mutex's serialization, key derivation, and stale-reclaim behavior ahead of an upcoming change.
  • Seed manifest drift guards (t1194, t1197): New guards catch seed files that install or setup fail to deliver, including installers wired after the seed cleanup.
  • Zero-collection test guard (t1229): Every tests/test_*.py must collect at least one test and import cleanly, so a silently-empty suite can't pass.

Maintenance

  • Retired the pickn staging experiment (t635_36): Removed the task-workflown fork and aitask-pickn stubs, with an upgrade migration that prunes them from already-installed projects.