Skip to content

First year 50% off with code 50OFF

Buy Now

Changelog

Generated from release tags.

  • feat(gateway): scope the statusline quota URL to the worker’s namespace
  • feat: guard Linux process cleanup ownership
  • fix(notify): preserve framework action identity
  • fix(baton): recover stale duo work safely
  • feat(notify): unify Telegram message metadata into one leading header line
  • feat(tg-relay): route explicit headless targets
  • feat(leg): forward resolved effort to native env
  • fix(leg): pass context_window_size as LEG_CONTEXT_WINDOW_TOKENS
  • fix(merge-release): fence interrupted pwsh callers, announce update-branch, close idle recovery on fresh cycle fence
  • test: make leg-suite path assertions space- and spelling-tolerant
  • feat(audit): share progress in ledger
  • fix(test): isolate three Windows core-lane cases from host state
  • fix(test): reap timeout-wrapped suites when a case-profile run is cancelled
  • fix(merge-release): tolerate stale headRefOid after update-branch and resume without persisted head
  • fix(prompts): cost means money; priority/scheduling never blocks side findings
  • fix(baton): recover terminal idle stalls safely
  • fix(local): keep an acked renewal KILL recoverable after a transient supervisor failure
  • fix(leg): default LEG_TIMEOUT_SECS to turn scale
  • fix(ci): close recovered tracker issues on green waves
  • fix(ci): share one Windows tracker per lane despite search-index lag
  • test: cover prompt and origin-only PR residue
  • chore(ci): retire release-backfill-manifests and the Windows real-acceptance wrapper
  • ci: pin every upload-artifact to retention-days: 3
  • fix(baton): write bg-run result before the terminal wake; retire settled bgtask rows
  • fix(test): make six Windows-only regression cases pass
  • fix(baton): accept serve outcome evidence in duo teardown
  • fix(baton): revive dead pollers, re-provision dead task hosts, unfence the own task host
  • fix(adhoc): size the renewal completion guard above the acceptance bar
  • fix(baton): open queue-audit envelopes through mixed paths on Windows
  • fix(baton): stop the Windows node by exact PID on host-service restart
  • fix(bg-run): reconcile baton tombstones safely
  • fix(install): converge busy Windows installs and upgrades without an operator
  • fix(test): preserve resolved coreutils in baton PATH fixture
  • fix(test): keep recorded task host listed in duo recovery intruder step
  • fix(test): delay bounded wait watchdog kill
  • fix(backends): hand leg headless turns their role prompt
  • fix(baton): never fence a live duo on an unknown read or a stale ref
  • fix(agents): list a legacy state once when its tmux agent is live
  • fix(agents): route empirical blockers and trackerless CI red to ready tickets
  • fix(install): prove duo sessions, not raw Baton ids, after a Windows restart
  • fix(test): fence test suites off the live Baton service
  • fix(notify): skip system action breadcrumbs
  • fix: adopt origin-only assigned PR recovery
  • fix(baton): guard poller recovery scans under stall lock
  • refactor(baton): split oversized relay modules
  • docs(ci): document real-host pending dispatch behavior
  • test: align Windows S4U fixture task identity
  • test(baton): raise nested recovery scan timeout
  • ci: replace required lane evidence on rerun
  • test(baton-service): fix five Windows-load flaky cases
  • feat(baton): read duo health from outcome summary
  • feat(ci): route Windows PRs through smoke baseline
  • feat(prompts): tell Windows PowerShell roles to hand off via bare send-relay-and-comment
  • feat(baton): deliver duo routed sends with native baton mat send
  • feat(local): replace detached setsid workers with a private supervisor carrier
  • feat(windows): start baton and tg-relay at boot via S4U tasks
  • fix(test): use wall-clock deadlines for duo awaits
  • fix(idle-recovery): fail closed on blocker lookup errors
  • fix(gh-gateway): keep credential get output off disk
  • fix(ci): compare Windows smoke coverage with smoke baseline
  • fix(baton): relaunch dead duos on service startup
  • fix(claude): preserve launch-case trust key
  • fix(baton): clear cycle identity at the closed-cycle boundary and degrade stale closed keys to keyless relay
  • fix(ownership): preserve live owners during stale reaping
  • fix(baton): publish Windows launcher refreshes only after a positive stop
  • fix(gh-gateway): accept positional repository targets
  • fix(ownership): classify missing tmux probe as unknown
  • fix: keep merge boundary after already-merged PR
  • fix(baton): restore headless relay root and gateway preflight
  • fix(test): reap Windows suite descendants and always use the pinned native jq
  • fix(bg-run): extend long-task milestone heartbeats
  • fix(idle-recovery): guard busy target before silent retry
  • fix(baton): prove Windows stale-claim backend absence via turn-gate anchor
  • fix(docs-projection): handle public API rate limits
  • fix(baton): guard nested recovery scans
  • fix: require CI aggregate for required-green wait
  • fix(baton): retire closed-cycle recovery requests
  • perf(windows): cut fork tax on relay hot paths
  • docs(ci): record Windows working-session smoke qualification
  • test(duo-baton-worker): extend contention fixture hold window
  • test(duo): isolate recovery fixture from startup relaunch
  • test: repair ci renewal and baton fixtures
  • test: provision local carrier for poll marker renewal
  • test(baton-service): isolate enable fixture from Windows scheduler
  • test: isolate Windows refresh fixture environment
  • feat(baton): carry repo-root advance and auto-backfill on the task host
  • feat(hooks): block taskkill /T and image-name kills, point to win-kill-tree
  • feat(next-work): resume a held claim without the full selection pass
  • fix(baton): open outcome-health jq operands as mixed paths on Windows
  • fix(duo): page on poller recovery only for a confirmed-gone relay-poll task
  • fix(duo): park idle cycles with open blockers
  • fix(agents): keep small findings in the current PR
  • fix(baton): stabilize recovery and audit fixtures
  • fix(ci): recalibrate Windows guard for adhoc-task-session-renewal_test.sh
  • fix(test): release wrapper-scan retry children on scan events
  • docs(ci): update smoke guard sum comment to 2190 s
  • test: model issue-body and PR-linkage reads in formatter fixtures
  • feat(upgrade): restart stale baton services when safe
  • feat: sanctioned non-closing delivery for issues that stay open
  • feat(explore): auto-refine supervisor self-re-execs at its idle boundary
  • feat(test): add MAT_TEST_EXCLUDE deny-list
  • feat(prompts): file side findings ready by rule, page only for decisions
  • fix: recover ownerless delivery reservations
  • fix(copilot): disable native ask tool for relay roles
  • fix(pr): stop checks-wait after required failure
  • fix(duo): guard verdicts against superseded heads
  • fix(prompts): leave duo renders maintenance headroom
  • fix(pr): stop checks-wait once required checks are green and only windows-coverage is pending
  • fix(ownership): recover heartbeat after timed-out record reads
  • fix(baton): fence closed-cycle bg-run callbacks
  • fix(adhoc): raise the renewal new-child milestone bar to 60 s
  • fix(duo): strip queue root in glob form during queue recovery
  • fix(duo): recover consumed silent turns
  • fix(baton): gate idle recovery on bg-run progress
  • fix(test): bound baton park worker waits
  • fix(ci): recalibrate four Windows smoke guards (,)
  • perf(adhoc): shorten the Windows native renewal publish path
  • perf(gh-gateway): drop per-call forks on the hot path
  • perf(duo): index envelope ids once per queue recovery call
  • ci(windows): recalibrate smoke guard for mat-install-systemd-regression.sh
  • test: fix serial lane fixtures
  • test: stub merge-release gates in arb loser case
  • feat(baton): gate merge release on fresh base
  • fix(test): install flock-holder reaping traps before ready marker
  • fix: preserve auto-refine repository routing
  • fix: refuse umbrella/ci-tracker as a park target; advisory-only red never parks
  • fix(codex): bound a headless turn that lingers after its terminal record
  • fix(baton): forward signals to active turns
  • fix(baton): bound worker Codex signal fallback
  • fix(ci): recalibrate Windows guard for github-auth-state-regression.sh
  • fix(renewal): cut native termination latency on slow Windows hosts
  • fix: refuse missing or empty scratch-root relay handoffs
  • fix(baton): wait for PID handoff before forwarding signals
  • perf(windows): use native generation provider for renewal
  • test: align review hygiene approval assertions
  • test: isolate missing baton doctor fixture
  • test: model merge-release freshness API responses
  • feat(ci): report required verdict latency
  • feat: flag busy baton roles with a silent transcript in status/watch
  • feat(ci): restore real-host nightly owner
  • feat(ci): add opt-in Windows real-backend acceptance cadence
  • feat: complete approved no-PR cycles
  • fix(test): reap TERM-trapped poll children before the ownership scan
  • fix(codex): hide the rate-limit model nudge in role homes
  • fix(adhoc): arm the renewal completion guard for doc-path handoffs and resolve the native target from the sidecar
  • fix(windows): shared kill-tree engine that rescans MSYS survivors
  • fix(windows): harden baton and relay upgrades
  • fix(idle-recovery): target merge-ready Reviewer and defer on rate-limit menu
  • fix(baton): bound duo reconcile and repair stale claims
  • fix(adhoc): bound the deferred native-child settle; retryable renewal refusal while settling
  • fix(test): tear down fixture processes before runner finalization
  • fix: clear stale Baton awaiting-human breadcrumbs
  • fix(ownership): respect turn heartbeat refresh throttle
  • fix(baton): preserve duo pollers during restart
  • fix(cycle-park): return a parked worktree to its placeholder before next-work
  • fix(gh-gateway): contain the credential helper’s process tree
  • fix(ci): finalize real-host suite budgets
  • fix: bind live merge release to checkout origin
  • fix(test): anchor the hung-status read window at the hung read
  • fix(agents): page side findings to operator
  • fix: scrub session env from tmux server birth
  • fix(test): isolate host gh gateway discovery
  • fix(test): preserve validation wrapper cleanup
  • fix: end interruptible sleep on signal in the pre-wait window
  • fix(test): reap real-host fixture sleep helpers
  • fix(gh-gateway): install a PowerShell gh forwarder beside the Windows shim
  • fix(baton): recover pre-claim no-output failures
  • fix(baton): use claim time for pre-cycle evidence bound
  • fix: Reviewer APPROVE merges via merge-release; nudge directs un-merged APPROVE to it
  • fix(claim): verify the owner record before reporting a claim
  • fix(backends): pin MAT_GH_AUTH_CONFIG_DIR in HOME-rebinding panes
  • fix(baton): re-bind GitHub auth on restart and replace a stale claim worker
  • fix(baton): kill status-probe tree via shared engine
  • fix(prompts): restore reviewer merge artifact contract
  • fix(test): record 284/284 timing inventory header
  • test(relay-poll): observe the pid file while the poller is live
  • test(ci): enforce nodeless Baton PATH boundary
  • test(auto-refine): isolate real-host GitHub fixtures
  • test(relay-poll): isolate gh gateway and bound persisted-pane pollers
  • test(duo-baton): isolate closed-cycle reaper admissions
  • test(windows): add opt-in real-Claude working-session acceptance command
  • test(duo-baton): trim worker-batch custom-scratch case and recalibrate budget
  • test(gh-gateway): widen foreign-wrapper step bound for Windows spawn cost
  • ci(windows): dispatch the coverage writer directly and stop waiting on stale coverage
  • feat(agents): gate delivery-filed tickets to ready or blocked, never refining
  • feat: end every refinement pass ready or blocked, never refining
  • feat(tmux): carry detached work on helper server
  • feat(next-work): adopt claimed open relay PRs
  • feat: prioritize blockers for parked pull requests
  • fix(notify): preserve explicit sandbox on direct restore
  • fix(relay-poll): preserve generation-locked launch arguments
  • fix(agents): expose missing tmux panes as ghosts
  • fix(relay): retire poller, watchdog and heartbeat helpers when their target dies
  • fix: expose duo terminal failures and pause automatic wakes
  • fix(baton): carry gh/node/codex dirs on the Windows service PATH and poll with a reason on fetch failure
  • fix(console): resolve a dead session behind the startup live-only snapshot
  • fix(baton): treat residual serve.stop as disposable control data in duo teardown
  • fix(baton): reserve a fresh launcher log per Windows start and report launch failures to the event log
  • fix(gh-gateway): preserve newlines in PATH entries
  • fix(test): finalize Linux suite-owned processes
  • fix(baton): retire a completed abandonment audit at duo relaunch
  • fix(test): allow POSIX adhoc child publication
  • fix(gh-gateway): bound credential helper and skip routing wrappers
  • fix(worktree): enter the repository when a branchless snapshot root is gone
  • fix(ci): map u2604 runner test capacity
  • fix(bg-run): bind Duo claim reads to session gateway
  • fix(ci): bound Windows tracker history
  • fix(merge-release): team merge requests its own session boundary
  • fix(codex): pre-ack model migrations and escalate a blocking startup modal
  • fix(issue): clear blocked on ready promotion
  • fix(tmux): retry refused session-close replay submissions
  • fix(ci): balance required runnable suites
  • fix(bg-run): scale the closed-cycle reap budget with the selected task count
  • fix(test): recover transient runner ownership reads
  • fix(test): exclude stopped runner pairs from survivors
  • fix(guards): block environment secret disclosure
  • fix: stop exporting GH_REPO into agents and tasks
  • fix(baton): clear stale human waits on replies
  • fix(test): isolate proc field reads
  • fix(ownership): surface heartbeat and stale-lock recovery
  • test(windows): cover adhoc renewal resume
  • test(cycle): give the restart-lease handoff fixture a Windows adoption timeout and compare helper paths semantically
  • test(dispatch): align notify-policy fixture with persisted sandbox contract
  • test: scrub inherited worktree switches from the test env
  • test: realign stale soak assertions
  • test(gateway): align baton fixtures with auth gateway state
  • test(ownership): route managed gateway fixture
  • test(bg-run): pin live claim fixture cwd
  • chore(ci): retire stale workflow and align docs
  • fix(bg-run): retain live claim provenance
  • fix(baton): arm idle recovery for pre-cycle claims
  • fix(duo): gate orphan recovery on blockers
  • fix(ci): resolve new Windows tracker from create response
  • fix: discard confirmed stale pre-cycle claim receipts
  • fix(adhoc): publish the late-settling native child on Windows
  • fix(hooks): restrict scratch-path denial to Windows
  • fix(explore): report auto-refine outcomes atomically through mat
  • fix(platform): run pnpm jq script shims through node and report jq launch failures
  • perf(hooks): prefilter PostToolUse[Bash] with if and fast-path no-marker Stop
  • perf(config): cache the flattened backends.json across mat processes
  • test(adhoc-local): stop fixture loops and supervisors when the suite is force-killed
  • test(credential-sharing): publish diagnostics for unknown-backend case failures
  • feat(bg-run): support supervised local adhoc tasks
  • feat(statusline): show the open PR number next to the branch
  • fix(baton): report a failed worktree branch probe as unresolvable
  • fix(notify-user): keep local devops forwards secure and supervised
  • fix: sandbox notifications for nested sessions
  • fix(gh-gateway): honour git’s empty-helper reset in verify and install
  • fix(baton): rearm duo pollers after service restart
  • fix: anchor Baton pollers to session repository
  • test(windows): exclude PATH fixture setup from teardown timing
  • fix(dispatch): match live sessions by canonical slot
  • fix(baton): verify resident poller after merge-release
  • fix(gh-gateway): skip PATH dirs that cannot be canonicalized when pinning real gh
  • fix(baton): relay mixed-form wake path to native Windows roles
  • fix(adhoc): guard Windows renewal by process generation
  • fix(baton): fail closed when the recovery-scan mat entry is unresolvable
  • fix(cycle): put the relay bin on PATH in POSIX form for boundary notifications
  • test(adhoc): isolate synthetic renewal PID selection from native process lookup
  • test(windows): exit fixture loops when the suite’s top Bash is force-killed
  • test(adhoc): wait for the child pid record before signalling the supervisor
  • feat(live): add the managed live worktree parent to the agent workspace
  • feat(live): script patch placement in mat live-worktree create
  • feat(pr): add token-rotation-safe mat pr checks-wait
  • fix(github-auth): accept Enterprise Managed User logins
  • fix(baton): reviewer status notes open no reply-owed recovery
  • fix(baton): retry failed gateway preflight before launch
  • fix(bg-run): convert admission record paths for jq
  • fix(baton): recover handoffs across cycle boundaries
  • fix(agent-home): retry an invalid activity verdict, then fail closed as unverifiable
  • fix: explain explicit claim failures
  • fix(explore): deduplicate auto-refine block notifications
  • test(launcher): compare runtime root paths portably on Windows Git Bash
  • chore(prompts): delete orphaned shared fragments and lint against new ones
  • test(console): wait for lifecycle baseline before fixture updates
  • test: diagnose Windows credential-sharing exit 4
  • test(baton): budget resident-poller waits by wall clock
  • test(adhoc-task-session): retry delayed Windows process queries
  • test(console): separate cadence polls from lifecycle nudge request counts
  • test(prompts): ignore shared fragment comments
  • test(prompts): preserve real consumers in synthetic orphan scans
  • fix(console): launch Rewind scripts through Git Bash on Windows
  • fix(bg-run): decode wrapper reference tokens
  • fix(bg-run): index wrapper references once per sweep
  • fix: capture Duo issue key for bg-run admission
  • fix(release): ship the customer README as the committed blob on autocrlf hosts
  • fix: stop retiring helpers during session restart
  • refactor(prompts): slim live constitution; share stance and side findings; drop baton no-op prose
  • refactor(prompts): trim stale and orphaned shared fragments
  • test(console): avoid Windows Bash parse regression
  • test(console): configure lifecycle writer timeout per platform
  • ci(windows-smoke): verify immutable PR targets
  • test(windows): cover local adhoc task sessions
  • test(helpers): neutralize inherited BASH_ENV
  • test(windows): avoid xargs in recovery digest regression
  • test(windows): split install-upgrade into core suites
  • test: include fixture storage in console lane
  • feat(ci): add auth launch diagnostic workflow
  • feat: route Windows Git Bash credentials through gateway
  • fix(test): initialize MESSAGE_DIR in supervisor cleanup fixture
  • fix(ci): root windows coverage records outside PR history
  • fix(headless): record current-role task trail replacement
  • fix(merge): handle delayed issue closing references
  • fix(ticket-fresh): ignore superseded closed PRs
  • fix(baton): preserve recovery artifacts during teardown
  • fix(ci): derive real-host suite deadlines from budgets
  • fix(test): track MAT_TEST environment controls accurately
  • fix(recovery): display owed send time in UTC
  • fix(ci): mark active Windows extended test cases
  • fix(test): allow Windows lane listing preflight
  • refactor(baton): unify idle recovery ladder
  • refactor(prompts): centralize idle recovery rule
  • refactor: unify tmux idle recovery ladder
  • test(github-auth): respect gateway platform predicate
  • test: recalibrate bg-run callback timing budget
  • test(headless): isolate inherited baton endpoint env
  • test(console): gate Windows-sensitive concurrency tests
  • test(console): isolate server suite from other Node files
  • baton: recover task host before duo restart
  • test(baton): compare inbox claim paths portably
  • test: target tmux gate helper in pane cases
  • test(console): escape fake baton control paths in JSON
  • test(console): move readonly logs outside fixture
  • fix(test): key read-redirect lint comment filter on source, not path
  • fix(gh-gateway): filter shim path during fresh bind
  • fix(baton): preserve Duo bg-run workflow provenance
  • fix(test): route the arb fixture’s bare flock through lock.sh
  • fix(baton): raise duo serve batch cap from 3 to 100
  • fix(bg-run): reap tasks when workflow cycles close
  • fix(ticket-fresh): retain gh read diagnostics
  • fix(ci): ignore stale CI Full failures
  • fix(baton): recover pair-idle in never-paused sessions
  • fix(docs-projection): fetch shared history before refresh
  • fix(baton): refuse restart with missing worktree
  • refactor(prompts): clarify delivery and review workflows
  • refactor(prompts): replace anti-phantom with peer communication
  • refactor(recovery): share idle-recovery message source
  • test(ci): make tracker-watch lock regression platform-aware
  • test(merge-gate): strip CR before whitespace fold in skill contract assertion
  • test(release): fail closed when the runtime-doc reference scan dies or finds nothing
  • test(lock): run killed-subshell recovery case without setsid on Windows
  • test(commandcode): make the missing-binary preflight case host-independent
  • ci(windows-smoke): add guard-only four-suite floor
  • feat(adhoc): deliver queued inbox messages as one batched resume prompt
  • feat(gh-gateway): managed gh and HTTPS Git credential gateway for POSIX drivers
  • fix(baton): audit explicit duo queue abandonment
  • fix(test): stop console reads before fixture cleanup
  • fix: ignore stale CI Full watcher runs
  • fix(bg-run): run expiry maintenance in a detached, bounded worker
  • fix(ci): batch no-explore tracker-watch alerts into one notify
  • fix(adhoc): let renewal own the poll handoff write
  • test(adhoc): use provably dead pid fixtures
  • test(duo): honor the bg-run wake root in callback fixtures
  • feat(agents): balance residual risk against mitigation cost
  • feat(test): publish state-backed agentHint recovery commands for local suite retries
  • fix(adhoc): state that mat issue blocked releases the claim
  • fix(ci): bind shard in Windows classification
  • fix(baton): continue current conversation for operator messages
  • ci(windows): chunk core coverage with calibrated guard-only timeouts
  • test(adhoc): stamp boot_uuid in local-driver state fixtures
  • feat(opencode): adapt kind=opencode launch to OpenCode v2
  • feat(opencode): support OpenCode v1 and v2 via per-launch version detection
  • fix(cycle): report boundary preflight refusal reason
  • fix(live): adopt released slot task branches
  • fix(ownership): stop the owner heartbeat once its claim is settled
  • fix(notify-user): run devops forwards on tmux and Baton carriers
  • fix(ci): treat mid-download expiry as missing
  • fix(ci): recalibrate budget drift weights
  • fix(test): align ownership health probe and reclaim gate
  • fix(ci): retry docs projection publish operations
  • fix(pi): digest the full resolved provider shape in settings identity
  • fix(pi): omit max_output_tokens on responses wires by default
  • docs(copilot): fix lock ownership sentence
  • docs(ownership): align merge owner-record guidance
  • ci(full): derive CI Full per-suite timeouts from budgets
  • test(doctor): normalize HOME before fake install in driver summary test
  • test(session): reap the stubborn fake helper on case exit
  • test(cycle): exercise superseded owner merge guard
  • test: model delivery reservation API in agent helper fixture
  • test(bg-run): capture multiline tmux helper argv
  • test(release): skip unsupported symlink staging
  • ci: recalibrate headless task test budgets
  • ci(windows): recalibrate core lane timeouts from 4-run evidence and re-size budgets
  • ci(windows): replace the long-running PR gate waiter with async admission and a writer
  • test(harness): normalize the analyzer-free shim PATH entry on Git Bash
  • feat(explore): pass auto-refine startup instructions inline
  • fix(test): bind the final gate to a per-reclaim marker
  • fix: avoid action for same-session lease re-fence
  • fix(tg-relay): share the reply index across HOME-rebinding backends
  • fix(relay): resolve Windows lock owner MSYS PID before native lookup
  • fix(relay): back off on getUpdates transport failures
  • fix(relay): kill Windows relay processes that escape the launcher tree
  • fix(send-relay): print SEND FAILED banner on outside-tmux pane-id failure
  • fix(ci): judge routing completeness from router rows again
  • fix(test): fail on skipped final-gate coverage
  • fix(ci): avoid Windows tracker marker pipefail race
  • fix(ci): judge planned Windows waves absent only after the schedule-delivery grace
  • fix(relay): judge Windows mkdir-lock holders across MSYS runtimes
  • fix(worktree): ignore unrelated sibling when resolving a managed slot leaf
  • fix(prompts): target local Windows validation in Dev roles
  • fix(console): run the baton binary through Git Bash on Windows
  • fix(launch): unexport functions for headless children
  • refactor(ownership): retire assigned_to delivery locks
  • docs: clarify Windows upgrade paths
  • docs(ci): align Windows gate review contract
  • ci(windows): planned-wave watchdog
  • ci(budget-drift): recalibrate eight flagged suite weights
  • ci(budget-drift): recalibrate shared-fragment-dedup-regression.sh weight to 6
  • feat: forward notify-user –action to an opt-in devops host
  • feat(prompts): add shared local devops rules hook
  • feat(review): carry evidence across PR heads
  • feat(skills): ticket-self-critique asks for edge-condition behaviour decisions
  • feat(test): add duplicate-coverage retirement shortlist
  • fix(ci): reject stale ShellCheck baseline counts
  • fix(gate): make merge-gate read the advisory Windows gate’s step summary
  • fix(console): keep a session stopped mid-page as a dead row until teardown
  • fix(live): isolate issue patch worktree lifecycle
  • fix(local-state): decide reboot by the kernel boot UUID, not a drifting btime
  • fix: read ownership sweep mtimes portably
  • fix(baton): reconstruct systemd user bus for manager calls
  • fix(test): avoid SIGPIPE in console route regression
  • fix(console): re-arm a transcript watcher that failed with EMFILE
  • fix(ci): route timing tables to sync lint
  • fix(ci): ship ShellCheck in the test image and fail closed without it
  • fix: allow send-relay pane targets outside tmux
  • fix: bound ad-hoc Windows debug scripts
  • fix: arbitrate concurrent delivery claims by canonical reservation
  • fix(bg-run): pin validated session in tmux task helper
  • fix(ci): refresh ShellCheck baseline on scheduled lane
  • fix(ci): route backend dispatch implementations to confinement suite
  • fix(test): isolate devops forwarding in Telegram runtime suite
  • fix(worktree): remove preserved live issue worktrees
  • fix: allow OpenCode Windows renewal reaping
  • fix(live): merge in-place repair PRs from the launch checkout
  • fix(console): publish teardowns to every open page and fence only older payloads
  • fix(upgrade): end Windows logon-relay race on Git Bash swaps
  • fix(ci): make Windows platform gate manual to prevent PR queue buildup
  • fix(pi): provision context and output token limits
  • fix(launch): strip exported bash functions before native exec
  • fix(pi): enable reasoning for managed models
  • fix: suppress Claude gateway selector prompt
  • fix(github-auth): accept Windows absolute token files
  • fix(ci): expose Windows diagnostic case markers
  • docs(examples): add commandcode backend entry to examples backends.json
  • test: isolate core package suites in batch 2
  • test: declare core package group for four launch suites
  • test: declare core/tmux package groups for three batch-4 suites
  • ci(windows): add nightly main baseline
  • test(bg-run): attribute host artifact movement to the suite’s own tasks
  • ci: recalibrate baton service enable suite budget
  • test: align live claim policy regression
  • test(explore): diagnose child-ready hold cleanup
  • test(doctor): isolate git-bash env in tests
  • test(prompts): regenerate review directive ledger after wording change
  • ci: recalibrate budget-drift rows to the max ci-heavy host p50
  • test(ci): recognize backend dispatch in orphan lint
  • test(ci): align pinned digest regression with Dockerfile copy
  • test(backends): allow documented LEG doctor hook location
  • ci(windows): route advisory gate by changed paths
  • test: compare credential symlink targets by path identity
  • test(console): bound fixtures and reap interrupted runs
  • test(audit): stabilize windows completion reap fixture
  • test: stabilize audit poll watchdog teardown
  • test(ci): run the routing-completeness suite on the PR that omits a route row
  • feat(backends): add leg headless backend kind
  • feat(providers): make the per-worker gateway URL opt-in via MAT_GATEWAY_WORKER_NAMESPACE=1
  • feat: select GitHub App token files by owner
  • feat(pi): gateway route takes the provider id from the default_model prefix, defaulting to mat
  • fix(ci): install a C compiler in the test image so doctor native-stub cases run
  • fix(claim): claim-time uniqueness reads the legacy assigned_to label
  • fix(agy): hash the managed hooks.json in the settings-stage proof
  • fix(merge-guard): bound _mat_issue_merge_state’s GitHub reads
  • fix(test): re-measure three stale 1 s lint partition weights from Required timing
  • fix(test): install 2>/dev/null before the input redirect on vanishing-file reads
  • fix(test): run the four final-gate ownership-ledger cases and guard their wiring
  • fix(test): pin DOCS_VERSION in the session-scratch docs-projection case
  • fix(windows): reconcile stale Baton endpoint records after upgrades
  • fix(merge-release): route PR and issue operations to separate repositories
  • fix(console): keep the Baton console usable when Windows status/show reads are slow
  • fix(test): visit the capped ownership sweep least-recently-visited first
  • fix(ci): require a behavior-owner router row for every an internal path helper
  • fix(test): suppress intentional harness SC2031
  • fix(bg-run): single-quote tmux pane command words for a POSIX default-shell
  • fix(test): drop Linux ‘root /tmp’ scratch pins removed by
  • fix(live): claim an issue before patch work
  • fix(tmux): distinguish an unreachable tmux server from a missing session
  • fix(baton): target systemd user manager
  • fix: silence read open race diagnostics
  • fix(baton): read verbs must not recreate missing session cubbies
  • fix(ci): skip a Windows gate re-dispatch the remaining budget cannot watch
  • fix(test): exempt console Node lane from address-space cap
  • fix(ci): rename gh download to .zip before Expand-Archive in windows bootstrap
  • fix(hooks): deny only write-shaped bare /tmp tokens off Windows
  • fix(doctor): validate leg backend credentials
  • fix(live): place quoted-with-space and line-continued cd targets; track escaped \cd
  • perf(console): cache dead fleet snapshot per page
  • docs(ci): Dockerfile header and sandbox recipe match the CI gate
  • docs: copilot-instructions and handover skill name the <mode>:<slot> delivery lock
  • docs: reconcile stale mbp15-vm ci-heavy membership comments
  • docs(codex): clarify opt-in namespace in route identity comment
  • chore(lint): route engine packages to tmux through a driver seam
  • ci(windows): size the core wave budget from its manifest and enforce it
  • ci(windows): provision the gh CLI in the Windows bootstrap
  • ci(windows-gate): make platform-windows-gate advisory
  • test: refresh ownership-ledger wrapper weights after follow-up changes
  • test(console): give server readiness a 30s deadline and diagnose failures
  • test(case-profile): assert the nested profile on a named child case
  • ci: recalibrate soft test budgets
  • feat: mode-qualified delivery claim labels
  • feat(pi): gateway_selector route with selector auth and no client-side key
  • feat(codex): port ticket-critique reminder/stop/clear hooks
  • feat(ci): budget-drift report over Required timing artifacts, routed through the auditor
  • feat(ci): recurring workflow publishing the soft-budget drift table
  • feat(ci): dedicate mbp15-vm to a twice-daily full-corpus soak lane
  • feat(providers): derive per-worker gateway URL from backend nickname
  • fix: allow cross-platform Windows issue refinement
  • fix(test): dead-owner unknown sibling no longer freezes ledger reclaim
  • fix(test): consult dead-owner ledger siblings without forking
  • fix(test): pin notification formatter project to a fixture repo
  • fix(ownership): POSIX-quote the tmux owner-record carrier pane command
  • fix(test): keep renewal-reap victims one process so none outlive the suite
  • fix(ci): split ownership-ledger-regression.sh into four serial wrappers
  • fix(review): retry and park transient Required CI failures
  • fix(test): bound harness teardown waits by wall clock
  • fix(cycle): refresh owner record under the mode-qualified label at cycle start
  • fix(test): interrupt start-marker fixture only after case body starts
  • fix(live): resolve patch commit guard against preceding cd
  • fix(backlog): scope the platform:windows note to delivery rows
  • fix(ci): retry transient read failures in platform-windows-gate
  • fix(renewal): fall back to MAT_AGENT_PID winpid when the Windows adhoc pidfile refuses
  • fix: bound duo worker waits and stabilize pause markers
  • fix(issue): mat issue ready releases the caller’s own explore hold
  • fix(prompts): repair water-cut remnants in duo-review and scratch-files-linux
  • fix(pi): require a mat-pi-gateway/ default_model on the gateway route
  • fix(ci): mktemp-scope-lint sees ‘command mktemp’ sites
  • refactor: move tmux-free session/next-work helpers out of an internal path
  • test(helpers): per-package test source groups with isolation check
  • ci: let ci-real-host.yml dispatches target one runner and one shard
  • test: declare package groups for six core/tmux suites
  • test(doctor): isolate inherited user-bus variables in sandbox
  • test: gate relay-poll countdown and TERM-race cases on observed events
  • test: attribute and fix the sydney2 _relay-poll leak
  • feat(console): repository lifecycle feed
  • feat(console): local lifecycle writers nudge an immediate feed poll
  • feat(logging): add bounded local mat.log and initial failure diagnostics
  • feat(release): announce releases with the full commit message, no ad line
  • feat(release): announce the first commit’s prose plus named co-authors
  • feat(agent-cli): version-aware once-per-session baton provisioning
  • feat(agy): add role-home guard provisioning and operator documentation
  • fix(ci): reduce run-lanes timeout risk
  • fix(tmux): create panes from an agent with its base PATH
  • fix(logging): cap tg-relay.log through the shared bounded writer, truncating in place
  • fix(ci): record serial suites dropped by Required as deferred
  • fix(duo): end reviewer turn after plan approval
  • refactor(agents): delete seed and wrapper-internal water from live and adhoc
  • refactor(agents): delete wrapper-restated water from duo-review.md
  • refactor(agents): delete tool-restated water from shared fragments
  • refactor(agents): trim redundant plan and caucus prompts
  • refactor: resolve the unverified orphaned-helper lint candidates
  • refactor(runtime): hoist relay definitions into mat-core
  • docs(evidence): point driver-dispatch inventory at post- modules
  • docs(agents): ban foreground CI watch; bg-run the wait, act on wake
  • test(ownership): isolate recycled-pid teardown scenarios
  • test(relay-poll): update baton stub for version preflight
  • test(agent-home): root _mah_sandbox under the test tmpdir
  • test(no-long-sleep): run the corpus self-check over a private root
  • test(docker): tag the test image by Dockerfile content
  • test(ci): split prompt render contract suite
  • test(docker): mount the source tree read-only and move in-tree test writes out
  • ci: run Linux test lanes in Docker
  • test(audit): keep the queued-wake fake-launch stub off test/helpers.sh
  • test(baton): make the doctor’s node-absent case hold where node is a system binary
  • test(scratch): initialize launch marker state in cleanup fixtures
  • test(windows): make scratch-fragment render assertion host-aware
  • test(audit): widen load-sensitive supervisor waits in mat-audit-tmux
  • test: write lane fixture status files
  • feat(agy): add HOME-mapped headless adapter
  • feat(hooks): refuse bare notify-user –action without Tried:/Decision:
  • feat(agents): name the duo escalation shape; drop next-work restatement
  • fix(baton): keep a pause pausing while a turn marker is unobservable
  • fix(ci): refuse a dispatch already red on the same commit
  • fix(agents): classify red CI before escalating; one abort report
  • fix(local): name the local driver, not a pane, on terminal records
  • fix(duo): suppress pending and clean-review verdict relays
  • fix(docs): attach via the mat socket in README; lint root Markdown
  • fix(test): answer the batch version floor from the bg-run baton stub
  • fix(duo): hand the post-merge boundary to a freshly loaded installed runtime
  • fix(release): skip positional-parameter source paths in the payload lint
  • fix(test): derive installed names without per-entry basename children
  • fix(prompt-cache): sign symlinked project bundles regardless of trust
  • fix(ci): derive required suite timeouts from budgets
  • refactor(agents): delete restated water from explore and audit constitutions
  • perf(test): refill lane slots as suites finish
  • test(dedupe): drop audit missing-key case duplicated by adhoc suite
  • chore(platform): retire the Windows tmux driver runtime
  • test(lint): flag helpers referenced only by their own tests
  • test(bench): scope Linux baseline digest to measured code
  • chore(ci): remove the one-off paired profile recovery
  • test(bg-run): drop inherited session scratch vars in the shared harness
  • chore: trim redundant developer and reviewer prompt text
  • feat: add module boundary lint
  • feat(prompts): add OS-specific scratch guidance
  • fix: fail closed on lean domain proof drift
  • fix(relay-poll): track direct interruptible sleeper
  • fix(bg-run): unify event delivery and stale semantics across drivers
  • fix(duo): request the tmux boundary restart from merge release
  • fix(duo): accept the role name a live Duo Reviewer pane carries
  • refactor: organize runtime libraries by package
  • test(ci): split launcher contract suite
  • test(relay): harden duplicate guard preconditions
  • test: scope lean record stamps
  • test(bg-run): split bg-run-regression into three budgeted suites
  • test(audit): sandbox the Windows-simulation scratch root
  • test(baton): make the ensure_service body guard rename-aware
  • test(duo): prove restart rollback through the stubbed status endpoint
  • test(team): make the real-launcher rebirth fixture self-contained
  • test(helpers): isolate the real-tmux cleanup fixture from the suite ledger record
  • test(ownership): bind sibling teardown to its own process tree
  • feat(duo): let baton serve own batch claims and hand the worker an assembled batch
  • feat(scratch): route session producers into a reaped session scratch root
  • fix(ci): queue real-host serial shards one at a time
  • fix(ci): make never-green auxiliary lanes dispatch-only
  • fix(ci): act on watched ci-windows core run terminal state instead of polling to the deadline
  • fix(release): ship a customer landing page as the payload README
  • fix(ci): restore exact-head profile recovery
  • docs(skill): add planner scope check
  • test(baton): give caucus worker prompt waits a 300-poll Windows budget
  • fix(prompts): restore rendered-prompt ceiling for HOME-mapped kinds
  • fix(ci): split the CI Full parallel corpus into ten groups with recalibrated weights
  • refactor(prompts): strip the refinement role from delivery constitutions
  • refactor(relay): drop the refine #N directive; retire mat issue delivery and mat refine-next
  • test(windows): unmask the three PR-independent core-wave harness reds
  • test(baton): replace per-poll marker liveness with worker-pid readiness in the pause-drain fixture
  • test(freebuff): make keepalive worker deadline clock deterministic
  • feat(baton): reconcile interrupted duo sessions after host restart
  • feat(install): add a pre-install dependency preflight for local payloads
  • feat(baton): add operator controls for duo recovery
  • feat(bootstrap): add one agent-neutral first-install setup path
  • feat(console): make teardown directly clickable behind two confirm dialogs
  • feat(duo): make baton peer communication explicit-only
  • feat: explain HOME snapshot anchors in constitutions
  • feat(explore): operator-driven headless explore session over baton
  • feat(baton): support refreshable GitHub token files
  • feat(issue): atomically claim explore holds on creation
  • feat(baton): add mat baton service enable|disable
  • fix(explore/live): fold identity path fields so lean admits an intact home
  • fix(docs): make evidence coverage test projection-safe
  • fix(test): align installed send-relay usage assertion
  • fix(live): reattach to an existing tmux session before duplicate guard
  • fix(test): make the ownership ledger identity boot-stable
  • fix(test): gate the budget-warn fixtures on the measuring clock
  • fix(test): pin the supervised baton unit shape after
  • fix(docs-projection): make site tree public-owned
  • refactor(live): share explore/live reuse-before-guard candidate loop
  • refactor(docs-projection): make projection self-contained
  • perf(explore/live): –lean warm-path cache + supervisor-less session
  • docs: state the baton collaboration model once in duo-protocol
  • docs(examples): remove stale backend models
  • test(relay): stabilize multiline inline duplicate-guard case
  • test(baton): align refresh-service regression with generated wrapper
  • test: stabilize Freebuff submit race fixture
  • feat(baton): persist duo recovery ledger
  • feat(baton): make duo recovery queues durable
  • fix(relay): suppress watchdog poller revival when a mid-cycle waker is present
  • fix(test): refuse backends-fixture writes outside the test-owned TMPDIR sandbox
  • fix(agents): keep duo-dev direct issue turns out of next-work selection
  • fix(ownership): cap the startup stale-record sweep at 4 records
  • fix(team): scrub stale OPENAI_* env at the supervisor boundary for gateway codex
  • fix(backends): codex gateway falls back to MAT_ANTHROPIC_GATEWAY and passes the origin verbatim
  • fix(relay): serialize freebuff paste before synthetic submit
  • fix(relay): anchor handoffs to runtime root
  • fix(docs): exclude recursive evidence artifacts
  • test(pyramid): apply the pyramid pattern to the adhoc and audit mode pairs
  • test(relay): pin remaining duplicate-guard fixtures to the scratch payload glob
  • test(waits): add the wait-scaling validation lane and evidence gate
  • test(windows): add direct Copilot hook suites to Windows core coverage
  • test(ownership): isolate malformed sibling records during stale sweep
  • test(explore): register post-fetch fallback case
  • test(inventory): warn on timing drift and lane backstop mismatch
  • test: bind reclaim to record/root identity behind a final destructive gate
  • chore(config): pretty-print default backends registry
  • feat(freebuff): share canonical credentials and converge release artifacts
  • feat(codex): prioritize gateway routing and default the official endpoint
  • feat(prompts): move the reviewer merge-evidence procedure into the merge-gate skill
  • fix(ci): adopt approved 3600s interim measurement tier for diagnostic lane
  • fix(test): pin allow-duplicate dupguard fixture to the layer-1 payload glob
  • fix(prompts): restore clean personality-review include position in duo-review
  • fix(relay): qualify agent-facing substantive handoffs with absolute entrypoint
  • fix(relay): verify baton enqueue presence before send-relay reports success
  • fix(test): bound case-profile output and stop staging it
  • fix(ci): record Windows tracker ownership suppression
  • fix(baton): bound waiter observation at three samples and fail resume closed on an unobservable scan
  • fix(relay): make baton worker admission waits signal-safe with external sleep
  • fix(ci): validate required parallel selection evidence
  • fix(codex): disable automatic TUI recaps
  • refactor: share live-domain reconciliation
  • perf(baton): make parked waits fork-free (replacement for)
  • test(prompts): protect only [DIRECTIVE] blocks; make deletion the default move
  • Move personality-review include to top alongside other shared guides
  • test(prompts): fold prompt-prose literals into the directive ledger
  • test(baton): tolerate the fail-closed stranded projection between transition surface reads
  • test: scale production waits in wait-heavy suites
  • test: align relay help usage labels
  • test: cover Codex lean provisioning proofs
  • test(inventory): single measured timing table, suite-name lint, MAT_TEST knob table
  • test: split explore suites into a an internal path pyramid
  • feat(explore): move unready refinement to resident worker
  • feat(codex): support live domain attachment
  • feat(live): extend –domain to the commandcode kind
  • feat(baton): coalesce duo worker turn messages
  • feat(ci): extract pinned Linux tool installers
  • feat(test): report per-case skips
  • feat: add per-case test profiling
  • feat(freebuff): add idle keepalive watcher
  • fix(test): reclaim normal-exit roots via descendant discovery
  • fix(hooks/scratch): key the scratch-path guard on spelling resolvability
  • fix(baton-status): dedupe external probes per mat baton status call
  • fix(ownership): keep bounded-gh timeout identity through the owner-record read
  • fix(explore): explain gated queues in the auto-refine idle poll log
  • fix(test): protect live sibling suites from stale-record sweeps
  • fix(explore): draw the standby countdown and parked pane for auto-refine
  • fix(install): print a failure notice and always release the lock in cleanup_install
  • fix(audit): hand off non-ancestral completion safely
  • fix(launch): resync supervised team/duo pane titles from role identity
  • fix(explore): honor effective driver for lean launches
  • fix(ci): normalize HOME/.local/bin PATH entry in ci-full-watch front door
  • fix(baton): pin –agent-timeout-ms 0 on every service start
  • fix(ci): preserve nightly matrix signal
  • fix(test): override the systemd registrar seam in the baton self-start test
  • fix(test): align supervisor cleanup fixture dependencies
  • fix(ci): close required routing gaps
  • fix(ci): isolate Windows gate waiter and cancel old waves
  • fix(ci): route required worker checks by path
  • fix(baton): use SID for Windows scheduled task logon trigger
  • fix(freebuff): arm startup watcher for every seeded role
  • fix(baton): defer stall recovery for dead peers
  • fix(relay): deliver prose replies to forward-root requests once
  • refactor(ci): share Windows bootstrap action
  • docs: drop retired mat consult from the backend-CLI prerequisite
  • ci: run CI Full three times daily (8 h apart) to absorb scheduler drops
  • feat(baton): add read-only mat baton doctor host endpoint diagnostic
  • feat(ci): carry elapsed/budget evidence in windows tracker rows
  • feat(explore/live): add lean startup profile for Windows local driver
  • fix(ci): pin Windows smoke and extended lanes to g3-runner-01
  • fix(ownership): convert _mat_jq file operands via _mat_path mixed
  • fix(test): reclaim orphaned tmux servers and pids via a per-suite ownership ledger
  • fix(baton): recover duo cycles when both roles idle without an owed handoff
  • fix(scratch-guard): align Write/Edit route with Bash allowances and tighten the denial message
  • fix(test): restore the coreutils the nodeless-PATH filter orphans
  • fix(test): own disposable baton service lifecycle in real-host harness fixtures
  • fix(test): close Windows team-cycle fixture report
  • fix(install): compare ownership paths in one canonical form
  • fix(relay): strip retired Claude hooks stored in legacy .command form
  • fix(test): preserve assert_eq/assert_contains intent message
  • fix(test): scope bg-run teardown-reap fixture ids per run
  • fix(ci): split the duo baton worker pause/resume cases into their own wrapper
  • fix(prompt): make duo plan approval single-delivery per driver
  • fix(console-test): JSON-escape substituted paths in materialized fixtures
  • enhancement(ci): report why the Windows Bash bootstrap failed
  • test(baton): discover role-qualified poller pairs in duo-launch assertion
  • feat(agents): make test economy a constitution rule
  • feat(backends): add commandcode kind as a headless backend adapter
  • fix: shorten release announce ad copy
  • fix: keep the closed-cycle fence alive through clock failures
  • fix(baton): one bounded re-read in marker liveness
  • fix(test): delimit _hcx_argv_n at the requested block’s argv-end
  • fix(owner-record): tmux carrier dedupes per-key helper, no foreign-session kill
  • fix(bg-run): gate superseded wakes by frozen generation identity
  • fix(test): pin duplicate-guard fixtures to the layer-1 payload glob
  • fix(headless): never silently replace a task’s conversation
  • fix(prompt): restore the bolded “not auto-merge” sentence in review.md
  • fix(quota): classify the 403 oauth_scope_insufficient response from setup-token backends
  • docs(ci): document the dispatched-workflow-definition evidence standard
  • feat(release): announce every new release tag on X
  • feat(relay): consume Telegram replies in the resident auto-refine worker
  • feat(relay): add recoverable send-relay-and-comment handoff
  • feat(console): name each role’s issue and drop a previous task’s turns
  • feat(ci): surface suite trend and escalation in lane tracker updates
  • fix(console): run the exported mat launcher through Git Bash on Windows
  • fix(relay): route Telegram replies to local adhoc/audit workers
  • fix(test): dearmor the NodeSource key so the docker test lane builds
  • fix(baton): bootstrap the Windows host launcher’s own PATH
  • fix: warn before slow next-work startup
  • docs(ci): enforce private runner policy
  • ci: run Windows gate on private Linux runners
  • fix(ci): install the CI Full watchdog timer and restore its front door
  • fix(baton): heal an endpoint whose registered baton binary is gone
  • fix(notify-user): render a pane-less origin for bg-run helper tasks
  • fix(baton): make the printed Windows endpoint restart actually runnable
  • perf(console): hold one fleet snapshot instead of re-running the CLI per request
  • ci: add a console-only fast merge lane
  • feat(baton): add graceful pause and resume control with console actions
  • feat(console): fit role columns to the view and box the relay timeline
  • feat(console): add per-role inline composer and keyboard send
  • feat(console): show role stderr with turns by default
  • feat(console): label timeline rows with role and user names
  • fix: skip upgrade when already on a source build of the offered tag
  • feat(console): show loading and busy states for slow operations
  • feat(console): send an uninstalled Rewind to the product page
  • feat(console): explain status pills, [!!] marker, and per-session readiness
  • feat(ci): watch open Windows tracker issues for repeat failures
  • fix(relay): refuse byte-identical duplicate send-relay deliveries
  • fix(console): cache and async-spawn mat baton status to stop blocking polling
  • fix(console): answer a dead session instead of failing silently
  • fix(ci): defer Windows gate gh prerequisite to the dispatch path
  • fix(install): keep an internal path off PATH and ship check-open-pr from an internal path
  • fix(test): align installed send-relay usage assertion with duplicate-send flag
  • fix(codex): project skills into both discovery and system roots
  • fix(ownership): refresh a stale task_host_session before failing the owner record
  • fix(baton): recover a dropped bg-run terminal callback via the index/record locator
  • fix(console): scope the Rewind deep link to a project and source
  • fix(relay): trim send-relay skill back under the 50-line budget
  • fix(baton): give the task_host_session a no-op –agent-cmd
  • fix(baton): serialize headless turns per role before delivering the next message
  • test(bg-run): sandbox every bg-run submission away from the host /tmp
  • feat(relay): replace receipt verification with a pair-idle nudge
  • feat(relay): skip armed-waker panes in the pair-idle nudge
  • feat(review): route non-blocking defects to follow-up
  • feat(entitlement): list server versions and install a specific tag
  • feat(console): probe and start Rewind before opening a session
  • fix(bg-run): refresh a dead task_host_session by inbox match before refusing
  • fix(test): gate Windows relay autostart behind MAT_INSTALL_SKIP_WINDOWS_AUTOSTART
  • fix(relay): duo-merge-release must be idempotent across compaction
  • fix(relay): fail fast when Copilot gateway path hits a Basic-auth edge
  • fix(test): sandbox BG_RUN_DEDUPE_DIR in tmux-session-closed regression
  • fix(codex): prune stale managed Stop-hook entries by script basename
  • fix(test): build both release tarballs from one repo-root snapshot
  • fix(agents): reclaim duo-dev render margin under the 15,000-byte ceiling
  • fix(prompts): restore the reviewer preserve-purpose guardrail
  • fix(skill): tighten ticket-self-critique AC and scope gates
  • fix(docs): recover from unrelated-histories merge on projection refresh
  • fix(supervisor): keep the caucus owner-identity sidecar on winpid modes
  • fix(console): render ‘no events’ for sessions with no operator event
  • fix(baton): pre-flight the backend CLI and converge service definitions
  • fix(relay): strip every retired receipt-hook filename variant at launch
  • fix(baton): make stall escalation confirmation-aware
  • feat(issues): close refining duplicates with teardown
  • feat(docs): make the public repository the sole production publisher
  • fix(ownership): release claims with their owner record and claim receipt
  • fix(ci): run recovery-validator lanes under CI Required’s pinned settings
  • fix(ownership): dispatch owner-record launch through a driver-appropriate carrier
  • fix(windows): reclaim a tg-relay lock directory with no owner stamp
  • fix(windows): pin the lock backend to mkdir on Windows
  • fix(lock): reclaim a dead holder’s lockdir in the mkdir try-lock
  • docs(versioning): add troubleshooting note for pre-hoist upgrade failure
  • test(prompt): fail CI when a rendered constitution line disappears
  • feat(baton): mutual-idle stall recovery for duo — the waiting role re-nudges its peer
  • feat(console): read-only baton console over loopback HTTP
  • feat(console): intervene through mat baton verbs
  • feat(docs): project public site from private source
  • feat(console): role columns with transcript tail, stderr, and Rewind link
  • fix(baton): invalidate a closed cycle’s relay state at the headless boundary
  • fix(docs-site): vertically center header items at desktop width
  • fix(test): split duo-baton-worker-transport to restore backstop headroom
  • fix(ownership): fail closed on malformed Baton task status
  • docs(duo-protocol): fix reply-forward header list, drop false relay-episode claim
  • docs: add WSL2 quickstart guide
  • docs(freshness): document the graphql association proof and gh floor
  • test: capture the inherited caller tmux socket before scrub-env unsets TMUX
  • feat(merge-gate): treat a plan-gated 403 on protection as provable absence
  • feat(relay): add mat relay status|start|stop|restart control surface
  • feat(docs): project the curated public docs to my-ai-team-docs
  • fix(claude/windows): disable default PowerShell tool for Git Bash
  • fix(bg-run): preserve actionable failure logs after task completion
  • fix(claude): force x-api-key onto the wire on the Basic-auth gateway edge
  • fix(ci): declare git safe.directory for self-hosted Windows jobs
  • fix(copilot/windows): guard the powershell shell tool and decode toolArgs in both payload shapes
  • fix(ticket-fresh): read PR closing-issue association via gh api graphql
  • fix(baton): remove the progress-blind per-turn timeout
  • fix(docs): pin audited Wrangler deployment dependency
  • fix(relay): calibrate the pane-idle probe for a ticking-TUI backend
  • fix(docs-site): point the modes card at the user guide’s Modes section
  • fix(test): freeze the clock at the peer-activity horizon boundary
  • fix(test): tolerate a load-starved relaunch in run-memcap’s retry case
  • refactor(relay): delete the send-time viewport verification ladder
  • perf(hooks): cut child processes per tool event
  • ci: route an internal path changes to mat-backends-dispatch_test.sh
  • test: dedupe helpers.sh’s tmux-guard PATH prepend under re-source
  • feat: resume codex baton turns via codex exec resume
  • feat(explore): run auto-refine as a baton headless engine
  • feat(merge-release): pin the squash to the reviewed head
  • feat(pi): forward provider/model/effort into the pi launch argv
  • feat(install): accept a release tarball wrapped in a single top-level directory
  • feat(pi): explicit-provider path — role-local models.json and detached shared auth
  • feat(baton): mat baton status –dead lists crashed/stale sessions
  • feat(explore): baton headless operator ask/reply loop
  • feat: record codex rollout as the role’s current transcript
  • feat(pr): inject Closes #<N> into mat pr create body when missing
  • feat(bg-run): add a user-facing –cancel verb; stop orphaned-monitor wake spam
  • fix(session): report temp root creation failures
  • fix: scope session temp root per user
  • fix(test): make helpers.sh scratch-root allocation idempotent under re-source
  • fix(install): stage payload via positional tar when –null is unsupported
  • fix(relay): disarm stale tmux pollers after non-poll next-work directives
  • fix(prompts): report reason-bearing poll directives truthfully
  • fix(hooks): skip scratch-path guard where /tmp is the resolved scratch root
  • fix(release): wrap the release tarball in a single top-level directory
  • fix(explore): trust hoisted-but-empty live-owner evidence during sweep
  • refactor(relay): extract driver-neutral relay-send.sh from tmux-send.sh
  • perf(explore): drop per-call forks in provision hot path + tmux BASH_ENV
  • perf(explore): fold warm skills output signature into one tree walk
  • perf(next-work): overlap stale-lock sweep, candidate resolution, and gate probe
  • test(ci): split duo baton worker suites
  • ci(windows): fix contradictory rationale in Resolve Git for Windows Bash comment
  • test: pin the pi settings stage fail-closed invariant
  • test(explore): baton auto-refine docs + end-to-end regression
  • feat(notify): append host to user signatures
  • feat(audit): add CI health mandate and ticket cap
  • feat(grok): support native, API-key, and BYOK auth
  • feat: remove the headless read-only tool policy
  • feat(docs-site): adopt pnpm for dependency install and verification
  • feat(baton): reduce duo launch output to actionable lines
  • feat(docs-site): header Buy Now CTA with first-year 50% off checkout link
  • feat(grok): honor context window size
  • feat(install): add OpenRC relay fallback
  • fix(test): drop python3+PyYAML dep from docs-deploy guard in Required lane
  • fix(explore): remove per-token owner labels
  • fix(docs-site): upgrade dependencies and audit publishes
  • fix(docs): repair markdown anchors and add link lint
  • fix(grok): harden headless read-only denylist
  • fix(ci): restore agents invariant routing
  • fix(cli): isolate external respawn resolver context
  • fix(agents): restore target-repository qualifier in merge-gate CI-outage paragraph
  • fix(test): restore docs deploy npm install guard
  • fix: arrange renewal reap before signaling backend
  • fix(baton): key duo fallback forwards per delivery, not per reply
  • fix: bound explore owner label migration
  • fix(ci): restore Windows timeout margins
  • fix(docs): document audit-stall recovery and local-state clear on the customer page
  • fix(supervisor): self-upgrade caucus at rebirth
  • fix(cycle): accept absent owner record in duo merge release
  • fix(agents): suppress duo Reviewer approval ack
  • fix(scratch): bound and prune scratch-file path reservations
  • fix(next-work): emit ids[]=<id> form fields in scoped age lookup
  • fix(relay): stop duo prose forward loops
  • fix(grok): make role guard provisioning idempotent
  • refactor(digest): centralize stdin digest fallback
  • refactor(relay): run one merged watchdog per session
  • refactor(supervisor): unify local session supervisors
  • refactor: retire mat consult and summon-devops helper lanes
  • perf(test): parse each anchor target once in docs-anchor-lint
  • perf(relay): single awk pass for tmux socket arbitration
  • perf(explore): overlap snapshot fetch with pane bootstrap
  • perf(explore): hoist sweep evidence and replace guard per-entry rev-parse
  • perf(next-work): cache open-pr and lock-label probes
  • perf(next-work): cut plain claim pass to <=8 gh calls
  • docs: explain override-locked upgrade recovery
  • docs: explain bg-run baton state failures
  • docs(agents): remove stale notify-user neighbour references
  • test: opt escalation fixtures out of notify sandbox
  • test(ci): register the orphaned cutover suites
  • test: fix retired notifier sweep pointers
  • test: retire the parallel next-test-framework stack
  • wip: issue-3852 respawn role reap-context (pre-merge checkpoint)
  • build: split an internal path into product launchers and top-level an internal path
  • defect(baton): expose Claude/Codex transcripts through driver-specific flat homes
  • feat(mat): propagate Windows ticket label to PRs
  • feat(grok): enforce restricted role write guard
  • feat(relay): add grok headless adapter for baton turns
  • feat(cli): add operator respawn trigger for supervised sessions
  • feat(cli): add operator per-pane respawn for live team/duo sessions
  • fix(docs): restore the live-mode contract prose dropped
  • fix: recover supervised launch cwd safely
  • fix(explore): replace If-Match auto-refine hold/release with comment-id arbitration
  • fix(release): keep public docs self-contained
  • fix: bound pickup guard retry budget
  • fix(bin): preserve executable modes for shipped scripts
  • fix(windows): preserve live relay locks during stop
  • fix(docs-site): ignore generated version metadata
  • fix(test): chain helpers cleanup in Windows selection test
  • fix(windows): hide tg-relay launcher window
  • fix(agents): preserve reviewer merge-release wake
  • fix(baton): route duo committed replies
  • fix(docs-site): use a tracked lockfile in CI
  • fix(release): exclude docs-site from customer payload
  • fix(relay): keep scratch-file collision paths as .md handoffs
  • fix: honor reserved scratch paths in shell guard
  • fix: remove dead explore compatibility shims
  • fix(agents): restore merge-flow –watch rationale and reclaim prompt headroom
  • fix(release): close shipped documentation reference graph
  • fix(ci): route session invariants through parallel lint
  • fix(grok): guard native write events
  • fix(grok): read camelCase hook envelope in role-guard dispatcher
  • fix(ci): report every test failure in CI
  • fix(baton): key duo fallback forward dedup per delivery
  • fix(grok): guard native interactive write tools
  • fix(explore): reap completed tmux auto-refine children
  • refactor(windows): single-source tg-relay launcher template and hash
  • docs: clarify Windows Codex read-only mapping
  • docs(ci): correct mat-hook-benchmark payload claim in an internal document
  • ci: add Windows platform soft gate
  • test(docs): re-point dropped user-guide contracts to their owner pages
  • test: stop simulated-Windows suites leaking drive-letter dirs into the repo root
  • enhancement(backend): add interactive grok kind
  • test(ci): route prompt contracts through parallel suite
  • feat(docs): public documentation site on Cloudflare Pages with Astro Starlight
  • fix(docs): restore live-mode never-merge-around-CI wording
  • fix(ci): force eol=lf on windows-*.txt lane manifests
  • fix(explore): make auto-refine reservations claimable
  • fix(codex): retire legacy top-level skills
  • fix(windows): use native taskkill switches
  • fix(windows): stop all owned relay roots
  • fix(baton): inherit host service environment
  • fix(windows): publish tg-relay launcher PID
  • fix: run codex baton reviewers on Windows
  • perf(release): trim customer payload
  • docs(relay): clarify cross-session role routing
  • docs: separate customer-facing docs from internal docs
  • docs: rewrite public user guide as customer documentation
  • docs: restore MAT environment override coverage
  • docs(docs-site): make public documentation concise
  • test: split headless-agent-cli suite at the task-trail seam
  • feat(baton): auto-start and reuse the host-owned service for direct launches
  • feat(statusline): poll z.ai/ZhipuAI quota endpoint in no-gateway homes
  • feat(gateway): support Basic-auth-protected gateways
  • fix(relay): claim gates pass untracked-only worktree dirt
  • fix(statusline): omit native quota without gateway
  • fix(baton): normalize mailbox root to Windows form before persisting
  • fix(pickup-guard): host-aware deadline, one retry, evidence-bearing deny
  • fix(relay): wake codex input and guard head-truncated sends
  • fix(windows): restart resident tg-relay on install
  • fix(guard): allow validated fast-forward baseline sync in Explore
  • fix(baton): hide Windows host service launcher
  • fix(adhoc): restore headless terminal on park
  • perf(install-mirror): drop cmp pre-pass; mirror via same-volume renames
  • test(install-launcher): isolate notify-user cred test from ambient sandbox and host secret
  • feat(ownership): replace stale-lock forensics with leases
  • feat(doctor): warn on dirty tracked backend registry
  • feat: add resident explore auto-refine mode
  • fix(live): make CI merge gate conditional
  • fix(relay): coalesce stale bg-run wakes
  • fix(worktree): make role teardown long-path aware
  • fix(ownership): retry owner record publication
  • fix(prompts): clarify owner-record resume evidence
  • fix(codex): use system skill root
  • fix(skill): scope investigation to material tasks
  • fix(freebuff): deliver startup prompts through pane
  • fix(relay): wake freebuff input before handoffs
  • perf: reduce next-work selection latency
  • perf(relay): consolidate PreToolUse fan-out into one dispatcher per backend
  • test: sandbox benchmark notifications
  • feat(relay): at-most-once hedged reminders + automatic ack-on-consume
  • feat(ci): split Windows Git Bash lanes into purpose-based workflows
  • feat(ci): classify Windows wave results and surface timing trend
  • feat(bench): measure symlink and baton startup lanes
  • feat(lb): view arbitrary markdown and show install quickstart
  • fix(hooks): resolve scratch-path lint across Git Bash tmp spellings
  • fix: recover renewal from dead Windows launcher anchor
  • fix: reserve pwsh scratch paths with literal marker
  • fix: make Windows runtime mirror bounded and resumable
  • docs(adhoc): honor direct issue assignments
  • ci: establish Windows runner isolation and safe shard parallelism
  • ci(windows): add bounded transient response
  • chore(release): prune old R2 releases
  • feat: forbid hand-written tmp scratch paths
  • feat: add startup diagnostics and latency benchmark
  • feat: make agent-home provisioning incremental
  • feat(worktree): make snapshot creation long-path aware on Windows
  • feat(entitlement): provision + deploy license-gating Worker on mat-upgrade.shukelabs.com, bake its URL (A2/A3)
  • feat: adopt shukelabs.com domain family — upgrade.mat.shukelabs.com + README landing link
  • fix(launcher): fail startup diagnostics open through the external symlink
  • fix(ci): recalibrate Windows Git Bash fast-lane timeout backstops
  • fix(entitlement): guard release builds against an unfilled Worker URL
  • perf(prompt): cache repeated prompt and subagent renders
  • perf(auth): local-first GitHub auth resolution — owner map + named token vars
  • perf(runtime): stop paths.sh/backends.sh re-forking platform.sh’s uname probe
  • docs: add store buy link to README + fix faq sales-page placeholder (B2)
  • test(windows): split GitHub auth lane coverage
  • ci: define goal-based Windows suite inventory
  • feat(hooks): block persistent Windows PATH rewrites in the existing Bash guard
  • fix(ci): tier Windows fast-lane timeouts
  • fix(scratch): resolve MSYS /dev/null stdin target
  • fix(test): make Baton harness launches portable
  • fix(agents): guard background execution in Baton turns
  • fix(freebuff): pin USERPROFILE to the role home on Windows
  • fix(relay): arm stall watchdog at claim time
  • fix(agents): route the tmux Reviewer merge release through bg-run
  • fix(relay): bound send-verify nudges per sender and reap them at the cycle boundary
  • fix(agents): disable Claude harness background tasks mat-wide
  • fix(live): resolve native live-child pid for Windows local-driver renewal
  • ci: shard the real-host lane into two staggered daily runs
  • chore(install): drop rsync staging dependency
  • feat(backends): add the codex-kind headless adapter
  • feat(auth): auto-select a logged-in gh account that can access the origin repo
  • feat(relay): register freebuff backend kind
  • feat(relay): wire freebuff skill discovery and its invocation phrase
  • feat(auth): add headless GitHub token opt-in
  • fix(relay): record every supervisor terminal exit in the durable event log
  • fix(ci): route the declaration sources to the suite that reads them
  • fix(relay): skip tmux discovery for headless drivers
  • fix(audit): scrub inherited wake file from child env
  • fix(relay): avoid SIGPIPE for first-line chrome rule
  • fix(claim): make the assigned-label write the claim commit
  • fix(relay): propagate baton auth launch failures
  • fix(bg-run): use Windows cmd launcher for Baton
  • fix(agents): preserve Baton background wakes across turns
  • fix(mat): refuse ready promotion over another session’s delivery lock
  • fix(tg-relay): preserve pane sticky targets
  • fix(relay): support freebuff panes in idle detection
  • fix(agents): render Reviewer merge-boundary guidance from hosting MAT_DRIVER
  • fix(relay): recognize npm freebuff idle panes
  • fix(telegram): let a rebound-HOME backend reach the host secret file
  • docs: freebuff capability boundary and provider-catalog volatility
  • chore(ci): name every owning route in two taxonomy reasons
  • feat(audit): retire merge-time notify-auditor-merge
  • fix(relay): make audit-wake pushes untracked sends
  • fix(docs): name the mat tmux socket in every recovery instruction
  • fix(poll): retain live owners without identity evidence
  • fix(ci): gate releases on conventional PR titles
  • fix(prompts): separate idle poll ownership selector
  • fix(ci): route version skew and ticket critique hooks
  • fix(prompts): anchor self-pane display guidance
  • fix(ci): run GitHub auth guard in smoke floor
  • fix(ci): short-circuit the code children on a pull_request edited event
  • fix(ci): route repo-wide invariant lints
  • fix(ci): route supervised-leaf_test.sh from its owner paths
  • fix(relay): run the Baton poller task through bash so a native supervisor can spawn it
  • fix(ci): route self-id-display-message lint from the trees it scans
  • fix(claude): key worktree trust by the git common root
  • fix(ci): route the Windows selection guard from the manifests it reads
  • fix(ci): enforce path router ownership integrity
  • fix(relay): resolve Baton poller Git Bash interpreter
  • fix(agents): critique tickets the delivery roles author
  • fix(ci): record the claude-config.sh route in the suite taxonomy
  • fix(poll): give team/duo and caucus supervisors a generation identity
  • fix(ci): move the CI selection contracts to a Required-reachable owner
  • refactor(launch): remove pane mode and with satellites
  • refactor(baton): own the task-path credential scrub in one place
  • docs: correct headless adapter guidance
  • fix/issue 3445 framework state base
  • fix/issue 3448 reviewer post merge terminal
  • ci/issue 3457 worker lockfile npm ci
  • fix/issue 3463 bg run wrapper root
  • test: cover gate-check pane resolution
  • test(relay): pin the audit-wake no-track wiring in a non-serial suite
  • test(audit): decouple mat-audit-local fixtures from startup and poller cost
  • feat(audit): surface stalled status diagnostics
  • feat(audit): add supervised stall recovery
  • feat(audit): show next fetch countdown in pane title
  • fix(install): clarify installer progress and upgrades
  • fix(relay): protect Baton resident poller from agent stop
  • fix(ci): route rendered prompt suites for agent changes
  • fix(adhoc): retain live backend state during cleanup
  • fix(baton): scrub suffixed GitHub tokens from tasks
  • fix(agents): keep duo-dev prompt under byte budget
  • fix(ci): route rendered prompt contracts through focused suite
  • fix: scrub inherited audit wake file from tests
  • fix(baton): scrub GitHub tokens from the devops summon task
  • fix(audit): scope local merge wakes to repo session
  • fix(test): give the bgrun baton harness a reachable PATH-form converter
  • fix(test): reap Baton bg-run harness process groups
  • fix(ci): resync ci-suite-taxonomy.tsv with all_scripts, guard both directions
  • fix(test): isolate opencode env in audit suite fixtures
  • test: align prompt invariant assertions
  • test: stub gh in caucus baton regression
  • test(audit): reap detached poller fixture
  • test: enforce prompt ceiling per driver
  • fix/issue 3438 route renderer render contracts
  • feat(relay): normalize literal command sigils
  • feat: keep baton relay pollers resident
  • feat(relay): route Telegram replies to Baton agents
  • feat(relay): keep TG follow-ups on a baton role via a baton-aware sticky
  • fix(baton): name the remedy when the GitHub auth boundary refuses a launch
  • fix: preserve baton duo task continuity
  • fix(baton): scrub the launching pane’s identity from baton workers
  • fix(stall-watchdog): judge peer activity by an output horizon, not a screen sample
  • fix: harden Windows adhoc renewal reap
  • fix(pcon): keep pane pidfiles bare under supervision
  • fix(dispatch): accept an identity-matched owner record as local cycle evidence
  • fix: preserve review verdict evidence at merge
  • fix(ci): suppress cross-file ShellCheck cmd-array false positives
  • fix(cli): honor audit worktree flags
  • fix(poll): treat cross-scheme identity as unknown
  • fix: preserve visibility for orphaned adhoc backends
  • fix(runtime): unset BASH_ENV at runtime entry
  • fix: scope assigned locks by owner host
  • fix(audit): self-upgrade the audit supervisor at the standby boundary
  • fix(headless): adopt a task’s keyless first turn instead of opening a second conversation
  • fix(test): align review prompt assertions
  • fix: scrub suffixed GitHub token variables from Baton workers
  • fix(baton): pin resident poller task environment
  • fix(agent-cli): bound keyless adoption to preceding turn
  • fix(agents): document review artifact contract
  • fix: carry duo task keys across baton relays
  • fix(ownership): scope stale-lock reclaim by owner host
  • docs(ci): reconcile framework corpus adapter path and tranche-2861 notes
  • test(tmux-send): assert pi sigil normalization in command payload regression
  • test(poll): align baton revival fixture with task host
  • test(relay-poll): cover PID file, log redirect, and exit logging
  • test(baton): align team status fixture with state shape
  • test: widen persistent baton wake timeout
  • test: scrub inherited pcon pidfile override
  • fix/issue 3374 cycle test exit trap
  • fix/issue 3396 audit local two wake settle
  • test: provision GitHub auth pin in Baton poll fixture
  • feat(agents): file every new ticket refining
  • feat(tg-relay): deliver single-token / and $ messages as literal commands
  • fix(ownership): make Windows local state falsifiable
  • fix(windows): repair stale private helper tmux sockets
  • fix(watchdog): preserve supervised notification identity
  • fix(audit): signal stalled supervised children
  • fix: handle macOS fdesc stdin in scratch-file
  • fix(relay): surface skipped issue comment handoffs
  • fix(audit): end supervised child after pass
  • fix(ci): route prompt and test invariants
  • fix(agents): restore audit prompt headroom
  • fix(supervisor): self-re-exec explore/adhoc/live supervisors at rebirth
  • fix(test): restore green validation baseline
  • refactor(agents): restore investigation prompt headroom
  • refactor(agents): share ticket self-critique checkpoint
  • refactor(agents): subtract live’s ticket-path carve-outs
  • docs(adhoc): make adhoc-merge-release the only merge instruction
  • bug/issue 3298 install relay probe
  • feat(audit): observe remote default advances
  • feat(bg-run): show the –max countdown in the pane border
  • fix: resolve standalone Windows agent child PID
  • fix(test): stop the fake-cygpath cases leaking BASH_ENV into their inner bash
  • fix(duo/team): preserve issue suffix across child launches
  • fix: keep session transcripts in shared role homes
  • fix(explore): report stuck snapshot cleanup failures
  • fix(baton): track watch aggregation pid without $!
  • fix(ownership): retain live local state across MSYS runtimes
  • fix: align Baton continuation boundary contract
  • fix(ownership): accept diagnostic repo slug aliases
  • fix: converge Windows supervised child PID publication
  • fix(ownership): make orphan record diagnostics informational
  • fix(test): run docker sandbox as host user
  • fix(session): verify merge boundary restart adoption
  • test: sandbox Windows scratch-file writer
  • test: scope the three private scratch roots in headless-agent-cli to their cases
  • docs/issue 3263 owner record guidance
  • bug/issue 3275 secure baton github auth
  • feat: add ticket freshness gate
  • feat(baton): resume headless turns per task
  • feat: add detailed baton status
  • feat(dispatch): add all-role health pass
  • feat(baton): freeze each task’s constitution per baton session
  • feat: add baton health watch
  • feat(ownership): add per-issue heartbeat records
  • fix(ci): stage path-form.sh in the test-runner fixture
  • fix(cycle): fail closed on legacy merge boundaries
  • fix(stall): bound peer awaiting-human suppression and qualify breadcrumb identity
  • fix(pwsh): resolve a native bash instead of the System32 WSL launcher
  • fix: keep baton pollers resident across cycles
  • fix(bg-run): reap a task’s process group at session teardown
  • fix(install): require cmp dependency
  • fix(relay): confirm busy Codex handoffs after transport
  • fix: speed Windows private helper launches
  • fix(dispatch): require local evidence to resume assigned issues
  • fix(test): use real legacy relay-poll fixture
  • fix(test): unbreak the Windows Git Bash release + install-upgrade lane
  • fix: pin duo team relay pollers to session repo
  • fix(baton): never gate claiming or wakes on reviewer busy
  • fix(adhoc): publish native pcon backend pid for renewal
  • fix: resolve baton relay targets from durable state
  • fix: keep baton merge boundary poller-owned
  • fix(install): tolerate benign tar staging races
  • fix(ci): route test invariant lints
  • fix: preserve headless notification provenance
  • fix(audit): stop local supervisor on exit
  • fix: bound duo merge release tail
  • refactor(scratch): retire path-only mat scratch and migrate all guidance
  • refactor(test): centralize runner fixture staging
  • perf: reuse task branch for merge cleanup
  • perf: reuse verified merge ownership state
  • perf(cycle): avoid redundant merge label creation
  • docs: baton duo quickstart — operator guide for the headless driver
  • docs: document local-driver validation fallback
  • ci: run fixture source-sync lint in CI Required smoke floor
  • bug/issue 3176 notify action
  • chore: retire mat next-loop and the dead agent-rebirth narration
  • feat/issue 3206 headless notify
  • test(run): guard Windows selection and filter –changed
  • chore(ci): retire Windows real-tmux coverage
  • test: fold session restart paths on Windows
  • fix/issue 3221 scratch file no data source
  • feat(scratch): add stdin-backed mat scratch-file writer
  • fix(opencode): derive BYOK provider id from default_model
  • fix(codex): mirror managed skills into the codex .system skill root
  • fix(relay): make assigned-task recovery platform-aware and lock-exclusive
  • fix(relay): reject an unwritten file handoff before send-relay delivery
  • test(relay): align CRLF-jq shim regressions with the mode-based gateway
  • fix/issue 3136 path form lint
  • feat(entitlement): bake the license-gating Worker URL with an env override
  • feat(entitlement): add mat upgrade --check for install-free update discovery
  • fix(scratch): reject a second argument instead of silently dropping it
  • fix(ci): record session-restart-regression.sh as a heavy-lane exclusion
  • fix(relay): give tmux -c the posix path form on Git Bash
  • fix(review): suppress approval ack after successful implementation review
  • fix(relay): bound every real tmux client call so a wedged server cannot hang the restart
  • fix(relay): give the pane idle probe an MSYS process-table arm
  • fix(relay): defer the Claude send-verify verdict with asyncRewake
  • fix(platform): use jq native binary mode on Windows instead of stripping every CR
  • docs(agents): make Validation guidance honest about CI gates and local cost
  • docs(agents): restore CI-gate and auto-start qualifiers dropped by
  • fix/issue 3110 lock claim race
  • test(ci): move the Windows heavy manifest invariant into the parallel lane
  • test(ci): pin the real-host lane’s serial width and hang guard
  • fix/issue 3130 sentinel sender epoch
  • fix/issue 3113 msys ps pid introspection
  • fix/issue 3135 bash read receipt
  • feat/issue 3141 gitbash tarball install
  • test(entitlement): cover cross-version upgrade and Worker forward-compat
  • feat(cycle): restart tmux team/duo sessions from a persisted launch spec
  • fix(live): preserve cross-root state paths
  • fix(tg-relay): normalize CRLF jq output before reply routing
  • fix(relay): route every bare jq in an internal path + an internal path through _mat_jq
  • test(issues): pin the ready-transition lock release to byte-exact labels under CRLF jq
  • test(lint): enforce the _mat_jq boundary and unmask bare jq in helpers
  • fix(skill): make investigation freshness recovery actionable and narrow its trigger
  • fix(agents): make notify-user –action recipient-specific
  • fix(statusline): read effort level from statusLine payload
  • fix(windows): make poller discovery MSYS-safe
  • feat/issue 3063 windows heavy real tmux
  • fix(test): stop Git Bash uname stubs creating a stray C: dir at the repo root
  • fix(agent-home): recover Windows migration when another process holds the legacy home
  • fix(ci): route worktree.sh Windows evidence to real product coverage
  • fix(codex): preserve CRLF when provisioning Windows sandbox
  • fix(pcon): Windows reap guard tolerates a naturally-exited backend
  • fix(test): pin run-lanes_test.sh sort/comm calls to LC_ALL=C
  • fix(test): give the solo-lane elapsed assertion one second of clock slack
  • fix(ci): scope native Windows wave inside MSYS2
  • docs(windows): pin one Git configuration for Git Bash and MSYS2
  • docs(skill): ask for a missed platform:windows label in ticket-self-critique
  • refine(hooks): pin Claude PreToolUse timeout semantics for the issue-pickup guard
  • chore(ci): switch ci-windows-heavy schedule from weekly to daily
  • feat/issue 3062 windows lane v4 real tmux
  • feat: remove send-tmux compatibility command and skill
  • feat(investigation): add freshness preflight
  • feat(codex): provision unelevated Windows sandbox
  • fix(codex): seed Windows trust keys in native form
  • fix(test): retry a launch that never started instead of counting it failed
  • fix(audit): reset the audit cycle count in the home that exists on disk
  • fix(bg-run): deliver the terminal wake to a deduplicated=true caller
  • fix(relay): never nudge a reborn sender about an unconfirmed send
  • fix(cli): list mat dispatch in the mat –help catalog
  • fix(mat): detect Windows claim capability from the host
  • fix(pcon): allow standalone claude.exe during Windows rebirth reaping
  • fix(explore): do not mislabel snapshot preparation failures as fetch failures
  • fix(gitbash): normalize duplicate-clone owner paths before comparison
  • chore(ci): remove throwaway ci-windows-debug workflow
  • chore(ci): remove CI Target Matrix workflow and its orphaned residue
  • chore(ci): rename ci-serial-real-host.yml to ci-real-host.yml
  • feat/issue 3032 agent home root
  • verify(windows): real-close session teardown on MSYS2 tmux
  • feat(ci): Windows heavy lane – cron-only advisory workflow for slow stub-only suites
  • feat(live): attach domain toolbox home
  • fix(agents): treat a re-sent same-path handoff as a fresh signal to re-read
  • fix(agents): make duo-review notify-user routing unconditional
  • fix(windows): preserve stdin in _mat_pcon_spawn native CLI launch
  • refactor(agents): port ticket-critique reminder/stop/clear to copilot
  • refactor(agents): bound audit backlog by merge count, not calendar age
  • refactor(agents): make file-only the default message format
  • refactor(agents): restore per-role personality fragments and role-name defaults
  • refactor(agents,docs): sweep literal /tmp handoff paths to $(mat scratch)
  • refactor(agents): convert control-signal relay sends to file-based
  • docs(ci): correct ci-heavy history comments
  • feat(ci): Windows green lane v1 — test/test-windows.sh over a curated manifest
  • feat(mat): route platform:windows tickets only to Windows-capable agents
  • feat(relay): surface runtime version-skew marker in tmux status-line hostname slot
  • feat(ci): windows lane v2 – complete the fast mock-only tier
  • feat(ci): Windows lane v3 – first heavier mock-only tier (curated)
  • fix(agents): disambiguate slice-PR closing-keyword contract, verify linkage pre-merge
  • fix(agents): mark refine-to-delivery directive and define duo-dev continuation
  • fix(relay): recognize Claude Code paste-collapse placeholder as composer-pending
  • refactor(agents): single-source the notify –action and TG-reply contracts
  • refactor(agents): restore slimmed dev-side shared contracts
  • refactor(prompts): plan-gate roles discover oversized scope, don’t self-split
  • refactor(agents): restore slimmed misc shared fragments
  • refactor(worktree): preserve the repository basename in the terminal path segment
  • feat(ci): scope required-shellcheck to changed Bash files
  • feat(mat): add mat pr create — CWD-first –repo pinning over GH_REPO
  • feat(bg-run): reap launch scratch and expired /tmp artifacts
  • fix(test): scope bg-run fail-closed artifact assertion to the run’s own pid
  • fix(test): clean framework isolation roots on abort
  • fix(notify-user): accept –message and reject unknown flags
  • fix(prompts): slim team review.md — drop startup relay ping and Reviewer-owned decomposition
  • fix(ci): close residue — collapse selector, fix fail-open, reconcile ledger
  • refactor(agents): single-source the anti-phantom-send contract
  • refactor(agents): single-source stance and pin duo-dev turn-end continuation
  • refactor(agents): restore slimmed review-side shared contracts
  • docs(send-relay): document pane-id escape hatch and pin it with a test
  • docs(agents): share mat-gh-wrapper rules across adhoc/dev/duo-dev/live
  • revert: restore changed-path-routed CI Required lane
  • ci: make ci-capability-lanes own the serial real-host lane
  • ci: rename ci-capability-lanes.yml to ci-serial-real-host.yml
  • chore: delete dropped framework contract suites and unreferenced code
  • ci: bound CI Required to the 15-minute, no-real-host boundary
  • test: assert heaviest partition weight keeps margin under timeout backstop
  • test: wire reviewed per-script budgets from CI Full timing evidence
  • feat(hooks): port the issue-body pickup guard to codex, copilot and pi
  • feat(test): add framework adoption scorecard
  • fix(relay): add a first-nudge grace to undelivered-send detection
  • fix(relay): give inline handoffs a sender-side viewport fallback and bound re-send prompting
  • fix(ci): pin the ShellCheck baseline comparison to byte collation
  • fix(test): repair the vacuous unresolved-record assertion in bg-run wake recovery
  • fix(test): wait for bg-run monitor before dedupe fixture cleanup
  • fix(ci): key the ShellCheck baseline on findings, not coordinates
  • fix(test): restore duration-based LPT partitioning with a live weights source
  • fix(live): scope the commit-reflection prompt to what the commit actually is
  • fix(duo): stop cycle-boundary relay leaks
  • fix(test): make bg-run-regression’s /tmp scans survive an unreadable entry
  • fix(ci): route CI Required to the changed paths instead of the whole corpus
  • fix(test-contract): reap MODEL_DIR on exit
  • fix(test): wait for the monitor to exit in the commit-failure fixture
  • fix(ci): preflight required runner toolchain
  • fix(review): derive the team Merge gate from the target repository
  • fix(test): skip the unreadable-weights case where chmod 000 cannot block reads
  • fix(agents): restore the anti-phantom-send reminder to duo-dev.md
  • docs(ci): mbp13 moves from ci-light to ci-slow
  • test: port CI selection, evidence, and cutover suites into the framework
  • test: port deterministic product and persistence suites into the framework
  • test: port cross-backend hook and prompt contract suites
  • test: port backend configuration and launcher contract suites into the framework
  • test(run): calibrate Git Bash per-script backstop to 2400s
  • test: complete real baton orchestration coverage in the framework
  • test: port tmux, session, and process-reliability suites
  • ci: move capability-lanes from ci-heavy to ci-light runner pool
  • ci: trigger capability lanes from CI Required completion, not pull_request
  • test: cover the merge gate’s sizing path (ci-changed-paths, ci-required-route)
  • fix/issue 2875 opencode composer boundary
  • feat(hooks): enforce the pre-edit pickup check on the issue-body edit path
  • feat(test): make performance warnings first-class without failing correct suites
  • fix(ci): flip tmux-control-plane to out-of-support on gitbash
  • fix(ci): make declaration parsing host-independent (CRLF checkout fix)
  • fix(test): forward runner settings into Docker
  • fix(cycle): reconcile skipped repo root advances
  • fix(relay): normalize CRLF prompt templates so include boundaries never produce triple newlines
  • fix(role-guard): cache bash-command-view parse per invocation
  • fix(prompts): address the user through MAT_USER_NAME, not a literal name
  • fix(duo-review): derive the CI merge gate from the target repository
  • refactor(agents): make duo-dev constitution standalone
  • refactor(agents): make duo-review constitution standalone
  • refactor(agents): make review.md a standalone constitution under 15k
  • refactor(agents): make plan.md a standalone constitution under 15k
  • refactor(agents): make adhoc.md a standalone constitution under 15k
  • refactor(agents): make dev.md a standalone constitution under 15k
  • refactor(agents): make live.md a standalone constitution under 15k
  • refactor(agents): make audit.md a standalone constitution under 15k
  • refactor(agents): make explore.md a standalone constitution under 15k
  • refactor(agents): make caucus proposer constitution standalone
  • refactor(agents): make caucus challenger constitution standalone
  • perf(ci): parallelize target corpus suites
  • docs: align workflow contract documentation
  • test(ci-candidate-calibrate): skip whole suite on Windows Git Bash
  • feat/issue 2835 opencode forward shared config
  • test(agents): enforce rendered prompt byte ceiling
  • ci: add required ShellCheck gate
  • feat(codex): unify subscription and BYOK providers
  • fix(windows): resolve send-verify, receipt, repo-slug, and profile-detection CI failures
  • fix(agents): resolve Reviewer decomposed lock release
  • fix(ci): extend target matrix coordinator bounds
  • fix(windows): Git Bash renewal/regression suite fixes
  • fix(ci): scope target matrix contract cases
  • fix(caucus): gate teardown on confirmed callbacks
  • test(windows): normalize drive-letter paths in test PATH constructs and path-form assertions
  • feat(skill): add an explicit investigation workflow with terminal self-critique
  • fix(next-work): recover orphan PRs when no ready ticket exists
  • fix(opencode): write limit.output instead of limit.input
  • fix(relay): content-aware resend resolves unchanged handoff, bound Stop-hook nudge cadence
  • fix(test): Windows Git Bash CI green (handoff-receipt fake-tmux path + prior suite fixes)
  • fix(relay): legacy send-sentinel gets TTL/GC and dead-target detection
  • fix(prompts): render backend-native skill invocation syntax
  • fix(test): drop dead script-weights.tsv cp in workflow-regression fixtures
  • fix(test): drop stale ci-taxonomy-completeness_test.sh refs, retired selectors
  • fix(relay): mat next-work fails fast on unresolved session identity
  • fix(relay): receipt submitted inline handoffs
  • perf(ci): reuse required lane selection and probes
  • docs(user-guide): document TARGET GONE diagnostic and sentinel TTL reap
  • feat/issue 2737 opencode context window size
  • test(ci): make Windows Git Bash minimal test PATH complete and path-form-correct
  • test/issue 2640 cutover linux macos required
  • ci(windows): add throwaway debug workflow for runner-context iteration
  • chore(relay): remove obsolete poll-ready gate semantics
  • ci: remove macOS from merge-blocking Required lane (interim)
  • test(doctor): normalize drive-letter paths before test PATH constructs
  • test(poll): cover liveness classifier branches
  • feat(prompts): evidence-backed tracked-flake path for red required CI
  • feat(live): treat absent policy state as the direct default
  • fix(relay): reap supervisor-waited Copilot loader on renewal, not just the leaf
  • fix(relay): clean rendezvous when a renewal reap does not happen
  • fix(relay): isolate handoff verification state across tmux servers
  • fix(relay): retire stale receipt before refreshing resent handoff expectation
  • fix(relay): stop treating an unreadable /proc stat as pid-reuse evidence
  • fix(relay): deduplicate repeated undelivered watchdog nudges
  • refactor(relay): fold team gate into next-work, revive dead poller on watchdog tick
  • refactor(workflow): remove split-verdict labels and lifecycle
  • fix/issue 2690 decouple recovery watchdog
  • test(relay): align busy-target fixture with copilot footer contract
  • test(ci): harden arb socket-state timing and probe pin under serial load
  • test(scrub): align kill-gate sink assertion with the reap-clean contract
  • refactor/issue 2679 reviewer owned rebirth
  • ci: decouple CI Full calibration from full matrix pin
  • test(baton): revive terminal-transition harness on service-managed baton
  • ci/issue 2641 multi target attestation
  • test: framework-behavior cross-platform corpus
  • test/issue 2638 capability lanes
  • test(test-runner): pin fixture cases to declared linux-x86_64 target
  • feat/issue 2636 legacy migration inventory
  • test: add evidence-gated candidate-lane calibration mechanism
  • test: route cases by impact and retire legacy routing sources
  • test/issue 2637 port pure core cluster
  • test: stub _notify_user in transport-neutral terminal-transition subshells
  • test/issue 2639 host boundary cases
  • feat(test): add framework declaration contract
  • feat(test): add portable declaration runner
  • feat(ci): add advisory target matrix
  • fix(test): resolve cross-platform contract profiles
  • fix(relay): hard-fail Copilot composer residue
  • fix(relay): recover pending composer in watchdog
  • fix(relay): recognize Copilot working footer states
  • fix(cli): fail closed when mat issue create loses body input
  • fix(caucus): canonicalize linked-worktree callers via common root
  • refactor(prompts): gate ticket capture and split escalation by necessity
  • refactor(live): start every task direct and self-escalate to patch
  • ci(release): add workflow_dispatch as failsafe trigger
  • ci(recovery): add workflow dispatch + local PR validator
  • feat(live): restore mode-selected execution
  • feat(install): harden first install prerequisites
  • fix(live): add result-only split verdict caucus path
  • fix(caucus): hand off decomposed terminal cycles
  • fix(test): forward verbose reporter through Docker
  • fix(backends): make high the default effort
  • fix(live): reset stale policy on supervisor cold start
  • fix(live): guard patch commits on default branch
  • fix(live): route Baton result-only caucus through callback
  • fix(caucus): persist Baton no-callback result artifacts
  • fix(duo): document terminal abort handoff receiver
  • fix(test): use portable sed for fixture source-sync lint self-check
  • fix(live): reject cross-driver cold start before clobbering foreign policy
  • fix(live): resolve combined git-dir/work-tree options as one repository in patch commit guard
  • fix(render): resolve MAT_DRIVER=baton to a headless include fragment
  • fix(bg-run): route bare tmux calls through the _mat_tmux gateway
  • fix(relay): send-verify Stop hook suppresses UNDELIVERED nudge while target pane is busy
  • refactor: remove obsolete tmux keeper
  • test: guard copied runner fixture dependencies
  • ci(windows): batch-1 group-B — fix install/symlink/migration tests
  • quality/issue 2485 bg run dedupe
  • defect(team): gate planner ticket-boundary rebirth, de-duo peer-failure notify
  • defect(install): expand 8.3-short ancestors before first-install target exists
  • test(lint): allow-list mktemp -u and 2>/dev/null in mktemp-site scan
  • quality/issue 2594 baton decomposed boundary
  • test(audit): extend tmux helper reap settle window
  • feat(ticket): gate decomposable issues behind split caucus
  • feat(caucus): gate oversized plans before review
  • feat(test): add compact run_test reporter
  • fix(cli): preserve consult approval example in help
  • fix(test): preserve apostrophes in shell-token assertions
  • fix(ci): split required test lanes
  • fix(stall-watchdog): scope stale reminders to candidate pane
  • fix(test): preserve apostrophes in path sequences
  • fix(test): preserve leading apostrophes in shell tokens
  • fix(stall-watchdog): reset stale human waker result
  • fix(test): share shell token normalization
  • fix(audit): retry failed wake delivery before watchdog recovery
  • fix(test): detect Windows Git Bash without MSYSTEM
  • fix(review): distinguish productive iteration from churn
  • fix(audit): retry unconfirmed wake deliveries
  • fix(ticket): make split verdict role aware
  • fix(caucus): retire decomposed split trackers
  • fix(test): stabilize audit poll local wake fixture
  • fix(audit): report local poll wake outcomes
  • fix(tests): detect Windows tar paths from uname
  • fix(relay): tolerate idle CPU accounting noise
  • test(helpers): split literal and shell-token assertions
  • test(helpers): fold Windows shell-join quotes into assert_contains_paths
  • test(scrub-env): blank MAT_CONFIG_ROOT so tests stay hermetic on hosts with a real mat install
  • test(windows): pin mktemp -d root to a fixed, account-independent path
  • feat(live): require branch, local quality gates, and CI-gated PR merge
  • feat(bg-run): add the Baton task submission adapter
  • feat(bg-run): consume Baton task callbacks into wakes and results
  • feat(bg-run): integrate Baton task lifecycle and headless support
  • feat(ci): watch nightly full-suite failures
  • fix(install): keep Git Bash working-tree rsync paths local
  • fix(baton): read summon-devops brief from state file on empty stdin
  • fix(platform): preserve single-letter POSIX PATH entries
  • fix(bg-run): retain callbacks during metadata race
  • fix(baton): re-arm bg-run reconciliation after role restart
  • fix(runtime): fail closed on backend contract violations
  • fix(rebirth): clear supervised terminal surfaces
  • fix(review): hard-gate red CI Required checks
  • fix(test): remove unsupported baton service log option
  • fix(bg-run): retry terminal delivery after send failure
  • fix(ci): restore green required baseline
  • fix(team-baton-harness): pin bg-run lifecycle to Baton
  • fix(bg-run): recover terminal envelope after wake publication
  • fix(test): restore service-owned duo Baton harness
  • fix(bg-run): recover terminal wake from durable result
  • fix(audit): resolve OpenCode audit state home
  • fix(opencode): mark startup relay files
  • fix(audit): prefer OpenCode native audit home
  • fix(guard): stop branch scans at command boundaries
  • fix(opencode): preserve caucus startup-file semantics
  • fix(bg-run): reject cross-session callback pane IDs
  • fix(guard): preserve branch scan across nested substitutions
  • fix(opencode): provision role skills in native root
  • fix(guard): allow attached branch option values
  • fix(guard): allow attached branch filter patterns
  • fix(relay): keep watchdog polling off busy duo panes
  • fix(guard): preserve branch filter mode across display options
  • fix(guard): allow filtered branch substitutions
  • fix(relay): sample supervised backend process trees
  • fix(relay): support Darwin CPU idle sampling
  • fix(relay): detect Copilot working panes with composer
  • fix(relay): scope Copilot busy marker to Copilot panes
  • refactor: make backend kinds self-registering and contract-checked
  • docs: align remaining Git Bash timeout references with 1200 s hang guard
  • docs(cli): describe task-backed devops ownership in baton stop help
  • docs(user-guide): list Pi and OpenCode launchers
  • docs(baton): document devops ownership shapes
  • docs(baton): scope devops artifact ownership
  • docs(bg-run): separate hosting contracts
  • docs(live): align help and deck delivery contract
  • docs(relay): record detector matrix for
  • docs(relay): reconcile detector matrix baseline
  • Merge remote-tracking branch ‘origin/main’
  • test(devops): pipe request fixture into worker without a temp file
  • docs/issue 2422 reconcile live docs
  • fix/issue 2434 baton bgrun reap artifacts
  • test(dispatch): isolate idle teardown notifications
  • fix/issue 2452 bg run terminal callback idempotent
  • ci: route jobs by runner capability labels
  • test(consult): split guard coverage into consult-guard-lane suite
  • fix/issue 2498 relay poll ticker argv
  • fix/issue 2502 watchdog idle gate
  • feat(ci): schedule Windows Git Bash coverage nightly
  • feat(install): show the installed version in completion output
  • feat(tmux): isolate private helper sessions on a dedicated socket
  • fix(keeper): use portable resident pane command
  • fix(keeper): resolve platform service paths to the real install root
  • fix(consult): deny git push in write scope while allowing target commit
  • fix(relay): resolve adhoc supervisor pane id from TMUX_PANE fallback
  • fix(keeper): quote rendered systemd ExecStart for XDG paths with spaces
  • fix(keeper): hand off resident supervisor on reinstall
  • fix(keeper): encode UTF-8 systemd documentation paths
  • fix(consult): surface quoted git executable in write-scope push guard
  • fix(relay): resolve local supervisor pane fallback
  • fix(keeper): preserve mat-keeper session during resident owner handoff
  • fix(consult): preserve quoted argument context
  • fix(keeper): preserve session across legacy handoff
  • fix(consult): surface quoted executables behind command wrappers
  • fix(keeper): preserve legacy session after stop timeout
  • fix(consult): close env –split-string and unlisted-wrapper delivery bypasses
  • fix(keeper): recover orphaned handoff session on keeper restart
  • fix(consult): respect split-string command position
  • fix(consult): normalize escaped env split-string payloads
  • fix(consult): preserve env split-string metacharacters
  • fix(keeper): preserve proof on stale cleanup failure
  • fix(consult): inspect attached env shell carriers
  • fix(keeper): fail closed on tmux query error during stale-handoff cleanup
  • fix(keeper): fail closed on session enumeration errors
  • fix(consult): keep env shell carrier inspectable past options and path-qualified shells
  • fix(keeper): fail closed on registry-backed recovery enumeration errors
  • fix(consult): parse shell options inside env -S carrier payload
  • fix(consult): detect bundled shell command flags
  • fix(consult): tokenize quoted env -S option values before carrier parse
  • fix(headless): retain Claude session JSONL and correlate the trail
  • fix(consult): inspect nonterminal bundled shell flags
  • fix(consult): model GNU env -S \c terminator in the command normalizer
  • fix(launch): clear the missing-CLI diagnostics on launch and teardown
  • fix(codex): pass awk regexes via ENVIRON so backslashes survive
  • fix(test): assert codex commandWindows against platform-resolved path
  • fix(consult): inspect env split-string bypass forms
  • fix(launch): keep terminal status 127 generic
  • fix(consult): make env -S \c truncation quote-aware
  • fix(install): bind completion version to install
  • fix(consult): reassemble quote-spliced env -S payload for delivery guard
  • fix(consult): resolve path-qualified env wrapper by basename
  • fix(consult): parse env options before split-string carriers
  • fix(pi): fail closed when role-guard helper cannot decide
  • fix(codex): canonicalize Windows project-trust paths before launch
  • fix(codex): emit commandWindows for PreToolUse guard hooks
  • fix(consult): deny quote-spliced -c/script env -S carrier
  • fix(consult): resolve git/gh executable by basename in role-guard delivery scans
  • fix(consult): make basename delivery scanners follow command position
  • fix(baton): own headless serves via host service, not detached process groups
  • fix(codex): harden Windows trust provisioning tests
  • fix(guard): mark delivery commands hidden behind Bash control flow
  • fix(backends): warn when restricted roles lack guards
  • fix(baton): preserve caucus topic and backfill seed through host service
  • fix(baton): stop task-host service with session
  • fix(opencode): configure live effort natively
  • fix(codex): run Windows hooks through Git Bash
  • fix(baton): seed caucus topic for challenger turns
  • fix(guard): preserve quoted repository separators in delivery scans
  • fix: select build agent for OpenCode live launches
  • fix(codex): invoke Windows hooks via PowerShell call operator and propagate exit code
  • fix(baton): route summon-devops helper through the host service task API
  • fix: replace Windows-only test skips with form-insensitive assertions
  • fix(doctor): make local-bin PATH and install-link checks Windows-form-safe
  • fix(config): preserve mat backend registry inside isolated OpenCode roles
  • refactor(codex): route all hook command objects through one builder
  • docs: document receiver-receipt confirmation contract
  • docs: fix consult target-write example
  • docs: qualify FAQ explore read-only boundary
  • docs: align FAQ and example backend comment with supported kinds and effort fallback
  • docs: list pi in all supported-backend entry points
  • chore(copilot): remove obsolete BYOK startup-prompt workaround
  • test(consult): cover env split-string delivery guard
  • fix/issue 2289 keeper handoff ownership
  • fix/issue 2295 keeper legacy handoff migration
  • fix/issue 2337 env s assignments
  • fix/issue 2363 env S shell option terminator
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • feat/issue 2368 audit supervisor
  • chore(ci): refresh stale full-fallback throttle comments
  • ci: make Windows Git Bash CI green
  • Align scheduled CI with Auckland winter time
  • feat(skills): import Claude skills into role homes
  • feat(codex): expose mat skills through custom prompts
  • feat(tmux): prefix private poll/watchdog helper sessions with _
  • feat(tmux): prefix private bg-run and reap sessions
  • feat(relay): add handoff expectation state
  • feat(consult): target write scope and the allowlisted-roots guard mode
  • feat(consult): gate production actions behind approval
  • feat(relay): provision receiver receipt hooks and capability markers
  • feat(pi): port tmux-command-guard to the rendered role-guard extension
  • feat(relay): resolve expectations in watchdog and Stop hook
  • feat(baton): write delivery receipts on mailbox ingest
  • feat(relay): add OpenCode backend kind
  • feat(keeper): deploy the persistent MAT tmux keeper per platform
  • feat(codex): honor auth_var for access tokens
  • fix(async): own tmux-hosted helpers via server
  • fix(ci): self-select changed suite files
  • fix(cycle): preserve renewal kill backstop across tool-call cleanup
  • fix(tmux): pin mat sessions to explicit A/B sockets, fail-closed test runner
  • fix(poll): identify legacy supervisors by script argv
  • fix(relay): require fresh tmux delivery observations
  • fix(relay): recognize Claude spinner activity
  • fix: keep systemd tmux expansion shell-safe
  • fix(baton): terminate process groups with option terminator
  • fix(relay): scope spinner detection to Claude panes
  • fix(consult): restore caller-only backend env in tmux monitor
  • fix(consult): deny remote PR delivery in write-scoped role guard
  • fix(relay): preserve spaced handoff state paths
  • fix(consult): transport write roots newline-delimited for Windows C:/tmp
  • fix(consult): align role prompt with target write scope
  • fix(consult): enforce action-scope ↔ target-write matrix
  • fix(relay): read send-sentinel matches as complete paths
  • fix(relay): clean failed receiver capability markers
  • fix(baton): resolve non-duo path handoffs
  • refactor(summon): extract the summon lifecycle into an internal path
  • refactor(relay): rename send-tmux command and skill to send-relay
  • docs(prompts): document bg-run wake waiting rule
  • docs: require native child blockers for umbrella trackers
  • docs(consult): state read-only diagnose default in focused help + guard it
  • test(caucus): reuse regression fixtures
  • test: reduce repeated adhoc regression fixtures
  • test: reduce ticket critique reminder fixture overhead
  • test: reduce repeated prompt override fixtures
  • test: reuse mat-team regression fixtures
  • test: reuse tg relay regression fixtures
  • test(audit): remove fixed waits from regression suite
  • test: keep delivery mock jq 1.6 compatible
  • bug/issue 2170 restore mat skill isolation
  • ci: use four test jobs on the active sydney runner
  • test: wait for tmux listener pid attribution
  • ops: bundle persistent MAT tmux service
  • feat/issue 2182 consult domain lane
  • Merge remote-tracking branch ‘origin/main’
  • feat/issue 2052 pi role guard
  • ci: make Full test budgets advisory
  • feat(baton): surface crashed/stale baton sessions via mat baton manage –dead
  • feat(backends): add MAT_ALLOW_UNGUARDED_ROLE escape hatch for guardless kinds
  • feat(devops): add summon-devops CLI + async callback lifecycle
  • feat(devops): wire the WIP-blocker summon-devops lane into delivery prompts
  • feat(ci): classify test suites by execution role, fix fallback enumeration bug
  • feat(codex): add send-verify stop hook backstop
  • feat: add codex restricted role guard
  • feat(hooks): port send-verify Stop-hook backstop to copilot
  • feat(prompts): add hosting-gated baton lifecycle fragment for duo
  • feat(codex): manage launch statusline defaults
  • feat(codex): auto-trust launched worktrees before startup
  • fix(baton): route mat baton send through the operator’s scoped registry by default
  • fix(baton): unify team status as standby/busy across mat agents, idle, and show
  • fix(install): reword POSIX progress line “Swapping into” → “Installing into”
  • fix(stall-watchdog): render configured user name in stall reminder
  • fix(adhoc): wait for wake after child crash
  • fix(tmux-send): classify window pane backend targets
  • fix(ci): resolve Git Bash without pwsh
  • fix(prompts): gate bg-run guidance on the hosting axis
  • fix(duo-dev): resolve $SESSION/$LOCK before use
  • fix(test): scope tmux-env-isolation probe kill to session, not server
  • fix: make role-guard-codex.sh executable, register in CI taxonomy/router
  • fix: guard agents against shared tmux teardown
  • fix(copilot): honor auth_var for native Copilot GitHub login
  • fix(codex): bypass startup hook review in mat launches
  • fix: preserve refinement ownership during delivery handoff
  • fix(relay): own non-audit pollers in tmux helpers
  • fix(audit): own tmux-hosted pollers via the tmux server
  • perf(test): consolidate dev-ccw launch matrix in launcher variants suite
  • perf(test): cache runner-fixture results in workflow-regression suite
  • docs(baton): align mat baton logs with operator-event-only contract
  • docs(adhoc): state worktree-preservation contract driver-neutrally
  • docs(baton): record executed tier-1/tier-2 acceptance results for
  • docs: reconcile Copilot session-end support
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • fix/issue 2013 ci linux runner pool
  • Revert “feat(backends): add MAT_ALLOW_UNGUARDED_ROLE escape hatch for guardless kinds”
  • test(local-drivers): replace fragile set -m SIGINT reap idiom with SIGTERM
  • test: remove pcon settle timing race
  • bug/issue 2088 copilot rebirth
  • test: isolate Windows scratch-path stubs
  • fix/issue 2090 summon devops reply routing
  • feat/issue 2114 countable skips
  • ci: enable nightly schedule for ci-full.yml
  • test: build headless-agent-cli sandbox once per suite, not per case
  • feat(backlog): add mat backlog delivery-queue view
  • feat(relay): add _mat_pane_idle_sustained byte-identity pane-idle predicate
  • feat(relay): mid-cycle stall watchdog — nudge delivery agent on premature idle
  • feat(live): advisory commit-reflection hook — challenge 治标/治本 before turn end
  • feat(install): distinguish atomic-swap vs mirror-fallback in Git Bash progress output
  • feat(relay): Stop hook turn-end fast path for undelivered send_tmux handoffs
  • feat(install): delete vestigial mat-gitbash launcher fork
  • feat(relay): arbitrate the tmux default socket before creating a session
  • feat(relay): repair a stranded tmux socket via a keeper hardlink
  • feat(baton): detect a session stalled before dispatch can route it
  • feat(test): parallelize serial lane by default
  • feat(test): add changed suite runner
  • feat(codex): default service_tier to standard, never priority
  • feat(test): isolate agent test runs in Docker
  • feat(statusline): reinstate direct-Anthropic 5h/7d usage fetch for no-gateway native backends
  • fix(adhoc): slim SessionEnd hook to stay under Claude’s 1.5s budget on Git Bash
  • fix(relay): sample pane idleness for cycle gates
  • fix: exclude calling dev pane from duo gate
  • fix(gitbash): normalize path forms in ownership guard so live occupant is detected
  • fix(dispatch): use domain-qualified launchctl kill for mat dispatch stop
  • fix(supervisor): don’t leak ambient startup file into no-handover child
  • fix(relay): refuse restricted roles on backend kinds with no write guard
  • fix(relay): reject stale file handoffs
  • fix(baton): probe status with role-derived –max-runtime-ms, not baton’s default
  • fix(relay): detach pollers with setsid
  • fix: generalize adhoc validation guidance
  • fix(baton): exclude the caller’s own role from _mat_baton_gate_check
  • fix(baton): scope role worker env to the team’s own repo_root
  • fix(baton): dispatch the public gate-check verb to the baton gate on baton sessions
  • fix(dispatch): archive_mailbox returns 0 on success regardless of log call
  • fix(dispatch): surface dispatch_owned stamp failures instead of swallowing them
  • fix(test): measure parallel-lane elapsed time from launch, not reap-wait
  • fix: nest SessionEnd hook timeout
  • fix(hooks): restore live commit hook execute bits
  • fix: avoid false commit reflection markers
  • fix(backlog): annotate blocked rows when open blockers fall outside fetch window
  • fix: nudge stall watchdog after two quiet ticks
  • fix: report keeper status for ghost sockets
  • fix: share dispatch Windows path conversion
  • fix: tolerate concurrent keeper socket repair
  • fix(test): kill orphaned tmux server before _mat_helpers_cleanup rm’s its owned tmpdir
  • fix(ci): pin Windows Git Bash resolution
  • refactor(platform): collapse Windows-detection predicates onto an internal path
  • refactor(platform): collapse path-form converters onto _mat_path
  • refactor(backends): delete unreachable kind-inference fallbacks and tuple-field kind allowlists
  • refactor(session): collapse launch-quote/short-path boundary into named helpers
  • refactor(backends): per-kind adapter files, declared arity/presence dispatch, no-kind-predicate lint
  • refactor: unify native agent launch paths
  • docs(adhoc): drop private mat* symbol names from rebirth paragraph
  • docs(backfill): use mat backlog for open-issue de-dupe instead of bare gh issue list
  • docs(dispatch): include XDG_STATE_HOME in mailbox archive path expansion
  • docs: mount git common dir in docker sandbox recipe for worktree checkouts
  • ci: make CI Full and CI Windows manual-only
  • Merge remote-tracking branch ‘origin/main’
  • test(session-end-quit): scope fifo under mktemp -d dir
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • feat/issue 1952 copilot write guard
  • ci(required): pin required lane to [self-hosted, Linux, ARM64]
  • Merge remote-tracking branch ‘origin/main’
  • fix/issue 1959 test tmux sandbox
  • ci(required): add temporary switch to suppress full-suite global fallback
  • Merge remote-tracking branch ‘origin/main’
  • test: replace test_short_native_path/test_launch_quote mirrors with semantic path assertions
  • test(dispatch): cover Linux upgrade_refresh systemctl sequence
  • Merge remote-tracking branch ‘origin/main’
  • test: remove real crash-backoff waits from adhoc local supervisor tests
  • feat/issue 1990 statusline auto compact denominator
  • test: mock gh in off-placeholder teardown case
  • test(team-local): isolate supervisor reexec sentinel
  • test: force archive_mailbox’s trailing log call to fail
  • test(dispatch): fix uid-dependent stamp-failure simulation in test 9
  • ci: route an internal path changes to dispatch test suites
  • feat(backends): add per-backend context_window_size to control auto-compaction
  • feat(dispatch): add single-repo baton dispatch daemon
  • feat(dispatch): multi-repo config, per-repo auth, fleet tick, active-repo cap
  • feat(dispatch): opt-in resident service hosting + mat dispatch control CLI
  • feat(dispatch): idle-teardown of dispatch-owned baton sessions with mailbox archival
  • fix(install): guard reg add/query against MSYS path-conversion on Git Bash
  • fix(install): probe-then-fallback swap on Git Bash
  • fix(test): apply –force-local to tar fallback in _test_rsync_stage_tree on Windows
  • fix(test): make _mat_helpers_cleanup rm best-effort to stop EXIT-trap flake
  • fix(test): make run.sh EXIT-trap rm best-effort to stop CI Full group2 flake
  • fix(test): scope real-tmux sockets under TEST_TMPDIR via TMUX_TMPDIR
  • fix(test): update run.sh cleanup-trap assertion for best-effort rm
  • fix(dispatch): use HKCU Run key as Windows enablement probe; document crashed-stale cap contract
  • fix(relay): adhoc renewal can’t reap backend on Git Bash local driver (no tmux)
  • test(install): assert exit 0 on PyYAML soft-warn paths
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • feat/issue 1915 devops role worker
  • feat(baton): baton status liveness -> gate-check + rebirth (reclaim + restart)
  • feat(baton): cycle-scoped backstop + new-cycle reclaim-idempotency
  • feat(status): surface baton-hosted sessions in mat agents + –json
  • feat(baton): operator-facing inspect and control primitives for live baton sessions
  • feat(baton): interactive session chooser/manager for headless baton sessions
  • feat(windows): install tg-relay as HKCU Run key autostart on Windows Git Bash
  • feat: add -a/–autostart and –no-autostart flag aliases
  • fix(test): scope MAT_SESSION_TMP_DIR per test script to end the shared-cubby-root flake
  • fix(baton): add dev/developer guard variants for team cross-kind send
  • fix(baton): remap dev→developer for team reviewer send path
  • fix(test): reap serve PGID in test_baton_restart_role_updates_state_file
  • fix(status): correct inverted team-baton backend key names in agent discovery
  • fix(baton): write restart-partial event on partial role restart failure
  • fix(test): widen lint glob to test/.sh so mat-launch-.sh and mat-backend-*.sh are covered
  • fix(startup): use transport-neutral language in _mat_next_work_gate_reason
  • fix(install): soften PyYAML check to a warning with platform-specific hint
  • fix(pcon): settle WinPID after exec-replace; propagate kill failure to prevent stale handoff
  • fix(baton): route cycle counter lock through an internal path
  • fix: accept Windows-absolute –repo paths in both launchers
  • fix(install): distinguish Windows python3 app-execution-alias stub from missing PyYAML
  • fix(doctor): distinguish Windows python3 app-execution-alias stub from missing PyYAML
  • fix(startup): add driver-dispatch-ok sentinel to _mat_next_work_gate_passes
  • refactor(test): write local-driver state fixtures in one write
  • refactor(baton): consolidate duplicate per-kind session_alive/worktree_owner/teardown bodies
  • refactor(poll): extract _mat_local_state_scan_type to deduplicate four local-driver discovery loops
  • docs(baton): update docs to reflect team baton is shipped (PR)
  • docs(baton): update driver-dispatch-inventory to reflect team baton routing
  • docs(baton): add team to baton manage help and user-guide listing
  • docs(doctor): add Windows relay-unit sub-checks to mat doctor section
  • test(next-work): cover baton driver dispatch in _mat_next_work_gate_passes
  • test(new-cycle): unit tests for re-delivery idempotency paths
  • test: add unit tests for _mat_baton_team_worktree_owner
  • test: add doctor_test.sh coverage for Windows relay-unit branch
  • feat(doctor): detect Windows /tmp mount divergence
  • feat(test): enforce per-script time budget in run.sh
  • feat: mat scratch — one cross-platform scratch-path idiom
  • feat(runtime): give each logical session one /tmp cubby and reap it on close
  • feat(next-work): opt-in caucus –backfill before poll
  • feat(baton): add team send-engine, role→mailbox registry, and hub-and-spoke firewall
  • feat(baton): add team baton workers, wake wiring, and driver dispatch
  • fix(test): add EXIT trap for GIT_CONFIG_GLOBAL mktemp in helpers.sh
  • fix(caucus): reap backends via native winpid on Git Bash
  • fix(adhoc): gate crash-recovery arm on session intent, not child intent
  • fix(hooks): soften ticket-critique edit reminder to conditional wording
  • fix(baton): poll serve liveness after spawn, fail fast on immediate exit
  • fix(audit): clear TMAT_PANE/TMUX/TMUX_PANE before execing local audit supervisor
  • fix(prompt): drop stale cold-start comparison from adhoc Incoming rebirth
  • fix(ticket-critique): join shell-continuation lines before splitting segments
  • fix(tests): guard –force-local behind MSYSTEM check in release-regression.sh
  • fix(test): match fixture function names literally
  • fix(test): include _mat_doctor_check_tmp_mount in doctor coverage lint
  • fix(tests): replace GNU find -printf with POSIX -exec basename in pwsh regression
  • fix(ci): recalibrate stale soft budgets on current Linux runners
  • fix(test): add GIT_CONFIG_GLOBAL cleanup to 12 scripts that override helpers.sh EXIT trap
  • fix(cycle): route self-reap through _mat_renewal_reap_target in context_renewal, mat_respawn, team_context_renewal
  • fix(relay): extract handover startup directive to single helper
  • fix(baton): check liveness before sleeping in serve_role poll loop
  • fix(runtime): migrate _mat_baton_caucus_state_file to cubby layout
  • fix(pane-mode): add pcon native-child cleanup to else-branch launch script
  • fix(ci): restore Windows workflow YAML validity
  • fix(test): provision session-temp root in explore-local regression tests
  • fix(test): align local-driver CI fixtures with the cubby runtime contracts
  • fix(test): clean GIT_CONFIG_GLOBAL in 8 more scripts that override helpers.sh EXIT trap
  • fix(ci-windows): correct jq digest check and throttle leg to 1-in-10
  • fix(ci-windows): move %10 throttle to a bash gate, verify-first
  • fix(pcon): extend MAT_PCON_CHILD_IMAGES default to cover codex backend
  • fix(worktree): wire baton caucus owner into worktree owner discovery
  • fix: repair CI red — adhoc-local test staleness and relay-poll ticker teardown race
  • fix(ci): use RUNNER_TEMP instead of /tmp for selected-suites.txt
  • fix(test): normalise mktemp tmpdir to POSIX form on Windows Git Bash
  • fix(ci): repair role-guard EPIPE flake and add manual CI Full dispatch
  • fix(test): pin $! to the poller in relay-poll launch sites; revert ticker trap
  • fix(hooks): eliminate printf|grep -q EPIPE/pipefail race in Bash guards
  • fix(relay): reap orphaned countdown ticker on early TERM in _relay-poll
  • fix(relay): restore glob in caucus session match pattern
  • fix(baton): wire team worktree owner into worktree guard
  • refactor(cycle): extract _mat_renewal_reap_self to deduplicate 5 reap blocks
  • docs(ci): document per-script soft time budget in an internal document
  • docs(user-guide): add PyYAML check to mat doctor enumeration
  • docs: fix two stale claims in an internal document baton section
  • docs(ci): document test/run.sh temp scoping as the isolation mechanism
  • docs: document .github/docker/Dockerfile as a retained local repro sandbox
  • docs(baton): spec the operator model for the baton session manager
  • chore: remove prompt-profile registry (dead code since)
  • feat/issue 1497 baton caucus
  • fix/issue 1773 gh issue helper yaml
  • fix/issue 1774 ci windows prereqs
  • test(hooks): pin edit-path reminder delivery channel in ticket-critique-reminder
  • test(scratch): add CLI dispatch tests for mat scratch verb
  • bugfix/issue 1780 supervisor basename cubby
  • test: extract shared _mock_gh_with_empty_api helper
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • ci-windows: port the decide-job pattern for the 1-in-10 throttle
  • Merge remote-tracking branch ‘origin/main’
  • ci: split Linux PR checks into required fast lane and advisory full lane
  • ci-full: throttle the advisory full lane to 1-in-2 via a decide job
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • test: add worktree_test.sh integration tests for baton caucus and duo arms of _mat_assert_worktree_unowned
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • ci: bump actions/setup-node v4 -> v7 to drop the Node 20 runtime warning
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • feat(ci): replace round-robin partition with LPT; reduce GROUP_COUNT 4→2
  • feat(ci): remove serial build-image dependency from resolve-groups
  • feat(adhoc): honor operator /exit via SessionEnd sentinel
  • feat(lint): guard against all_scripts / workflow-regression.sh fixture drift
  • fix(audit): refresh slot worktree to origin tip on every wake
  • fix(statusline): compact the runtime version-skew marker
  • fix(agent-cli): pin CLAUDE_CODE_GIT_BASH_PATH on Git Bash for the Bash tool
  • fix(session): single-quote each arg in _mat_shell_join on Windows
  • fix(test): replace socket-wait loop with per-entry unique socket names
  • fix(copilot): tmux send-keys prompt delivery as BYOK -i workaround
  • fix(bg-run): give each wake event its own immutable path
  • fix(no-sleep-poll): block bg-run result-file wait loops
  • fix(ci): correct Windows runner variable name RUNNER_GITBASH → RUNNER_WINDOWS
  • fix(explore): ownership-check snapshot teardown to prevent inherited MAT_EXPLORE_SNAPSHOT from deleting a live worktree
  • fix(prompt): gate mat next-work startup on bare seed receipt
  • fix(test): update workflow-regression assertions for containerless CI
  • fix(test): replace HERE-doc pipes with mktemp files in gh-issue-helper tests
  • fix(tests): use path-form helpers for Windows Git Bash compatibility
  • fix(hooks): mark ticket-critique-stop/clear as executable (100755)
  • fix(install): pwsh shadow forwarders cover every an internal path command, not just mat + modes
  • fix(tests): wrap mat-duo path assertions in test_short_native_path
  • refactor(baton): drop _mat_baton_state_get for the shared _mat_local_state_get
  • refactor(ci): replace container isolation with scoped HOME/TMPDIR in run.sh
  • test: isolate suite from ambient global git config
  • fix/issue 1641 harness timeout reporting
  • test: assert pcon pidfile vs reaper-addressable pid, not $$
  • test: guard python3 liveness against the Windows MS-Store stub
  • test: make run-jobs default-path test Git Bash-aware
  • hooks: dedupe ticket-critique reminder per turn + Stop backstop
  • fix/issue 1659 no startup poll arm
  • gate: drop obsolete repo-wide ‘relay PR in flight’ gate (rc-5)
  • fix/issue 1667 local driver pid identity anchor
  • test(lint): add sentinel’d == “baton” case to sanctioned-forms test
  • ci: add Windows Git Bash test workflow (test-windows, non-blocking)
  • Merge pull request from SHUKE-LABS/ci/windows-runner
  • test: split run.sh into serial + parallel lanes so JOBS can rise above 1
  • test(install): split 2562-line monolith into 7 topical suites, install once per script
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • test/issue 1693 mat backend helpers fixture hoist
  • feat(copilot): seed trustedFolders per role home before launch
  • feat(copilot): provision managed settings.json footer block
  • feat(install): add pwsh shadow wrappers for mat and the mode verbs
  • fix(copilot): bootstrap GitHub login via MAT_COPILOT_GITHUB_TOKEN
  • fix(relay): strip trailing CR from resolved prompt-profile name
  • fix(claim): rollback unverifiable claim attempts and abort sweep
  • fix(relay): stop masking non-codex non-submit as delivered
  • fix(relay): split dir creation from mode hardening
  • docs(user-guide): MAT_DRIVER is an authoritative parent-shell env knob
  • feat/issue 1668 copilot setup terminal suppress
  • ci: round-robin partition test matrix
  • test: fix two Cluster A mechanisms in Git Bash test suite
  • feat: extract ticket self-critique into a skill and codify the ticket-opening flow
  • feat: backend-neutral headless agent-CLI compatibility layer
  • feat(baton): real native-agent bridge for the duo baton worker
  • feat: add mat doctor — one read-only report of every unmet new-machine prerequisite
  • feat: support Copilot backend provider types
  • fix: shell-quote settings.json command paths
  • fix: make the builtin default backend launchable out of the box
  • fix: disclose and report mat’s takeover of ~/.claude/CLAUDE.md
  • fix: escape backticks in the _mat_usage heredoc so mat help renders clean
  • fix(tmux): address windows and panes by id, not literal :0/:0.0
  • fix(tests): replace per-script tmux/rsync guards with shared helpers
  • fix: resolve lock ownership from host-local evidence, not tmux visibility
  • docs: restructure an internal document on an install→launch spine, with code reconciliation
  • docs: correct the user-guide skills-build clause
  • docs: replace shipped-default ~/.claudew-* with ~/.claude-* in two active pages
  • feat/issue 1603 umbrella tracker label
  • feat/issue 1608 refuse weak tier explore audit
  • feat/issue 1609 ticket critique reminder hook
  • fix/issue 1612 launch failure report
  • fix/issue 1634 gitbash ulimit abort
  • fix/issue 1619 mat driver split
  • chore: ignore .playwright-mcp/ runtime artifacts
  • Merge remote-tracking branch ‘origin/main’
  • fix/issue 1622 explore rebirth guard
  • feat(next-work): auto-adopt a cleanly-mergeable orphan relay PR
  • feat(respawn): rename /newtopic → /respawn and extend to adhoc
  • feat(relay): surface mat runtime version skew
  • feat(self-critique): catch false open-questions in ticket critique
  • feat(lb): retrieval builtin — forward-walk supersede across both archives
  • feat(logbook): one-time til→framework archive migration (semantic rebuild)
  • feat(release): make version encode cumulative feature count
  • feat(claude-config): pin autoCompactEnabled: true in settings payload
  • feat(driver): promote mat.driver=baton to accepted resolver value
  • feat(driver): pluggable wake source in the cycling-worker supervisor
  • feat(driver): wire baton transport for non-tmux duo
  • fix(adhoc): support /wrapup –continue doc-seeded context renewal
  • fix(duo): gate reviewer self-rebirth on successful Dev rebirth
  • fix(relay): supervisor self-re-exec at rebirth boundary to close version skew
  • fix(refine): exempt caller’s own lock from the refining reciprocal guard
  • fix(refine): key refining self-exemption on the session slot lock
  • docs(wrapup): treat trailing text as operator directive, not source
  • test(driver): audit mat.driver dispatch + static enum-coverage guard
  • feat(launch): mark agent arity in the Starting <Mode>… line
  • feat(explore): add /newtopic skill — clean respawn at the per-topic boundary
  • feat(handover): persist /handover docs to a durable by-project git archive
  • feat(wrapup): builtin sibling of handover sharing persist + respawn
  • feat(next-work): carry gate-deferral reason in poll directive
  • feat(next-work): alert on orphaned relay PR wedging the delivery gate
  • fix(launch): bind personal-override marker to XDG source group only
  • fix(explore): refresh snapshot on rebirth and warn on runtime version skew
  • fix(mat): refuse explore-claim / issue refining on a delivery-claimed ticket
  • fix(team): stop team-rebirth-pane silently skipping on a stale child-pid file
  • fix(team): confirm child-pid identity before reap in team_rebirth_pane
  • fix(team): owner-scope the supervised child-pid file to close stale-publish
  • fix(relay): resolve session via MAT_SESSION_NAME on local driver in startup.sh
  • fix(local): reap real native claude.exe winpid on Git Bash renewal
  • fix(session): compose hostname with operator’s status-left instead of clobbering it
  • refactor(relay): converge session resolution onto _mat_resolve_session + add session-resolve lint
  • refactor(review): make the reviewer boundary absolute, guard-backed, prose-lean
  • refactor(review): judge CI outage by reasoning, not the CI_ENABLED metric alone
  • refactor/issue 1558 fold merge guard
  • feat: stamp pane title with issue number at claim time (mat next-work)
  • feat: add test soundness as a merge-orthogonal review dimension
  • fix: stop false UNDELIVERED nudge after delivered+processed handoff
  • fix: enable systemd linger so tg-relay persists without a login session
  • fix: match lifecycle labels case-insensitively
  • fix: anchor ticket self-critique gate to create/edit action
  • fix(profile): fork runtime home on non-personality fragment overrides
  • refactor(explore): reframe opening as responsibility, trim hook-enforced prose
  • feat/issue 1516 deterministic boundary renewal
  • feat: add mat --version with a tag-derived VERSION stamp
  • feat: quiet per-launch progress to a single Starting <Mode>… line; add –verbose
  • feat: add mat.autoRefine switch to disable delivery-agent auto-refinement
  • feat: add default-empty shared/local-issue-rules.md operator extension point
  • fix: filter MSYS git-bash fork noise from PreToolUse hook stderr
  • fix: mirror install payload in place on Git Bash so reinstall survives a running fleet
  • fix: fold quiet-launch prompt-override notices into one clean line + prompt source
  • fix: collapse local-driver launch to one line with Using: source list
  • docs: add canonical mat.* config reference + thin scattered precedence prose
  • test: scrub inherited MAT_AUDIT_SESSION in scrub-env.sh
  • feat(relay): auto-manage the tg-relay launchd LaunchAgent on macOS
  • fix: fail fast on bash < 4.3 in install.sh
  • fix(relay): flush Claude Code composer instead of falsely confirming stuck sends
  • fix(audit): sweep stale /tmp/audit-wake-*.md before minting new wakes
  • fix(live): align /handover rebirth with explore’s load-then-wait directive
  • fix(supervisors): surface unexpected backend crashes in explore/live/team/caucus
  • docs: add macOS quickstart with launchd resident-relay recipe
  • docs: drop stale install.sh line cites in an internal document
  • docs: drop stale install.sh:205 / mat-launcher:43 line cites in quickstart-macos.md
  • docs: add buyer-facing FAQ and wire buyer docs into README
  • ci: run license-gate Worker tests in CI
  • feat(relay): migrate team/duo pane rebirth to the supervisor-leaf pattern
  • feat(caucus): /handover support — single-authored joint rebirth
  • feat(caucus): add –backfill for self-directed backlog grooming
  • feat: redefine INSTALL_ROOT/VERSION as install-time git commit sha
  • feat: build, commit-stamp, publish, and register the gated release tarball
  • feat: channel-B first install from extracted LemonSqueezy payload
  • fix(relay): escalate local-driver renewal to detached SIGKILL
  • fix(install): copy tg-relay unit instead of symlinking to survive systemctl disable
  • fix: make supervisor-leaf adhoc idle/rebirth look alive, not like a crash loop
  • docs(user-guide): document caucus –backfill and mat.backfillMaxTickets
  • docs: scope Windows Git Bash as best-effort for commercial install
  • test(relay): guardrail against bare self-identification display-message queries
  • test(relay): widen self-id lint guard to long-form pane tokens
  • chore(constitution): default ticket Out-of-scope to one fixed sentence
  • fix/issue 1453 explore rebirth wait
  • feat/issue 1442 license worker
  • docs/issue 1458 quickstart linux
  • feat(relay-poll): show mm:ss countdown in pane title while idle-polling
  • feat(issue): add mat issue create with auto label-ensure + –repo
  • feat(harness): add GitHub sandbox SUT seed/reset path to setup-sut.sh
  • fix(install): self-heal tg-relay.service on launch when manager was unreachable
  • fix(agents): dedup tmux-hosted live session via TMUX_PANE fallback in supervisor state write
  • fix(explore): fall back to shared checkout when origin fetch fails
  • fix(relay): separate explore refine-holds into explore-lock namespace
  • fix(audit): run audit in its own dedicated worktree, not shared repo_root
  • fix(cycle): advance repo_root to origin/<default> after each merge
  • fix(send-tmux): reject self-send at the interactive entrypoint
  • fix(test): scrub inherited host-specific relay tokens in scrub-env
  • fix(relay): anchor send_tmux self-send guard on $TMAT_PANE
  • fix(relay): exempt /clear from send_tmux self-send guard
  • docs(tg-relay): add linger persistence note and ‘chat not found’ troubleshooting entry
  • docs(agents): propagate ergonomic mat issue block into ticket-authoring constitutions
  • chore: retire an internal path back-compat alias
  • test(team): scaffold non-tmux team-mode acceptance harness
  • docs/issue 1406 mat issue create default
  • feat/issue 1413 explore claim default lock
  • feat: unify worktree opt-out as mat.enableWorktree with cross-mode conflict guard
  • fix(explore): stop teardown orphaning a snapshot worktree registration
  • docs: sharpen self-critique-ticket bullet 2 into root-cause-vs-symptom check
  • chore(stance): add proactive-resolution and assume-user-busy priors
  • chore(preamble): default to acting on own judgment over deferring
  • feat(agents): add shared agent-identity preamble across all relay roles
  • feat(live): supervised /handover + /wrapup –continue context renewal
  • feat(explore): run in-repo explore on an ephemeral origin/<default> snapshot
  • fix(tg-relay): require a per-host token, remove the shared-token fallback
  • fix(relay): auto-detect undelivered send-tmux handoffs
  • fix(audit-poll): heartbeat-check liveness during the long sleep
  • fix(skills): reconcile real, unmarked skills dirs instead of skipping
  • fix(next-work): exclude refining items from the resume selection
  • refactor(agents): concision pass on adhoc/duo-dev constitutions
  • docs(agents): warn live/explore to pass gh –repo for cross-repo issues
  • feat(audit): make audit poll cadence per-repo via mat.auditPollMinutes
  • feat(prompts): add Windows scratch-file rule fragment (use C:/tmp, never /tmp across tools)
  • fix: quote worktree-root prefix strip so glob metachars in root parse correctly
  • fix(poll): list local-driver audit sessions in mat an internal path
  • fix(pane-title): quote prefix-strip operands so glob-metachar roots yield short prompt_name
  • fix(next-work): fall through to refine when the ready gate fails
  • fix(tg-relay): surface getUpdates 409, guard singleton, heal enable drift
  • refactor: extract shared dependency-edge prologue for issue block/unblock
  • refactor: extract shared per-skill link/copy-fallback helper
  • refactor: extract shared child-reap + supervised-launch helpers for local supervisors
  • refactor: extract shared watchdog grace-recheck loop
  • perf(statusline): cache rendered usage suffix; drop per-render forks
  • docs: add mode token to stale session-name examples, fix caucus role name
  • test: cover bg-run minute/hour duration conversion and minute defaults
  • feat(skills): add operator skills overlay to complete config symmetry
  • feat(prompt): announce personal prompt override outcome at role-prompt render
  • feat(prompt): add comment/doc-hygiene self-critique rule, collapse duplicated disclosure obligation
  • fix(telegram): pass message body to curl via temp file to preserve CJK on native-Windows
  • fix(relay): default TMAT_PANE from TMUX_PANE so agents self-identify per-pane
  • fix(prompt-profile): normalize both operands in built-in/XDG profile checks
  • fix: protect explore session locks from stale-lock reaper
  • docs: scope subagent XDG-skip claim to personalPromptOverride=false
  • docs(caucus): mandate a neutral topic brief at the convener authoring step
  • feat: LemonSqueezy entitlement client + url-fetch install mode
  • feat(agents): let live capture incidental out-of-scope discoveries as tickets
  • feat(notify-user): prominent ACTION marker for messages that need shuke to act
  • feat(mat-issue): add block/unblock for native GitHub dependencies
  • feat(session): show short hostname centered in tmux status line
  • fix: self-heal missing ready/refining/blocked workflow labels
  • fix: ship gh-issue-comment-file as a PATH binary
  • fix(user-config): flip personalPromptOverride default to opt-in (false)
  • refactor: rename mux command/namespace to mat with config migration
  • feat(hooks): add advisory shell-quoting PreToolUse guard
  • feat(agents): per-role prompt size ceiling + reconcile-and-trim rule
  • fix(caucus): stop proposer double-forwarding the –topic-file topic
  • fix(hooks): stop no-sleep-poll steering to the disallowed Monitor tool
  • refactor(hooks): extract shared Bash-command normalizer
  • feat(relay-poll): log lifecycle + exit reason to poll log
  • feat(caucus,explore): land spec-shaped ticket bodies without manual cleanup
  • fix(relay-poll): reduce idle-poll interval to 10m and sync notify text
  • fix(relay-watchdog): size detection cadence to the 10m poll interval
  • fix(audit-watchdog): bound dead-session exit and missing-poller recovery to minutes
  • fix(tmux teardown): replace per-session session-closed hooks with one global dispatcher
  • fix(install): skip re-linking mux-managed per-role skills dirs
  • fix(session): embed mode token in team/duo session names
  • refactor(cycle): rename adhoc-new-cycle -> new-cycle, retire dead team/duo shims
  • refactor(skills): own product skills location with version-gated rebuild
  • docs: add product-intro slide deck for my-ai-team
  • feat/issue 1255 claude superglobal guard
  • feat(cli): add –dry-run flag to preview session launches without executing
  • feat(tg-relay): add structured observability to reply-index write and lock paths
  • feat(roles): runtime write-guard for explore and audit sessions
  • fix(satellites): append after last pane, focus satellite, fix layout
  • fix(explore): alert before reattaching to existing session
  • docs(agents): sever team-mode Developer’s direct operator channel
  • feat(caucus): self-teardown –topic-file sessions on conclusion
  • feat(agents): caucus-first escalation path — two stages, planner/reviewer as convener
  • feat(agents): anti-phantom-send guard for all relay consumers
  • feat(prompt): add mux.personalPromptOverride toggle to disable drift-prone XDG overrides
  • fix(duo): use even-horizontal layout so 2 panes render side-by-side
  • fix(install): report accurate symlink-copy count on Git Bash
  • fix(caucus): seed challenger with topic on –topic-file launch to prevent opening bounce
  • docs(agents): add maintainer README — prompts are executable constitutions, inlined shared content needs render-coverage tests
  • docs: add sales demo script and seed caucus-trigger issue
  • fix(no-sleep-poll): scan shell-eval carrier payloads
  • fix(cli): treat -h/–help as help request, not literal data
  • fix(cli): extend -h/–help detection to agent-facing an internal path scripts
  • fix(cli): treat -h/–help as help request in relay-poll scripts
  • fix(install): manage tg-relay.service on every install, not just –with-systemd
  • fix(tg-relay): quote Telegram message ids with ‘No’ not ‘#’
  • fix(tg-relay): send setMyCommands payload as a bare array, not a wrapped object
  • fix(audit): export MUX_AUDIT_SESSION so start-audit-poll re-arm fires
  • fix(relay): mark path payloads with [relay] so post-/clear handoffs are not dropped
  • fix(review): sanction reviewer plan-gate questions as changes-requested
  • refactor(relay): remove the controller pane from team, duo, and adhoc modes
  • refactor(relay): remove five dead functions (refactor leftovers)
  • refactor(poll): honor poller-launch override in the standalone watchdogs
  • refactor(agents): extract shared team/duo contract fragments
  • docs(adhoc): rewrite always-on-cycling.md to the post- local-driver contract
  • docs: inline the five-directive next-work table in each role prompt
  • ci: route every job to the self-hosted runner
  • feat: rename qa mode to audit (hard cutover, no alias)
  • fix(install): dereference symlinks in link_file copy fallback
  • fix(statusline): strip CRLF from jq output before IFS read
  • fix(relay-poll): use fixed 15-minute polling interval instead of backoff sequence
  • fix(tg-relay): strip leading slash from setMyCommands command names
  • fix(caucus): delimit topic header block by recognition not blank line
  • fix(caucus): clean up –topic-file startup file on close and failed start
  • fix(caucus): side-by-side layout, proposer focused on attach
  • refactor(cli): remove retired-verb rejection and unrestricted tmux passthrough
  • refactor(cli): remove deprecated ‘raw’ alias for live
  • refactor(caucus): replace /topic skill with implicit topic intake
  • docs: restructure README as the project front door
  • docs(README): describe implicit caucus topic intake, drop /topic
  • chore: two-word naming — audit is the mode, auditor is the agent
  • feat(relay): add watchdog to revive duo/team’s skipped self-rearm
  • feat(cli): honor –help/-h and mux help <verb> on every public verb
  • feat(relay): enforce no-sleep-poll via PreToolUse hook in every agent home
  • feat(agents): wire bg-run into validation fragment for all six roles
  • feat(poll): idle relay poller wakes on refine candidates too
  • feat(explore): give pane-mode explore a supervisor leaf so /handover works
  • feat(mux): mux issue accepts –repo for cross-repo lifecycle
  • fix(relay): resolve pane-mode target root via common root, not repo root
  • fix(user-config): reject default_model/default_effort values containing colons
  • fix(no-sleep-poll): make hook quote-aware to eliminate false positives and fix unspaced ps|grep
  • fix(pane-mode): align stamp side with compare side using _mux_git_common_root
  • fix(tg-relay): truncate raw text before escaping in audit preview
  • fix(tg-relay): loud failure on control-command dispatch drift
  • fix(supervisors): env-var overrides for poller/watchdog binaries to stop test stub bypass
  • fix(cli): add focused –help for mux raw and mux config
  • fix(no-sleep-poll): make quote stripper escape-aware for backslash-escaped quotes
  • fix(user-config): reject nickname/config_dir/prompt_file values containing colons
  • fix(tg-relay-tests): correct vacuous backslash-boundary fixtures to use real backslash
  • fix(test): make run.sh exit code explicitly reflect failed counter
  • docs: update stale (qa)/(live) suffix descriptions to (role - nick - basename) format
  • docs(session-modes): scope value-gate summary to filing vs promotion correctly
  • docs: retire AGENTS.md content; make it a symlink to CLAUDE.md
  • test(tg-relay): cover XDG_STATE_HOME log-path default and 0700 dir creation
  • test(explore): add e2e SIGTERM-driven respawn test for explore-context-renewal
  • test(run.sh): cover process-leak-detection branch when suite already fails
  • test(poll): isolate _MUX_EXPLORE_STATE_GLOB in discover-agent-panes tests
  • feat/issue 1140 caucus mode
  • feat(explore): /handover skill + supervisor-based context rebirth
  • feat(tg-relay): self-register /agents and /idle via setMyCommands on startup
  • feat(qa): add watchdog to revive a skipped self-rearm
  • fix(launcher): export MUX_MODE for every role in an internal path
  • refactor(relay): collapse team/duo backend resolvers into _mux_resolve_backends
  • refactor: run adhoc supervisor stty sane per child exit, not per idle tick
  • docs: dedupe session identity/locks explanation into an internal document
  • docs(explore): keep issue bodies delivery-only, strip discussion history
  • docs(self-critique): stop unverified “unrelated” dismissals and small-fix avoidance
  • feat/issue 1058 per backend default model effort
  • test(cycle): cover _mux_run_merge_release rc=2 lookup-failure branch
  • test(tg-relay): cover indexed-role pane defaulting and dead-pane refusal
  • test(foreground): direct coverage for local-driver QA/explore/live launchers
  • qa: add a value gate for strong-tier findings
  • test(tg-relay): cover audit log escape, preview, sha256, line composition
  • feat(adhoc): retire mux next-loop for tmux driver; rebirth via supervisor
  • feat: give QA mode its own shared/personality-qa.md fragment
  • fix(statusline): render effort level verbatim instead of coercing to high
  • fix(test): unset ambient MUX_USER_NAME in fallback-username test
  • fix(poll): parse session name once per relay-poll (re)start
  • fix(adhoc): guard local-driver worktree reuse against live sessions
  • fix: reject unrecognized modes in mux mode-dispatch chain
  • fix: lock _mux_persist_prompt_profile read-modify-write
  • fix(relay): resolve duo reviewer pane backend to review, not dev
  • fix: team/duo non-satellite launch prints session name for non-interactive callers
  • fix: reject adhoc/qa “with” satellites under mux.driver=local
  • fix: route live tokens through curl -K - stdin config, not argv
  • fix: enforce primary-worktree adhoc singleton across drivers/backends
  • fix: add .mux-root fallback to an internal path bootstrap via shared resolver
  • fix: collapse tg-relay per-update extraction to one jq call
  • fix: scan ps once per _mux_agent_status invocation
  • fix: renumber adhoc-protocol Core rules list to close gap at item 10
  • fix: escape backticks in mux help so it stops executing ‘mux next-work’
  • fix: apply native-Claude launch env via builtins, not env argv
  • fix: add mux quota to help text output
  • fix(gitbash): add duo mode token to mux-gitbash-launcher
  • fix(adhoc): reap orphaned agent child when supervisor is killed
  • fix(relay): enforce plan-forward dedup guard on live comment entrypoint
  • fix: guard mux-launcher against bash <4.3, document the floor
  • fix(docs): correct broken anchor to session-modes mux.driver section
  • fix: teach worktree-ownership guard to detect live local-driver sessions
  • fix: wire _relay_substantive_handoff_file into gh-issue-comment-file
  • fix: gate-check reviewer-pane fallback branches on @mux_mode (duo=1, team=2)
  • fix: enforce project-locality for explore/qa/live pane-mode
  • fix: move tg-relay log out of /tmp into per-user state dir
  • refactor: render only the runtime driver’s branch via {{MUX_DRIVER}} includes
  • refactor(relay): dedupe local-driver state helpers into shared mux_local* functions
  • refactor(relay): dedupe team/duo session-start notify into shared _mux_notify_session_start
  • refactor(qa): extract _mux_qa_session_name shared helper
  • refactor: dedup team/duo worktree preparation into _mux_prepare_role_worktree
  • refactor: dedup team/duo backend-cap validation + repo_root resolution
  • refactor(session): extract stale-session reuse branch into shared helper
  • refactor(quota): collapse _mux_quota_render_line to a single jq pass
  • refactor(relay): collapse mode-templated worktree/slot helpers
  • refactor(user-config): fast-exit _mux_load_user_config when env pre-set
  • refactor(relay): memoize _mux_is_windows/_mux_resolve_driver process-invariants
  • refactor: extract duplicated interruptible-sleep idiom into shared helpers
  • refactor(next-work): reuse stale-lock scan’s issue fetch to halve gh calls
  • refactor(relay): memoize gh label create in lock/raw-report ensures
  • refactor: extract shared fork/exec helper for native launch branches
  • refactor: extract shared placeholder-branch resolution in cycle.sh
  • refactor(test): extract shared gh label-state-machine mock
  • refactor: thread group date into _release_flush_group
  • refactor: extract single-backend dispatch into shared helper
  • refactor: rename notify_shuke to notify-user; pane-local envelope
  • refactor(relay): dedup cwd/repo-root resolution into _mux_resolve_launch_context
  • perf: collapse statusline.sh per-field jq calls into one pass per JSON doc
  • perf: cache pane target in _tmux_send_literal_to_pane
  • docs(adhoc): fix pre- 3-segment worktree path in an internal path
  • docs(install-topology): document built-in @include fallback tier
  • docs: fix stale test/mux-regression.sh reference in CLAUDE.md
  • docs(adhoc): fix false ‘no pane’ claim in rebirth-local for tmux-hosted adhoc
  • docs: correct mux gitbash link target to mux-gitbash-launcher
  • docs: add duo verb to user-guide Commands reference
  • docs: align README QA cadence description with cycle-count model
  • docs: correct MUX_NOTIFY persistence — env-only, not user.conf
  • docs: surface adhoc –worktree/–no-worktree flags in mux help
  • docs: correct an internal document Copilot-wiring contradiction
  • docs: list duo-dev.md/duo-review.md as prompt-override filenames
  • docs: stop attributing duo-dev rebirth to mux next-loop
  • docs: add –worktree/–no-worktree to adhoc command synopsis blocks
  • docs: document {{MUX_BACKEND_TIER}}/{{MUX_DRIVER}} @include path substitution
  • docs(cli): list qa-state-dir verb in mux help output
  • docs: add duo to MUX_NOTIFY suppressed session-start list
  • docs: cite _tg_reply function instead of stale line number
  • docs: drop stale user.conf removal-timeline framing
  • docs(readme): drop stale install-time prompt-rendering claim
  • test(duo): cover session-start failure cleanup and start-notify
  • test: cover Codex delivery-confirmation predicates in tmux-send
  • test: cover mux remove-worktree’s five error/validation branches
  • test: cover _mux_merge_user_backend_entry default-nickname-override dedupe
  • test: cover statusline.sh extra_usage=true rendering branch
  • test: cover worktree prep linked/containment guards for duo and team
  • test: cover _mux_reuse_or_fall_through return-code remap
  • test: cover –worktree/–no-worktree adhoc CLI flag parsing
  • test: cover mux qa-state-dir CLI dispatch wrapper
  • ci: bump actions/checkout v4 -> v7
  • test: cover _relay_issue_number_from_branch fallback path
  • test: cover _mux_link_legacy_mode_credentials migration bridge
  • test: cover format_tokens million-scale (m) branch and k/m boundary
  • test(launcher): cover –repo flag error branches and success path
  • test(launcher): cover duo-dev/duo-review role dispatch end-to-end
  • test: cover satellite co-launch success path in single-backend dispatch
  • fix/issue 1063 reply index prune paneid
  • fix(border): pad space before right-aligned locator so basename doesn’t hug the border
  • fix(duo-dev): inline start-relay-poll in poll directive so idle polling actually starts
  • fix(relay): keep skills copy in sync on symlink-less platforms
  • fix(relay): give role prompts a built-in @include fallback root
  • refactor(relay): route all Developer↔Planner traffic through the Reviewer hub
  • refactor: extract with-token arg-splitting into shared helper
  • refactor(release): drop redundant ‘-beta’ suffix from tags and plumbing
  • docs(review): correct diff base, batch merge flow, trim reviewer prompts
  • docs(plan): trim planner prompt — dedup checklist/workflow, cut over-explained TG mechanics
  • docs(adhoc): dedup rebirth mechanics to a single canonical spot
  • docs(explore,qa): drop three redundant restatements
  • docs: propagate the Reviewer-sole-hub topology into docs + strong-tier fragment
  • docs: update pane-border section for basename+pane-id format
  • docs(readme): add duo mode to session-mode overview
  • docs: fix worktree paths to 4-segment layout in README + adhoc-protocol
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • Update document: switch to live-specific personality include
  • fix Add shared personality-live configuration file
  • test: cover duo-mode branches of cycle.sh dispatch helpers
  • test: align live-mode personality assertion with personality-live include
  • ci: send 1-in-6 ci.yml runs to self-hosted runner via run_number modulo

