Skip to content
All releases

Release

v1.2.0

What shipped, in numbers

138
PRs merged
87,715
Lines added
41,477
Code lines
Code
41,477
Tests
41,124
Docs
5,114
Sum · code + tests + docs
87,715

of 138 merged

  • bug 34 25%
  • feature 91 66%
  • polish 0 0%
  • docs 9 7%
  • groundwork 2 1%
  • unclassified 2 1%

since v1.1.6 · tagged

What shipped

  • feat(#4207): Stage-1 GO-LIVE — flip stream-json transport live for cockpit ACE (ADR-0114 §Decision 4) (#4215)
  • feat(#2234): in-cockpit one-key self-update — pressable staleness banner (#4212)
  • feat(#4063): projecthooks content-refresh — hook-script CONTENT updates reach installed projects (#4210)
  • fix(tui): unify duplicate streamSessionID field — T3 fold (#3958) and T5 attach (#3961) share one session id (unblock main build) (#4211)
  • feat(#3962): Stop-hook sink → secondary attestation, reconciled to a single promotion (ADR-0114 T6) (#4209)
  • feat(#3961): attach — press A → claude --resume inspection pane on demand (ADR-0114 T5) (#4208)
  • feat(#3958): stream→provisional-turn wiring — mint · fold · promote (ADR-0114 T3) (#4204)
  • feat(#3959): managed-subprocess lifecycle — pipe-death + restart-on-crash (ADR-0114 T4) (#4206)
  • feat(#3960): degrade-path integrity + CLI contract version-guard (ADR-0114 T7) (#4205)
  • feat(#4201): TERMINAL SELECT — native drag-copy out of the ACE rail (Stage-1) (#4203)
  • feat(#3957): StreamJSONTransport primary — spawn + NDJSON reader + normalize + intrinsic identity (ADR-0114 §Decision 1/5/7) (#4202)
  • feat(#3956): RailTransport seam + ScrapeTransport demotion (ADR-0114 §Decision 1) (#4200)
  • fix(#4197): project switch renders a crisp terminal first time — refit across the paint boundary (#4199)
  • fix(#4188): kanban crash-guard — contain + capture render/update/fetch panics (P0 iFood) (#4198)
  • feat(#4132): EPIC-SCREEN HW-2 — velocity forecast + early-warning + PM ACT surface (#4180)
  • feat(#4150): ACE composer '@'-file picker — TUI parity leg (SEAL S9) (#4192)
  • fix(#3951): Goals surfaces unlinked blueprint sidecars as spec links (#2912) (#4194)
  • feat(#3269): board-that-never-hits-its-limit planner — marginal-burn @ fire-time (ADR-0094 D5) (#4195)
  • feat(#4151): desktop SEAL S10 — per-theme test-and-approve process + evidence harness (closing seal) (#4196)
  • fix(#4190): slim icon-rail project buttons keep an accessible name (WCAG 4.1.2/2.4.4) (#4193)
  • feat(#4143): desktop needs-you avatar BLINK presence (#3988 Leg A / S2) (#4189)
  • feat(#4135): EPIC-SCREEN PO-1 — wire Tier-1 health chip + honest degrade banners (#4191)
  • feat(waiver): #3864 tier-aware waiver-authority seam (blueprint §7.4, ADR-0112 Decision 6) (#3984)
  • feat(#4148): preview pane reload button + interactive-or-absent sweep — desktop SEAL Leg D (#4174)
  • feat(#4133): EPIC-SCREEN C5 — Tri-Lens sync realized in the Gantt lens (#4187)
  • fix(#4183): green two cmd tests broken by #3870 ADR-allocator (registry retired from adr new) (#4186)
  • feat(#4149): ACE composer slash-command menu — TUI parity leg (SEAL S8) (#4182)
  • feat(#4131): EPIC-SCREEN C3 — Gantt 2-zoom (macro epic/milestone <-> micro ticket) (#4185)
  • feat(#4146): host-aware TUI shortcut line — suppress ctrl-b nav when desktop-hosted (#4184)
  • feat(#4075): Desktop Linux L9 — docs + launch smoke + version surface (#4181)
  • feat(#4074): promote chokepoint learns 'linux' AppImage (L8) (#4179)
  • feat(#4129): EPIC-SCREEN C4 — level-aware docs-nexus drawer wiring (#4178)
  • feat(#3975): TUI needs-you SOURCE seam — attention_set verb + edge-triggered founder-mode pusher + cockpit focus report (#4177)
  • feat(#3955): review LEASE per PR-head — close the autofire/cohort verdict race (#4168)
  • feat(#3755): delete dead layout.TableLayout primitive — LedgerTable Remake finale (#4176)
  • feat(#3868): E5 mirror-of-reality guard — flow changes must edit the blueprint in the same PR (§7.5) (#4175)
  • fix(#4147): wave widget honest count semantics + stated purpose (SEAL Leg C S6) (#4173)
  • feat(#3754): LedgerTable Pillar-F Stage-1 reuse seams — Palette/TierFor + module boundary doc (#4171)
  • feat(#3870): flowforge adr new = one atomic RPC, online-only fail-closed; git ledger retires (#4172)
  • feat(#4002): create_worker --force respawn recovery (leg 2 of #3999) (#4170)
  • feat(#3871): ADR-0111 D4 source gate — a number the server didn't issue cannot land (#4169)
  • feat(#3745): migrate Stats records to ledgertable — identity column + viewport (#4167)
  • refactor(#3997): split cmd_tui.go under linecap — extract CI-branch parser (#4166)
  • feat(#4128): EPIC-SCREEN C1 — real 4-level nav-tree containment tree (#4165)
  • fix(#3985): fail-closed desktop build guard — refuse dirty/off-tag customer artifact (#4164)
  • feat(#4142): desktop left rail v2 — editable avatar letter + theme-token colors (#4163)
  • feat(#3751): kanban milestone picker adopts ledgertable Fold (#4158)
  • feat(#4130): EPIC-SCREEN HW-1 — Tier-1 runway-ratio health chip (#4160)
  • feat(#4144): coherent icon set + legibility spec — desktop SEAL Leg B (#4161)
  • fix(#3994): built-in nord export carries official Nord aurora purple in magenta slots (#4162)
  • fix(desktop): #4145 relocate top-bar webgpu badge to Appearance diagnostics (#4159)
  • feat(#3752): merge-queue Fold migration — GroupBy readiness-tier + cursor-follow viewport (#4155)
  • feat(#3742): LedgerTable Zebra row-tone — TableStyle.Zebra/ZebraToken, OFF by default (#4156)
  • feat(#3750): billing Cost Attribution adopts Sort + footer view-state readout (#4157)
  • feat(#3743): migrate ForgePlay archive browser to the ledgertable triad (#4138)
  • feat(#4134): DM-3 epic identity / Jira-inbound mapping via identity_map (#4139)
  • feat(#4073): L7 — release.yml build-linux-desktop lane (native, CI-automated) (#4140)
  • feat(#4071): L5 — flowforge version update Linux AppImage refresh (#4141)
  • feat(#3753): fleet window-ledger footer via primitive Footer seam (single-source) (#4152)
  • feat(#3744): migrate Settings theme picker to ledgertable triad (#4153)
  • feat(#4127): EpicBoard DAO read seam — epic->milestone->ticket->subticket projection (EPIC-SCREEN DM-4) (#4154)
  • fix(#4122): finding-less NOT-GOLDEN no longer poisons a head under #3221 (#4126)
  • fix(#4123): atomically retire the merged worker (reap session + worktree + branch) (#4125)
  • feat(#3632): settings-resolution FF-native default + per-project seed guard (FR-2) (#4107)
  • feat(#4117): DM-5 flat umbrella rollup — umbrella_number index + event-invalidated rollup cache (#4119)
  • feat(#3749): Stats velocity adopts ledgertable Sort — sortable metrics + number-key jump (#4115)
  • feat(#4106): EPIC-SCREEN C0 — two-pane crush shell + Tri-Lens Sync Law + focus/lens scaffold (#4113)
  • [GITFLOW][GUARD] #3865 E1 — PR-retarget-to-lane hook + auto-open lane (blueprint §7.1) (#4102)
  • feat(#4120): milestone.epic_id linkage — column + FK ON DELETE SET NULL + idx_milestone_epic (EPIC-SCREEN DM-2) (#4121)
  • feat(#3747): ledgertable fold/group aggregation — Config.GroupBy/GroupRollup, synthesized parents, ADR-0103-aligned (#4108)
  • [GITFLOW][GUARD] #3867 E3 — consent-gated cut verb wiring crew ALL-CLEAR + CI (§7.3) (#4114)
  • feat(#3866): E2 lanes-only merge seal — deny a non-lane head into a trunk (blueprint §7.2) (#4111)
  • feat(#4116): tickets.epic structural container — DM-1 data model (migration 0035 + RLS + entity_kind + ledger) (#4118)
  • refactor(#4105): rename Kind epic→umbrella + back-compat alias (words-first G0) (#4110)
  • feat(#4070): L4 — wire install.sh desktop step for Linux (macOS byte-identical) (#4112)
  • feat(#4103): local per-project + per-sprint/milestone time rollup (events.db ⋈ provider milestones) (#4109)
  • feat(#3741): ledgertable Sort seam (Pillar A) — Column.Sortable/Compare + verbs + header glyph + #3241 guard pin (#4104)
  • fix(#4012): surface desktop push-to-talk delivery failures — kill the silent dead key in the webview bridge (#4086)
  • fix(#4097): prefer provisioned sidecar over a pending-data-path bridge (interim voice fix) (#4101)
  • feat(#3748): ledgertable footer view-state readout — Footer.FilterHint above #3078 total (#4100)
  • feat(#4072): L6 — GPG signing + pinned-key verify (+ optional zsync) for the Linux AppImage (#4099)
  • feat(#4069): L3 — Linux installer body (install-desktop.sh detect_os branch) (#4098)
  • fix(#4083): point Team/Enterprise sync URL at the real console (Phase 1) (#4096)
  • feat(#3930): heartbeat policy_version piggyback + TUI policy cache + fail-direction resolver (P2) (#4093)
  • fix(#4052): reconcile — forward-preserve founder refs + local-ahead guard + AttachTickets row_version bump (#4092)
  • fix(#4028): pin context-widget baseline to session start (stop gray 'setup' drift) (#4089)
  • feat(#4080): agent-conversation content-language directive (i18n layer A) (#4095)
  • feat(#3641): Provider/Sync Settings screen — provider picker + tier-gated Jira config (FR-8) (#4027)
  • fix(#4066): cockpit survives its process — remain-on-exit + guarded-respawn + panic forensics (#4077)
  • feat(#4081): content-language doc-routing seam — route deliverables via fft-documenter-br/-es (#4091)
  • fix(#4009): ACE Reset actually /clears — wait for the pane to re-idle after the handoff before the guarded clear (#4094)
  • feat(#4008): tiered vehicle-review depth — close the #4003 auto-merge miss (#4088)
  • feat(#4068): L2 — AppImage packaging + launch-smoke gate (appimage-linux.sh) (#4078)
  • feat(#4079): content-language axis (en/es/pt-BR) decoupled from voice + ADR-0084 amendment (#4085)
  • fix(#4046): reconcile conflict-handling — escalation flood dedup + reachable field comparison + title/state escalation (#4053)
  • fix(#4049): console.memberships keys org identity as org_id, not tenant_id — ff-0021 + 0014 read policies (ceremony repo-fix) (#4051)
  • feat(#3648): saldo-backed Stats DAO — indexed telemetry.v_saldo_dev read seam (FR-5) (#4057)
  • feat(#4067): Linux build lane for the Wails desktop shell (package-linux.sh) (#4076)
  • fix(#4058): exempt play orchestrator from cwd-isolation guard (Option R) + honest deny message + out-of-repo permit (#4062)
  • feat(#4047): wire sync-family screens — Y-key Sync menu shell + MAP/Custom Fields production sources (#4060)
  • feat(#4064): saldo authenticated read grant + org-scoped RLS (ff-0033) (#4065)
  • feat(#3646): realtime publication + pg_cron nightly reconcile on telemetry.saldo (FR-5) (#4055)
  • fix(#4054): fix-forward broken-main ConfirmMerges test to the #4045 in-flight-brake contract (#4059)
  • fix(#4048): roles_ff_wa_migrator grants ff/wa_migrator to postgres before CREATE SCHEMA AUTHORIZATION (non-superuser executor, caught live at #117) (#4050)
  • feat(#3631): De-Para Field-Mapping MAP screen — two-pane roles-to-fields, blocking coverage banner (FR-7, AC-13/AC-14) (#4040)
  • fix(#4041): cockpit autofire honors BOTH off-switches live — auto_merge=false + loop autofire --stop (P0 safety) (#4045)
  • feat(#3627): adopt-migration seeds canonical store + identity map, then flips setting (FR-2) (#4033)
  • fix(#4037): route in-review worker lifecycle SSOT into the Kanban Review lane (#4044)
  • fix(#4038): per-provider project scope on the reconcile loop — hold Jira out of the pass (P0 fix-forward) (#4043)
  • feat(#3638): lastro backfill routine — synthetic created events per existing ticket/milestone (FR-4) (#4031)
  • feat(#3630): daemon-owned multi-provider reconcile loop — seat lock + DB cursor + conflict log (FR-4, AC-9/AC-10/AC-11) (#4036)
  • feat(#3635): FieldSource + FieldMapper de-para projection (FR-7, AC-12/AC-13) (#4034)
  • feat(#4019): persist FF-native ticket Body + DependsOn/Refs edges (FR-2) (#4035)
  • feat(#3634): field_role_map de-para mapping + apply_field_roles() (FR-7, AC-13) (#4032)
  • feat(#3628): Custom Fields definition screen — list + add/edit form (FR-6, AC-12) (#4029)
  • fix(#3629): remediate PR #4014 review — renumber 0024→0028, field_type immutability guard (FR-6) (#4014)
  • fix(#4023): FF-native create never-ownerless + edit rejects phantom milestone + seam pins (#4026)
  • fix(#4013): serialize wave-fire batch spawn — kill the tmux new-session race + render storm (#4018)
  • fix(#4024): bind conflict_log resolution columns to status lifecycle (ff-0027) (#4025)
  • fix(#4021): seal two keychain secret leaks (YAML raw-value + naked-string Store seam) (#4022)
  • feat(#3636): KindJira TicketSource+SyncSource over a direct Jira REST v3 client (FR-3) (#4020)
  • fix(#4012): render the #3381 push-to-talk notice on the COCKPIT — kill the silent dead key "even on ACE" (#4017)
  • feat(#3639): lastro_event + sync_run immutable ledger + indexes (FR-4) (#4015)
  • feat(#3633): KindFF create/edit/close write path over the Supabase canonical DAO (FR-2) (#4016)
  • feat(#3640): sync_cursor + conflict_log + identity_map.reconciled_row_version (FR-4) (#4011)
  • feat(#3637): OS-keychain abstraction (Solo) + secret masking (FR-8) (#4010)
  • fix(#4006): time-based ~1h recency trim on burn-rate projection (kill false optimism) (#4007)
  • feat(#3976): vitrine ticket-creation chokepoint — RequireCreatable + ticket new + emit-guard shape gate (#4004)
  • feat(#3268): confidence-gated coarse burn-rate projection band (LOW/MED/HIGH headroom) (#4003)

v1.2.0 — 138 PRs, 88k lines, made with FlowForge