Fletch v0.7.21
What's Changed
- fix(sandbox): stop a repo's own git config from executing on the host by @alchaplinsky in #564
- feat(git): refuse a checkout whose config would execute, on both engines by @alchaplinsky in #565
- fix(git): close the paths that bypassed the config guard by @alchaplinsky in #566
- feat(titlebar): split capsule into project + workspace pills, full-screen project page by @alchaplinsky in #567
- fix(provision): point a workspace clone's origin/HEAD at the real default branch by @alchaplinsky in #573
- fix(security): close push-guard bypass via option-named branch (main/master force-overwrite) by @alchaplinsky in #568
- fix(security): stop agent-writable git alternates from bind-mounting arbitrary host paths (Docker) by @alchaplinsky in #569
- fix(security): close config-guard bypasses (worktree scope + push/fetch transport keys) by @alchaplinsky in #570
- fix(workflow): tests gate blocks as unverifiable instead of degrading to agent self-report by @alchaplinsky in #571
- fix(security): deny non-Claude providers' command-defining config (invariant 2) by @alchaplinsky in #572
- fix(mergeGate): don't claim merge-ready from mergeable with no CI status by @alchaplinsky in #575
- fix(sandbox): deny macOS launch-time auto-exec configs inside the Application Support grant by @alchaplinsky in #576
- feat(project): add a Roadmap tab to the project page by @alchaplinsky in #574
- Fix Codex turn details disappearing after completion by @alchaplinsky in #577
- fix(codegraph): tell agents the explore budget note is advisory by @alchaplinsky in #580
- fix(caps): confine force pushes to the agent's own branch by @alchaplinsky in #578
- fix(workflow): enforce run budget during parallel/orchestrate stages by @alchaplinsky in #579
- feat(roadmap): persist roadmap items per project by @alchaplinsky in #581
- feat(roadmap): real project-manager chat on the Roadmap tab by @alchaplinsky in #582
- feat(roadmap): PM proposes tickets through a real RPC tool by @alchaplinsky in #583
- feat(roadmap): queued items dispatch workflows autonomously by @alchaplinsky in #584
- feat(roadmap): merged PRs ship roadmap items automatically by @alchaplinsky in #585
- feat(roadmap): thin the page header, align the chrome, make the split resizable by @alchaplinsky in #589
- feat(project): give the Activity tab its own metrics by @alchaplinsky in #590
- feat(roadmap): replace the nested new-chat dropdowns with a planning-session screen by @alchaplinsky in #591
- refactor(roadmap): cut size and epic from the v1 surface by @alchaplinsky in #592
- feat(roadmap): every item transition writes a durable history row by @alchaplinsky in #593
- feat(roadmap): the PM proposes revisions and retirements as pending deltas by @alchaplinsky in #594
- feat(roadmap): every altitude links to the one below it by @alchaplinsky in #595
- feat(roadmap): dispatch order is explicit, visible, and jointly owned by @alchaplinsky in #596
- feat(roadmap): dependencies are validated everywhere and cycles are named by @alchaplinsky in #597
- feat(roadmap): the PM watches what gets built, not just what gets planned by @alchaplinsky in #598
- feat(roadmap): the decisions the pipeline waits on land on the board by @alchaplinsky in #599
- chore(roadmap): twelve hardening fixes from the stack review by @alchaplinsky in #600
- feat(roadmap): the PM can pull the brake, only you can release it by @alchaplinsky in #601
- feat(roadmap): judge, merge, or steer a fix without leaving the board by @alchaplinsky in #602
- feat(roadmap): autonomy is a dial, and holds outrank it by @alchaplinsky in #603
- feat(roadmap): the PM's memory is a seam, and the mock map is dead by @alchaplinsky in #604
- feat(roadmap): the board tells you what it's building without you looking for it by @alchaplinsky in #605
- feat(roadmap): an issue you didn't file still lands where you rule on it by @alchaplinsky in #606
- feat(roadmap): the PM hears the run while it can still be stopped by @alchaplinsky in #607
- chore(roadmap): drop the columns the model pruning cut by @alchaplinsky in #608
- fix(db): run migrations with foreign-key enforcement off by @alchaplinsky in #609
- refactor(roadmap): one PmTurn seam, attribution, honest copy by @alchaplinsky in #610
- fix(roadmap): one hold authority, and a hold that survives done by @alchaplinsky in #611
- fix(roadmap): standing blockages get durable objects, endings name their facts by @alchaplinsky in #612
- fix(roadmap): join the satellite surfaces to the spine, complete the ruling grammar by @alchaplinsky in #613
- fix(workflow): a step reports while it runs, and the tests gate runs the project's tests by @alchaplinsky in #614
- feat(code-panel): persisted diff-base switch — all changes vs uncommitted by @alchaplinsky in #615
- fix(git): stop the diff.external override from killing every patch diff by @alchaplinsky in #617
- fix(readiness): a failing check blocks even when the merge gate stays open by @alchaplinsky in #618
- feat(workflows): overhaul the run execution UI by @alchaplinsky in #616
- feat(env): extend the env membrane to every app-run process by @alchaplinsky in #620
- feat(workflow): reviewable artifacts at approval gates by @alchaplinsky in #621
- feat(issues): carry the issue's discussion into the composed brief by @alchaplinsky in #622
- feat(roadmap): decision log — rejected items keep their row and rationale by @alchaplinsky in #623
- feat(roadmap): the PM reads the product context — brief, decision log, dup warnings by @alchaplinsky in #624
- chore(sandbox): add EngineKind::is_container and use it at external engine branches by @alchaplinsky in #625
- chore(sandbox): extract runtime-neutral container layer out of docker/ by @alchaplinsky in #626
- feat(sandbox): add the Podman engine kind, availability probe, and coverage declarations by @alchaplinsky in #627
- feat(sandbox): the Podman engine launches, kills and cleans up agents by @alchaplinsky in #628
- feat(sandbox): the Podman engine gets Docker's hardening layer by @alchaplinsky in #629
- fix(sandbox): close the podman review findings and trim the comments by @alchaplinsky in #630
- feat(supervisor): adopt a pre-provisioned workspace at spawn by @alchaplinsky in #631
- feat(workflow): sequential kernel runner on a shared run workspace by @alchaplinsky in #632
- feat(ui): render a sequential workflow run as one continuous thread by @alchaplinsky in #633
- chore: bump version to v0.7.21 by @alchaplinsky in #634
Full Changelog: v0.7.20...v0.7.21