v0.92.1-beta … v0.91.6-beta (2026-06-30)

Section titled “v0.92.1-beta … v0.91.6-beta (2026-06-30)”
  • feat: pane border shows basename + pane id; drop pane id from agent chip
  • refactor: retire next-run, split rebirth into mux next-work + mux next-loop
  • docs(test): document CI-as-root container gotchas in test/README.md
  • add .gitignore
  • test: structural env-scrub so direct single-file runs are hermetic

v0.91.5-beta … v0.90.0-beta (2026-06-29)

Section titled “v0.91.5-beta … v0.90.0-beta (2026-06-29)”
  • feat: move issue-to-issue blocking onto GitHub native dependencies
  • feat: canonical subagent templates + claude-kind native render
  • fix(,): harden local-driver Dev against relay-poll spin and self-kill
  • fix(test): default MUX_TEST_JOBS=2 on Git Bash to bound commit limit
  • fix(qa): re-anchor _qa-local-supervisor:117 breadcrumb to mux-agent-launch:430
  • docs: an internal document walk-through + slim user-guide telegram section
  • docs: remove dead bare-URL alias from next-run vocabulary
  • docs(user-guide): document mux.autoStart opt-out in team auto-start section

v0.89.6-beta … v0.88.0-beta (2026-06-28)

Section titled “v0.89.6-beta … v0.88.0-beta (2026-06-28)”
  • feat(agents-short): add concision-rewritten prompt set for A/B test
  • feat(agents-short): re-slim prompt set + add style-mirror include
  • fix(gitbash): quote launch-script paths so backslashes survive execution
  • fix(duo-dev): re-enter cycle after a refine-only wake
  • fix(adhoc,test): refine-only re-entry + run.sh agent-pid leak
  • refactor(review): dedup implementation-merge flow in review.md
  • fix/issue 826 align tmp mount msys fstab
  • chore(agents): promote slim prompt set to shipped default

v0.87.4-beta … v0.87.0-beta (2026-06-27)

Section titled “v0.87.4-beta … v0.87.0-beta (2026-06-27)”
  • feat(startup): unify seed prompt to run mux next-work; migrate team planner
  • fix(startup): strip stale refining label when releasing orphaned lock
  • fix(poll): kill orphan pollers via pidfile backstop + MSYS-robust argv scan
  • fix(gitbash): path normalise on every runtime emission site
  • test(gitbash): guard MSYS test-fragility classes (§4/§6/§7)
  • feat(agents): add shared concision fragment to all modes

v0.85.2-beta … v0.84.0-beta (2026-06-25)

Section titled “v0.85.2-beta … v0.84.0-beta (2026-06-25)”
  • feat(relay): add mux next-work server-side selection directive
  • feat(live): add thinking gate + thin-ticket form to curb over-eager editing
  • fix(adhoc-local): terminate backend on context renewal so supervisor restarts
  • refactor(adhoc): adopt mux next-work + collapse always-on-cycling.md selection prose
  • perf(launcher): trim relay tool schema via global –disallowedTools drop set
  • docs(review): state CI-gate purpose, add no-CI and legacy-failing-check latitude

v0.83.9-beta … v0.83.7-beta (2026-06-24)

Section titled “v0.83.9-beta … v0.83.7-beta (2026-06-24)”
  • docs(duo): move post-merge teardown from Dev to Reviewer
  • test/issue 783 stub fixture helpers
  • test(lint): add stub-coverage static guard for subprocess bin calls

v0.83.6-beta … v0.83.1-beta (2026-06-23)

Section titled “v0.83.6-beta … v0.83.1-beta (2026-06-23)”
  • fix(statusline): hold last value during current_usage null window
  • fix(relay-poll): route poller pid/log scratch through MUX_POLL_DIR
  • ci: run matrix jobs in per-job containers for isolation
  • test(mux-qa-local): replace exec sleep 300 fake-launch barrier with killable wait loop
  • test: replace silent sleep-then-assert race patterns with _settle_until
  • test(tg-relay): drop export of fake TG creds in favour of subshell-scoped assignment

v0.83.0-beta … v0.81.8-beta (2026-06-22)

Section titled “v0.83.0-beta … v0.81.8-beta (2026-06-22)”
  • feat(relay): add mux.autoStart git config; fix -n on local driver
  • feat(relay): show pane cwd in top pane border to identify active project
  • fix(skill): branch next-run on role capability, name duo Dev mode
  • fix(tg-relay): resolve install root through symlink chain
  • fix(relay): reset pi pane context with /new instead of /clear
  • docs: add proprietary LICENSE and copyright headers (SHUKE LABS LTD)

v0.81.7-beta … v0.81.6-beta (2026-06-21)

Section titled “v0.81.7-beta … v0.81.6-beta (2026-06-21)”
  • feat: export session repo as GH_REPO into spawned agents + add mux repo
  • feat: one-shot post-merge branch cleanup (mux branch cleanup)
  • feat: add mandatory repo-hygiene gate to reviewer charter
  • feat(review): sanctioned CI-outage merge path on local-green evidence
  • feat(relay): accept tmux pane-id (%NNN) as a send-tmux target
  • feat(test): add MUX_TEST_CORES core-limited CI-parity mode
  • fix(test): add per-script timeout backstop and kill bare long-sleep barriers
  • fix(end-cycle): reset without –force after a squash-merged PR
  • fix(cycle): end-cycle tolerates detached HEAD from branch cleanup
  • fix(relay): mux issue ready releases assigned_to lock
  • fix(qa): reap orphaned QA agent when local supervisor is killed
  • fix(test): cap in-group parallelism via MUX_TEST_JOBS
  • refactor(relay): rename tmux_send_path_to* helpers, drop stale TODO
  • refactor(worktree): drop slug path digest, project name as final path segment
  • refactor(review): make CI-outage merge fragment cause-agnostic and generic
  • ci: gate workflow jobs behind CI_ENABLED to pause Actions minutes
  • refine: correct issue body in place, not only via comment
  • test: assert first line of all heading-bearing shared fragments
  • test: restore parity with PR –repo injection
  • ci: route workflows to self-hosted runner via RUNNER_LABEL var

v0.81.5-beta … v0.80.0-beta (2026-06-20)

Section titled “v0.81.5-beta … v0.80.0-beta (2026-06-20)”
  • feat(duo): add 2-agent duo mode (dev plans+implements, independent reviewer)
  • feat(config): read mux user settings from git config
  • fix(qa): launch initial QA child in local supervisor on startup
  • fix(trust): normalize Windows trust key to C:/… form
  • fix(qa): key wake state per-repo to stop cross-repo collision
  • fix(poll): route duo idle poll-wake to developer pane
  • fix(pi): make launched pi workers functional
  • refactor: unify repo slug resolution into a single source of truth
  • docs: instruct agents to run context renewal bare (no pipes)

v0.79.6-beta … v0.79.1-beta (2026-06-19)

Section titled “v0.79.6-beta … v0.79.1-beta (2026-06-19)”
  • fix: normalize Windows paths in prompt profile registry to prevent format mismatch
  • fix(tests): isolate env vars that cause context-dependent test failures
  • fix(local-driver): stamp pane title from supervisor on every child spawn
  • fix(local-driver): adhoc supervisor termination and failure backoff
  • fix: test_start_live_does_not_attach_prefix_longer_sibling fails with unknown backend codex
  • fix(tests): isolate ambient mux driver state

v0.79.0-beta … v0.75.1-beta (2026-06-18)

Section titled “v0.79.0-beta … v0.75.1-beta (2026-06-18)”
  • feat(adhoc): primary-worktree mode via git config mux.adhocWorktree
  • feat: add structured GitHub issue automation helper
  • feat(local-driver): add QA runtime state + wake inbox delivery
  • feat(local-driver): add foreground supervisor + file-handoff for adhoc mode
  • fix(explore): use MUX_BACKEND_NICK for refine lock in pane mode
  • fix(qa): make sweep angles and filing/promotion contract tier-aware
  • fix(docs): align dev-tier-weak routing and tier docs with base dev workflow
  • revert: drop per-mode models map consumer
  • feat/issue 676 local driver phase1

v0.75.0-beta … v0.73.0-beta (2026-06-17)

Section titled “v0.75.0-beta … v0.73.0-beta (2026-06-17)”
  • feat: add pi as a first-class backend kind
  • feat: use prompt profiles for runtime homes to avoid cross-repo prompt overwrite
  • feat(statusline): show active_backend from gateway response as nick

v0.72.1-beta … v0.71.5-beta (2026-06-16)

Section titled “v0.72.1-beta … v0.71.5-beta (2026-06-16)”
  • feat: statusline shows active backend nickname (MUX_BACKEND_NICK)
  • fix: escape jq variable names for Git Bash compatibility
  • fix: strip CR from jq output in backends.json loader for Windows
  • fix: env-gate Windows jq workarounds in backends loader
  • fix: make jq calls deterministic on Windows native jq
  • docs(an internal path): clarify that ‘act on it’ means open the ticket
  • Revert: escape jq variable names for Git Bash compatibility
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’
  • Merge remote-tracking branch ‘origin/main’

v0.71.4-beta … v0.71.3-beta (2026-06-15)

Section titled “v0.71.4-beta … v0.71.3-beta (2026-06-15)”
  • fix: deliver send-tmux by real window index, not hard-coded window 0
  • fix: cap per-suite virtual memory in test/run.sh to prevent OOM

v0.71.2-beta … v0.67.0-beta (2026-06-14)

Section titled “v0.71.2-beta … v0.67.0-beta (2026-06-14)”
  • feat: realign gateway integration with AQG selector contract
  • feat: scrub operator-shell ANTHROPIC_DEFAULT_*_MODEL in launcher
  • feat: fast-forward placeholder branch to origin/<default> after end-cycle
  • feat: codify What/Where/Evidence body template for raw-report tickets
  • feat: collapse Planner startup probe into mux startup-state
  • fix: normalize MUX_ANTHROPIC_GATEWAY to scheme+authority before exporting ANTHROPIC_BASE_URL
  • fix: route gateway_selector backends through AQG, not direct to vendor
  • refactor: drop dead direct-Anthropic statusline quota path
  • docs(qa): add secrets and sensitive-value safety rules
  • docs: reconcile gateway precedence with shipped gateway_selector routing
  • feat/issue 643 release stale locks

v0.66.0-beta … v0.56.0-beta (2026-06-13)

Section titled “v0.66.0-beta … v0.56.0-beta (2026-06-13)”
  • feat: list agent panes grouped by project
  • feat: add light Anthropic gateway integration point
  • feat: disable Claude Code prompt suggestions in agent homes
  • feat: route role-targeted delivery by pane identity
  • feat: display pane ids as #N in agent labels and /agents output
  • feat: key gateway statusline quota by backend nick
  • feat: per-account statusLine usage-cache key
  • feat: replace backends.conf with backends.json
  • feat: tier the explore prompt by backend strength
  • feat: consume per-mode models map at agent launch
  • feat: gate named-session reuse on per-role pane health check
  • fix: silence merge-release lock removal when label already absent
  • fix: start Controller panes in the main repo checkout
  • fix: validate Anthropic usage payloads before rendering quota
  • fix: write Claude trust to per-role state file
  • fix: drop an internal path prefix from agent-prompt tool references
  • fix: unset ANTHROPIC_AUTH_TOKEN in statusline cache-read tests
  • fix: consume unified gateway quota shape (agent-quota-gateway)
  • fix: harden bg-run regression stub and tmpdir cleanup
  • refactor: collapse refined lifecycle into ready/blocked
  • refactor!: make auto-start the default for adhoc/team, drop –auto-start, add -n

v0.55.3-beta … v0.55.0-beta (2026-06-12)

Section titled “v0.55.3-beta … v0.55.0-beta (2026-06-12)”
  • feat: add mux quota CLI for per-backend Anthropic usage
  • fix: spawn dormant poller at QA cycle cap so idle reports standby
  • fix: surface failed lock release during merge as a warning
  • refactor: drop vestigial :auth_var suffix from _MUX_CLAUDE_VARIANTS
  • docs: fix交涉对象从planner改为reviewer
  • Merge remote-tracking branch ‘origin/main’

v0.54.1-beta … v0.49.0-beta (2026-06-12)

Section titled “v0.54.1-beta … v0.49.0-beta (2026-06-12)”
  • feat: migrate pre- settings.json symlinks to per-home real files
  • feat: auto-provision statusLine for Claude relay agent homes
  • feat: fast-exit provisioning when desired state already present
  • feat: add bg-run background command runner with pane-wake notifications
  • feat: raw-report intake label preferred during refinement
  • feat: tier developer prompt by backend strength
  • fix: kill orphaned native agent child on Windows session close
  • fix: use minimal_path helper instead of hardcoded PATH in tests
  • fix: /idle replies “no agents are idle” instead of “no agent sessions running”
  • fix(test): wrap jq to prevent MSYS2 argument mangling on Git Bash
  • fix(test): export MSYS2_ARG_CONV_EXCL globally instead of jq wrapper
  • fix: unify Claude auth on ANTHROPIC_AUTH_TOKEN
  • docs: state shared GitHub account; author is not an ownership signal
  • docs: gate ready-promotion on quality, not authorship
  • refactor/issue 552 remove registry

v0.48.0-beta … v0.42.0-beta (2026-06-11)

Section titled “v0.48.0-beta … v0.42.0-beta (2026-06-11)”
  • feat: route Git Bash agent launches through winpty with Windows config paths
  • feat: replace idle TG heartbeat with on-demand agent status queries
  • feat: add mux issue <state> <number> to set refinement lifecycle atomically
  • feat: emit progress lines to stderr during install
  • feat: load 7-field tier entries in backends.conf, warn on 8+
  • feat: expand Claude settings payload with UX-quieting keys
  • feat: emit launch progress lines on stderr
  • fix: launch native agent CLIs via scoped MSYS=enable_pcon instead of winpty
  • fix: spawn native agent CLIs as a forked child so Cygwin allocates a ConPTY
  • fix: converge .credentials.json symlink placeholder to hardlink
  • fix: atomic merge-time lock label + release helper
  • refactor: route test minimal-PATH through minimal_path helper
  • refactor: use mux issue for lifecycle transitions in agent protocols
  • refactor: strip lifecycle labels before adding target in _mux_issue_set_lifecycle
  • refactor: retire Claude credential-sharing framework
  • docs: teach relay agents hybrid inline-vs-file message format
  • Merge remote-tracking branch ‘origin/main’
  • feat: deliver short inline text via tmux bracket-paste
  • fix: launch tmux panes with non-interactive login shell
  • docs: document MUX_GH_REPO and MUX_GH_LIST_LIMIT overrides

v0.40.0-beta … v0.36.18-beta (2026-06-09)

Section titled “v0.40.0-beta … v0.36.18-beta (2026-06-09)”
  • feat: support CLAUDE_CODE_OAUTH_TOKEN for native Claude backends
  • feat: self-promote low-risk refined tickets to ready
  • feat: tier-scoped QA prompt via backend tier flag
  • feat: provision hasCompletedOnboarding in Claude relay homes
  • fix: add –limit to gh issue list scans in claim/refine/poll paths
  • fix: capture pane id with brace-free #D to stop %#pane_id leaking into TG
  • fix: cache mux_bin shims at deterministic path to stop per-call leak
  • docs: add push-only signals invariant to relay rules
  • docs: mark plan template sections omittable, ban filler sections
  • feat/issue 494 hardlink credentials
  • test: cover pending-claim disarm timeout path in cycle.sh
  • test: assert –limit forwarded to gh issue list in _relay-poll

v0.36.17-beta … v0.36.3-beta (2026-06-08)

Section titled “v0.36.17-beta … v0.36.3-beta (2026-06-08)”
  • fix: allow symlinked prompt fragments under the user config root
  • fix: back up real skills dir instead of rm -rf on symlink conversion
  • fix: pass –repo to gh in issue claim helpers so they work outside the repo
  • fix: force UTF-8 locale before curl so notify_shuke sends CJK
  • fix: resolve pane ID to session name before writing tg-relay sticky file
  • fix: restore ‘no relay PR in flight’ gate in mux gate-check
  • fix: forward –repo to gh in cycle, issue-comments, tmux-send, and relay-poll
  • fix: fall back to tar when rsync is absent in install working-tree mode
  • fix: scope TMUX_TMPDIR to match test TMPDIR so gitbash tmux sockets resolve
  • refactor: dedup identical context-renewal claim rollback helpers
  • docs: align mux help and markdown with ‘with’ and –session syntax
  • docs: fix stale test/mux-regression.sh reference in README
  • test: add direct unit tests for single-pane session helpers
  • test: make working-tree launcher invocations portable to Git Bash
  • test: cover _mux_start_live new-session paths (create/reuse/legacy-raw)

v0.36.2-beta … v0.35.5-beta (2026-06-07)

Section titled “v0.36.2-beta … v0.35.5-beta (2026-06-07)”
  • feat: add mux gate-check for team-mode pre-cycle gates
  • fix: remove orphan trap clear from next-run
  • fix: export relay issue-comment helpers and guard against missing ones
  • fix: include explore and adhoc in notify_shuke role suffix
  • fix: drop Escape from /clear keystroke block (issue)
  • refactor: extract shared single-pane session-start helpers
  • docs: guard issue edits against in-flight delivery in explore and qa agents
  • docs: clarify force-replace timing for explicit mapped-backend credentials
  • docs: remove mid-document redundancy in explore.md and qa.md
  • chore: remove ‘mux start .’ adhoc alias

v0.35.4-beta … v0.30.1-beta (2026-06-06)

Section titled “v0.35.4-beta … v0.30.1-beta (2026-06-06)”
  • feat(issue-383): team-start pane roster + reply anchor; refuse unresolvable replies
  • feat: scan for merged PRs at QA startup instead of waiting
  • feat: route tmux session targets through central _tmux_session_target helper
  • feat: symlink-first credential linking with graceful Windows fallback
  • feat: add behaviour-change doc-update check to shared ticket checklist
  • fix(issue-382): index notify_shuke by pane id; exact-match session targets
  • fix: answer TG-origin directives over Telegram per-message across all modes
  • fix: resolve notify-qa-merge slug from main repo, not caller worktree
  • fix: anchor notify_shuke sender identity on $TMUX_PANE not active pane
  • fix: dismiss autocomplete menu before submitting /clear in renewal
  • fix(session.sh): anchor tmux session targets with exact-match marker
  • fix: anchor remaining an internal path tmux session targets with exact-match marker
  • fix: anchor send/config tmux session targets with exact-match marker
  • fix: link credential/config files from bare canonical home
  • fix: extract unified pane-title API to prevent title corruption
  • fix: drop TMUX guard from _mux_set_pane_title_full (regression)
  • fix: work around tmux 3.6b set-option not supporting = prefix
  • fix: route set-hook through _tmux_session_target_no_prefix
  • fix: stop install.sh honoring inherited MUX_MODE for adhoc prompts
  • fix(team): chain splits on pane ids so pane order matches roles
  • fix: route bare session-form show-option/split-window/select-layout/list-panes targets through _tmux_session_target helpers
  • fix(test): isolate TMUX in credential-sharing launch tests, name aborting tests
  • fix: guard _mux_parse_session_name against empty session name
  • fix: mkdir canonical home in _mux_link_canonical_credentials for write-through
  • fix: harden /clear→/next-run blind sequence with double Escape + double Enter
  • docs(issue-385): document with satellite syntax in README and session-modes
  • docs: clarify QA can also promote refined tickets to ready
  • docs: require explore agents to echo issue URL + final labels
  • docs: document MUX_NOTIFY=0 knob for silencing session-start notifications
  • ci: run tests in parallel across 4 matrix groups
  • test: dedup tmux -P pane-id mock into shared helper

v0.30.0-beta … v0.28.0-beta (2026-06-05)

Section titled “v0.30.0-beta … v0.28.0-beta (2026-06-05)”
  • feat(cli): add `with` syntax for co-launching satellite agents in the same session
  • feat: allow QA and explore to mark self-raised tickets as ready
  • feat: ensure skills symlink at agent launch time
  • fix: drain backlog-refinement queue before idle polling in adhoc mode
  • fix: auto-symlink config.toml for codex variants from canonical home
  • fix: replace Chinese QA notification strings with English
  • docs: update CLI reference for with syntax

v0.27.1-beta … v0.26.2-beta (2026-06-04)

Section titled “v0.27.1-beta … v0.26.2-beta (2026-06-04)”
  • feat: unit tests for an internal path library modules
  • fix: resolve symlinks before computing .mux-root marker path in launchers
  • fix: replace regex-based _mux_parse_session_name with tmux option reads
  • fix: clear error message when jq is missing
  • fix: refuse elevated Git Bash before creating an unreachable tmux session
  • refactor: remove tmuxinator dependency, unify on tmux-native driver
  • refactor: split mux-regression.sh into topical modules with parallel execution
  • fix: launcher fallback for Windows Git Bash where symlinks degrade to copies

v0.26.0-beta … v0.23.2-beta (2026-06-04)

Section titled “v0.26.0-beta … v0.23.2-beta (2026-06-04)”
  • feat: support custom codex and copilot nicknames in backends.conf
  • feat: proportional validation guidance for code-changing agents
  • feat(qa): redesign qa-poll lifecycle — cycle-boundary restart, pane liveness, merge wake
  • docs(adhoc): replace CI wait with local test run on Linux
  • install: fall back to copy when ln -snf fails on Windows
  • install: fix tar symlink extraction failure on Windows

v0.23.1-beta … v0.18.0-beta (2026-06-03)

Section titled “v0.23.1-beta … v0.18.0-beta (2026-06-03)”
  • feat(qa): push wake signal after reviewer and adhoc merges
  • feat(qa): add lazy 5h/35h cadence poller
  • feat: mark adhoc/team mode label on every merged PR
  • feat(install): auto-discover an internal path scripts instead of hardcoded link list
  • feat: explore/qa/live default to pane mode when inside tmux
  • feat: clean up auto-generated changelog format
  • feat: notify-qa-merge delivers wake signals to pane-mode QA
  • fix: list single-pane adhoc and qa sessions as routable in tg-relay
  • fix: list single-pane explore sessions as routable in tg-relay
  • fix: drain full refine queue on idle instead of stopping after one ticket
  • fix: resolve next-run via PATH before falling back to worktree an internal path
  • refactor: dedup relay/qa poller and issue-candidate filter
  • docs(agents): add high-visibility role boundary rules to QA and explore prompts
  • chore: remove auto-merged label from workflows

v0.17.10-beta … v0.15.3-beta (2026-06-02)

Section titled “v0.17.10-beta … v0.15.3-beta (2026-06-02)”
  • feat: support *_CLAUDE_BASE_URL via backends.conf 6th field
  • feat: make –auto-start configurable via user.conf with CLI override
  • fix: reconcile single-agent pane title at poll start
  • fix: exec-wrap agent launch so SIGHUP reaches node on pane close
  • fix: remove self-deadlock from an internal path prompt-wait and strict-verify
  • fix: bump TMUX_PANE_READY_TIMEOUT default from 30s to 60s
  • fix: launch team tmux panes via initial command, drop prompt-wait
  • fix: link next-run into ~/.local/bin on install
  • fix: guarantee blank line on every @include boundary in compiled prompts
  • refactor: decouple GitHub issue comment posting from send-tmux
  • refactor: remove _mux_normalize_framework_labels entirely
  • refactor: run qa from repo root, drop the dedicated qa worktree
  • docs: drop stale ‘dedicated worktree’ from README qa diagram
  • Fix pipe handling in jq merge to prevent SIGPIPE errors
  • test: update stale planner-prompt assertion to match
  • test: cover team tmux launch shape and launch-script cleanup
  • chore: remove dead _tmux_wait_for_pane_prompt and orphaned helpers

v0.15.2-beta … v0.11.0-beta (2026-06-01)

Section titled “v0.15.2-beta … v0.11.0-beta (2026-06-01)”
  • feat: add adhoc idle refine pass
  • feat: auto-normalize framework labels once per repo at session launch
  • feat: add self-critique prompt checkpoints
  • feat: keep explore issue bodies current
  • feat: add manual-wake qa mode
  • fix: harden next-run handoff delivery
  • fix: recover leftover placeholder branch; fix upstream-tip fallback and reuse notice
  • fix: guard end-cycle against destroying unpushed/unmerged branch work
  • fix: stop relay-poll tests from firing real Telegram messages and tidy idle format
  • fix: infer adhoc relay-poll target
  • fix: resolve symlinked relay poll helpers
  • fix: use body-file for refine issue comments
  • fix: align planner gate check wording
  • refactor: clean up shared prompt fragments
  • docs: prefer merge-first sync on pushed branches
  • docs: tighten adhoc and explore prohibitions
  • Fix adhoc slot lock prompt rendering
  • feat/issue 242 explore agent updates issue body directly
  • feat/issue 240 extract shared prompt fragments
  • Add test-writing guide for agents (test/README.md): in-process vs subprocess mocking, no-real-network rule
  • feat/issue 244 show active ticket number in dev pane title
  • Fix relay-poll session cleanup
  • Prefer –body-file for multiline issue updates
  • Rename relay-poll to _relay-poll
  • fix/issue 282 stable worktree lifecycle
  • feat: add raw launch mode
  • feat: auto-regenerate CHANGELOG.md after each beta tag
  • feat: require ready before delivery claims
  • feat: rename raw mode to live
  • feat: expand shared agent prompt includes at render time
  • feat: provision Claude settings for relay homes
  • fix: ramp relay poll intervals
  • fix: remove stale runtime path hints from agent prompts
  • fix: scope test runner tmpdir
  • fix: route notify_shuke through wrapper script
  • fix: expose relay helpers as mux commands
  • fix: reorder explore ready handoff
  • fix: route raw sessions through tg-relay
  • fix: add relay-poll idle heartbeat routing
  • docs: rewrite README with product hook, concept diagram, and prerequisites
  • docs: refresh README quick start
  • docs: clarify raw mode ask-vs-act boundary
  • docs: add session modes overview
  • docs(explore): add pre-question self-check to ban redundant asks
  • docs: add live mode to README overview
  • adhoc: verify work branch exists before resuming after next-run handoff
  • fix/issue 224 interrupted adhoc renewal rollback
  • feat: make backend registry user-configurable
  • feat(issue-68): add explicit credential sharing
  • feat: add auto-start launch prompts for issue 170
  • fix: sweep issue-146 prompt user-name literals
  • fix(issue-156): stop next-run waiting on its own pane
  • fix: honor leading #session parsing in tg-relay
  • fix(issue-173): disallow AskUserQuestion for claude launches
  • fix(issue-176): anchor next-run pane resolution
  • fix: launch adhoc sessions as tmux commands
  • fix: terminate Claude auto-start prompts after MCP config
  • docs(issue-154): drop installed-command bin prefixes
  • docs(issue-162): add QA agent RFC
  • docs(issue-177): audit relay docs
  • docs: clarify reviewer merges via CLI, not GitHub auto-merge
  • docs: align explore label guidance
  • docs: require docs impact in plans
  • feat(issue-148): add beta release automation
  • fix: support multi-backend team launch
  • fix: wait for shell prompt before tmux launch send-keys
  • fix: make relay merges worktree-safe
  • fix(issue-113): harden tmuxinator team start
  • fix: launch explore sessions as tmux commands
  • docs: issue-149 reframe agent role prompts