-
v0.16.0 Stable
released this
2026-09-11 11:47:38 +08:00 | 2 commits to main since this releaseChanges since v0.15.1
Full commit-level changelog (v0.16.0, since v0.15.1)
Added
- merge 协调器决策核心(N-01 资格/排序/单步动作)+ 单测
- WORKSPACE_ENV_PASSTHROUGH——daemon 级密钥透传产品化(refs #3706 遗留①)
- 截图 tab 默认可见性反转(screenshotsClosed → per-session screenshotsOpened)
- claim.sh 成功后自动 provisioning 钩子(claim_provision 配置 + --provision-only,#3750)
- verify DAG branch 段独立 marker,phase-6 语义收窄(渐进披露 batch-3,#3745)
- 渐进披露 batch-2 — verify Phase 5 子节细分 + implement/review-artifact 分节标注 (#3734)
- skills 参数渐进披露选择器 name:section + verify/review-code 分节标注 (#3722)
- 收编批量清场为 salvage-worktrees.sh(preserve-or-abort)
- 五个轻量门工作流迁 2026-08-29 + setup-bun 删 setuptools apt——全舰队上烘焙镜像
- artifact-index-check.sh 三 guard 校验器 + artifact-index-guards 退出 producer/verifier 白名单 (#3699)
- remove hover archive button from session rows + layout invariance guard
- a11y/e2e-suite/sast 迁移烘焙镜像 2026-08-29——删每轮 apt/pip/浏览器缓存,verify 步骤防退化
- 注入预算 batch-2 — session-conflicts.sh 四源预检机械化、session-scope-guard 退出全部白名单、caps 棘轮下调
- workspace-go 镜像(Go 1.26.0 + pnpm 11.11 + TD-427 工具)——gitea pod 试点配套
- 机械下沉 — claim-provision 一键链 + archive-run 归档收敛 (#3642)
- 待答问题入口全局化——顶层 /questions 路由 + 状态条待答指示器 + 队列页目录聚合(Closes #3636)
- 台账 v1.2 — round-2 零阻断率列 + gate-ledger 面板 (#3633)
- 门禁台账 gate-ledger + furlough 准入条款 + retrospective 对称化 (#3607)
- ceremony-budget v1.1——CI 分钟成本面板 + 首轮 PASS 率周列 (#3621)
- review-code Phase E 内联化接入 — post-inline-comments runner + 技能文本 (#3600)
- gen-run-bundle 归档生成器 — 手工 JSON/摘要/校验循环收敛为单命令 (#3604)
- ceremony 双尺台账 report-only 进 CI — 次数(治理触发)/时间(效率)分账 (#3603)
- review-inline 工具 — findings JSON → Gitea PR 行内评论 (#3599)
- 侧边栏标题条与标题栏统一 + 会话面板/工具条交互打磨
- sink compact.md preserve ritual to L0 mechanism + contract test (#3588)
- question-queue web UI — list/single/batch reply + shell badge + SSE (#3564, #3531 N-03)
- compaction summary first-block identity injection (identity card + 工件索引 CORE links, graceful degradation) (#3587)
- degradation_level through repo/service/routes + aggregation + emitter
- pending-queue server face — batch-reply + presence-ping httpapi (#3563, #3531 N-02)
- 规则 GC 登记表 + 预算门 GC 报告 + retrospective 分层问句(ruling item 2/3)
- N-01 question 人环同步降级链核心(#3562)
- heartbeat check j — daily north-star ledger (product-only share / rules KB / L1 tokens), observation only (#3568)
- review round budget 2/3 (routing yaml review.max_rounds, #3567) — replaces round-5 cap + round-4 escalation; residual findings flow to TD registry
- claim.sh WIP cap — refuse new claims above 5 concurrent session worktrees (exit 4, env-overridable)
- 预算门纳管 skill catalog —— verbose 目录度量行 + cap 12,288B + CRLF 修正
- 分组头点击切换项目 + 键盘回归钉住(#3505 C3)
- 面板塌缩 0 边缘 hover 唤出锚点(#3505 C2)
- 项目竖条可隐藏 + 全局入口搬迁(#3505 C1)
- 全局过滤升级跨项目(#3504 B3)
- 侧栏其他项目可折叠分区(#3504 B2)
- /global/session 转正(#3504 B1)
- Home 全局最近会话(#3504 Phase A)
- 注入预算 batch-1 —— builder 白名单 11→5、explorer 立白名单、stash-discipline 全退(L0 已强制)、caps 重定并翻转 enforce
- L1 注入预算门(报告模式)+ headless 轮询改尾部探测 + 注入预算 ruling 草案
- 2933 N-04 usage anomaly views (top-N orgs + over-budget groups)
- 2933/N-05 BYOK key 审计视图(/api/admin/keys 掩码元数据 + /admin/keys 直出掩码表)
- show-more interactive row, virtualization slot + 18-locale i18n (#3525)
- cross-org admin workspace list + force sleep/soft delete + admin.* audits (#3518)
- 2933 N-02 组织/订阅/订单列表与状态
- cap expanded date groups at newest 7 + show-more item (#3524)
- probe 原语公共化 + health-scanner + metrics 双 gauge
- 3297/N-03 expose workspace health on /api/billing/usage and /billing dashboard
- 2933/N-01 admin shell + platform admin authz
- 新会话缺省模型优先取最近使用(recent 优先于配置)
- 3297/N-01 workspaces health 三列 migration + 5 态归约 + updateHealthSample 写路径
- 新会话页隐藏右侧审查面板与文件树
- 项目选择器上移至新会话视图,替换目录指示文本
- 新建会话 composer 挂载项目选择器,补 session.new.project.* i18n key(TD-036 projects 消费落地)
- 新建会话视图增加 worktree 下拉选择——提取 resolveNewSessionWorktree 统一默认值解析
- 侧边栏会话行悬停显示图钉按钮,点击切换置顶/取消置顶
- recycle locked workspace workloads via sleep-to-zero + annotation-restore (#3462)
- detect edited verdict comments via per-PR timeline (#3472)
- add compact-preserve lint gate + fix stale re-read references (#3455)
- in-process staleness watchdog recovers sessions wedged in generating (#3426)
- consume workspace-locked appeal envelope (N-05, #3347)
- TD/TRC-F006 embed review_history digest in archive bundle (schema + runs-layout norm)
- N-03 禁免费唤醒强制 — 4 入口 403 WORKSPACE_LOCKED + 付费豁免
- merge-gate archive-bundle presence check
- N-03 guidance 契约扩展 + compact.md 指向反转
- N-02 Trigger A/B 混合阈值判定
- N-02 pool-lock scanner + 3-day release + flag flip (#3344)
- N-01 compaction.max_context_tokens 配置基座
- N-01 workspaces lock state machine + FREE_POOL_CAPACITY config + migration (#3343)
- reserve appeal hook on QUOTA_EXCEEDED 403 details (N-04, #3314)
- replace 3 appeal entries + desktop-feedback disposition (N-03, #3313)
- app appeal pages /appeals/new + /appeals (N-02, #3312)
- /new-session 无项目时渲染引导态替代静默跳转 (#3331)
- in-app banner channel end-to-end — /api/notifications routes + SaaSLayout banner + i18n (N-04 #3306)
- provision+7h expiry-warning sweep scanner (N-02)
- workspace lock notification hook (N-03)
- notification core abstraction (SPI + manager + table + counter)
- agent-config agents_md rule whitelist for primary sessions (#3326)
- appeals API — POST proxy-issue + GET own-only receipt (N-01)
- console 账单页购买入口接线(#3301 N-04)
- pending 订单 72h 过期清扫器 + 收银台过期态渲染/轮询停止(#3299 N-02)
- 运营确认到账端点(admin token + 审计 + 限流)
- N-03 orphan PVC sweep scanner + orphan/live gauges + reclaim runbook (#3309)
- N-02 idle-delete purge PVC reclaim wiring (dry-run default + audit + counter)
- show usage-limit quota badge on provider rows in Web UI
- expose provider usage-limit quota state via GET /provider
- N-01 PVC reclaim foundation (kube-client deletePvc/listPvcs + daemon endpoints + DaemonClient)
- PUT rotation (key_version+1) + create/rotate verify integration (D2)
- tail-4 masking + value_prefix widen + billing keys delegation to SecretService
- add provision and DEFAULT_ORG fallback Prometheus counters
- N-06 API Key 管理 UI — org settings section + workspace mount point (app)
- N-05 runtime-adaptive hot injection (Docker exec / K8s patchEnv) + lifecycle semantics
- secret verify endpoint + provider adapters (three-state + balance hint)
- provision env seeds workspace-scoped secrets merged over org scope
- same-name model cross-pool failover on usage-limit 429 (#2910)
- derived-artifacts freshness gate (TD-256)
- optional limit/offset page window on GET /instance/maintenance sessions[]
- switch new-session entries to page navigation, remove DialogNewSession, i18n/a11y/feedback closeout (#3239)
- revive /new-session page with dialog-equivalent provider stack (#3238)
- log error envelopes server-side keyed by requestId (#3220)
- per-worktree codegraph index hooks in worktree create scripts (#2561)
- expose per-session progress heartbeat (stepCount/lastStepAt) in GET /session responses
- app UI 供给 XL workspace 档位(规格卡+类型+徽标,#3158)
- session git read-only disclosure + background codegraph init (#3136, #3137)
- A worktree-directory warn + list pagination metadata
- billing page login indicator user+org (item-3)
- US-05 workspace list fields + rename UI (item-2)
- US-12 workspace delete with 7-day grace (item-1)
- N-02 per-workspace 镜像选择——供给链支持镜像参数/profile 映射 (#3152)
- N-01 档位表扩展 — K8S_SPEC_TIERS env 扩展 + XL 档(16C/32Gi/50Gi)
- retire fill/stall convergence machine + restructure sidebar tests
- sync Gitea orgs in billing OAuth callback (#3142)
- per-group range query on expand — badge/rows single source
- session.list range query (from/to + rangeCount + id-ascending) + SDK regen
- pre-commit scaffold-parity enforcement + scaffold migration note (#3072 phase 3)
- A 加固 — envelope key 分类 + 发布臂观测 + 双臂回归钉死
- redirect Kind/Feature to DAG pipeline (TD-388) + gate_trim keep_gates guard (TD-390)
- waiting derivation + unread backend authority
- retro escape-rate single metric + derived-ticket governance (#3061 phase 1)
- Kind/MVP mode + analyze-dag clarification/backfill + D4 fanout cap (#3061 phase 1)
- MCP start counts into usage_events at provision time (#3066 / #2972 L3)
- playwright MCP sidecar for web-profile workspaces (#3056-#3060)
- probe concurrency mode + eventDropCount observation + messagesMs percentiles
- per-MCP-profile workspace image selection (#2972 L2)
- wire chunked assembly into run + drop-signal tests + equivalence snapshot + memory baseline
- hot-path sanitizeSurrogates + pure/chunked assembleMessages + single-spike observation
- assembly stage trace + repeatable probe + root-cause learning report
- plan-gated MCP profiles (#2972 L3, item 3)
- per-workspace minted git tokens + chromium-era memory floors (#2954)
- reference tool attachments via /file/ image-store
- lifecycle-managed scratch worktrees (registry + node_modules symlink + sweep backstop)
- G3 产能闸 — roadmap WIP 上限(filing.work-ticket-wip-cap)+ implement/verify 邻近配额 + 清单/模板配套;顺修 #3008 漏改的 POST-6.2 与 verification §8 登记册语义
- filing/sprint-mode 立案降档开关 — verify Phase 5.5 sprint 期 registry-only 冻结升格(yaml filing 块 + routing 规则语义节)
- issue-reaper — TTL exit for unclaimed TD fragments (REST, stateless notice state, dry-run default, replay tests)
- infra-heartbeat g 节 — issue backlog pulse (census + 7d ratio + TD share, sustained-3d alert, deduped issue filing)
- registry-first TD filing + claim-to-promote + BF/FT family umbrellas — new L1 rule ticket-lifecycle.md, verify 5.5/5.55/5.56 rework, Phase D INFO lands as registry row
- MCP runtime layer image (bun + codegraph + playwright/chromium on workspace-base) (refs #2951, #2972)
- per-reviewer findings slots for dim_split>1 — findings-{DIM}-r{k}.json + reviewer_slot/reviewer_count schema fields, fixes latent multi-reviewer write race, enables #2996 step-1a overlap analysis
- quantified legacy-route sunset criteria — retro-proposed, human-landed archive endpoint for the frozen roadmap route (4 metrics + atomic landing + reversal)
- verify Phase 2.0 consumes the precondition-gate fingerprint cache — close the cross-skill dedupe gap (cache-hit GREEN transfers to typecheck/lint DoD; fresh GREEN is the single local execution; fail-closed on red/absent/--no-cache after env change)
- productize hostAliases + NodePort Service into workspace provisioning (refs #2954, #2972)
- DAG breadth mechanisms — coverage matrix + exclusion ledger + dag.route.preflight (P1) + probe nodes (P2 方案2)
- COMP-10 preview part UI + expand/error/truncated + a11y + abort-on-dispose (WI-013)
- workspace NetworkPolicy isolation — default-deny + proxy/probe ingress + DNS/public egress (#2893)
- COMP-09 on-demand part fetch with backoff + idempotent merge (WI-012)
- COMP-08 preview-aware reducer + slimmed-drop skip resync (WI-011)
- COMP-06 messages after-cursor + limit clamp (WI-010)
- COMP-05+07 slim emission wiring + observability (WI-008)
- fixed-window rate limiter on OAuth gate + BYOK key CRUD + mock-pay (#2893)
- COMP-03 DeltaTruncator pure function truncateDelta (WI-007)
- Gitea OAuth flow for billing page auth (#2893)
- requireAuth guard on billing API endpoints (#2893)
- BYOK key management UI on billing page — list/add/delete with provider dropdown (#2849 iter-2)
- COMP-01 PartSlimmer pure function slimPart (WI-006)
- workspace display names, status badges, rename API, enhanced list (#2851)
- usage dashboard + workspace list + sleep action on billing page (#2852)
- COMP-04 SlimConfig — SseSettings slim fields + env parse/clamp/WARN + transition switch (WI-004)
- COMP-02 PartTable.version additive migration + nextVersion/currentVersion helpers (WI-005)
- COMP-11 schema additive + dropped BusEvent + SDK codegen + golden (WI-003)
- workspace repo initialization — deepen history, git identity, package manager auto-install (#2850)
- BYOK provision-time env injection — org secrets decrypt to workspace container env (#2849)
- ADR-0006 slim-emission latency baseline bench (WI-002, 2731-sse-source-slimming)
- migrate keep-mergeable to server-cron git transport
- retire status-sync event triggers for server-cron poller (#2813)
- session retention policy (#2726) — derived-session GC, 256KB part cap, post-GC VACUUM
- Octopus Schemas L0 merge gate + archive-pre validator (ticket #2727)
- wire remaining task-tool failure paths into circuit breaker
- event-loop lag observability + SSE load shedding + oversized recurrence detection
- SSE serialize-once + oversized stub aggregation + replay delta coalescing
- invalid-tool deep governance — repair feedback specificity + session-level cumulative cap
- K8sRuntime — ContainerRuntime over Kubernetes (PVC + Deployment, scale-to-zero sleep/wake, env contract parity) + CONTAINER_RUNTIME selection
- infra-heartbeat network-GC race detector (#2579 reactivation trigger)
- keep-mergeable bot (ready-to-merge label -> update-branch) + turbo typecheck cache
- polished billing + cashier UI (brand shell, plan cards, status pills, pay states)
- self-serve purchase loop — plans page, orders lifecycle, mock pay provider, billing profiles
- WORKSPACE_DEFAULT_SPEC floor override for workspace provisioning
- dedupe mechanical checks across review-code/verify/CI (gate fingerprint cache, verify CI-result reuse, per-job bench/bundle gating)
- infra-heartbeat silence monitor — runner units, image inventory, fleet heartbeat, queue staleness
- bootstrap workspace containers with the provisioning repo (clone + instance boot)
- unify auto_approve/bash tiers into permission indicator
- persist workspace session stores in named volumes + multi-source telemetry scan
- reviser session-resume via task_id — the preferred Phase C survival path
- session-worktree lifecycle + checkout hijack audit
- workspace proxy token handshake (POST /api/auth/workspace-token + ?ws_token cookie bootstrap)
- optional CONTROL_PLANE_WORKSPACE_URL_TEMPLATE for per-workspace subdomain endpoints
- capacity-driven stage compaction + Phase C revision survival
- Tier 1 working-notes — cross-stage narrative memory
- e2e-suite mid-suite idle re-gate + visual 90m budget
- retro pre-flight injection loop + telemetry SINCE_DAYS ms fix
- expand task circuit breaker to typed validation failures
- L0 mechanical-green gate + round-2 delta scoping for review-code
- subagent pause semantics with wait|cancel strategy (#2470)
- status-bar PermissionIndicator (external_directory tier switch)
- maintenance mode / drain API (#2469)
- ops broadcast + per-session ack mechanism (#2472)
- type-aware empty state for subagent sessions
- navigate to adjacent session after deleting active session
- session permission tier override API
- message screenshot deep-link — linkify refs and force-open tab (#2475)
- status-sync concurrency group, regex sink-down, env mediation (#2436)
- add session state machine field (Session.state) (#2467)
- closable screenshots tab + restore + forceActivate contract entry (#2474)
- lightbox wheel zoom/pan/dblclick/keyboard + error state (#2473)
- per-service log level control in core/util/log
- hoist session context menu to list layer + stabilize virtual item identity
- restore a11y gating — independent paths-filtered workflow
- WebSocket tunnel for /ws/* through the control-plane gateway
- auto-refetch screenshots list on tab re-activation in error state
- add GET /api/workspaces list route proxying daemon
- embed screenshots browser tab in session side panel
- N-03 — FileTree 面板 /ws/{id}/file/* 只读文件树
- N-02 — workspace Terminal panel PTY/WS over /ws/{id}/pty
- N-04 — 列表页「打开」导航指向 /workspaces/:id viewer
- N-01 — register /workspaces/:id route + viewer page skeleton
- claim-first mandatory + session_guard default-on
- add read-only screenshots browsing (backend routes + web page)
- land DAG ticket pipeline routing v2 (opt-in)
- establish ticket ownership signals and remediate audit-process findings
- /health route + workspace-base Dockerfile HEALTHCHECK (#2298)
- wire prod daemon build and add deploy artifacts
- add octopus/workspace-base image for workspace provisioning
- migrate uploads storage to worktree-scoped .octopus/uploads
- confine ScrollView thumb below sticky header (#2225)
- unify settings dialog scrollbars to ScrollView overlay style
- migrate SelectV2 trigger to native
- per-provider firstChunkTimeout override for SSE cold-start grace
- progressive delayed/timeout hint in session Suspense fallback (#2172)
- show empty-state placeholder in MessageTimeline
- hallucination-detection lint for reviewer findings
- add worktree-guard protected-manifest + safe-check (#2139)
- Phase A tool-availability probe + bash deny docs (#2126)
- scope-drift detector prototype (#1858)
- add duplicate-session guard (#1989)
- migrate review/audit findings + producer drafts + roadmap draft contracts to Tier 1 local (#1988)
- land artifact-index root-cause fix (GAP-1 rule+agents_md, GAP-2 close-actor, MINOR banner)
- migrate review-code findings to Tier 1 local (#1988 MVP)
- add Tier 1 local run storage foundation (layout + schemas + boundary rule)
- add Size/ML intermediate tier between Size/M and Size/L (#1966)
- two-phase contract lifecycle draft->frozen, Chunk 0 as contract-validating MVP (#1967)
- 决策卡 YAML 块试点(模板+skill+镜像同步)
- Project board 列 = pipeline 阶段状态机 — pipeline-stage-move
- archive-on-close — 生命周期 = 工单生命周期(关闭即归档)
- artifact index protocol (## 工件索引) with CORE re-read set — issue is the context-recovery entry point
- slim requirements + iteration-plan templates to card format + add SLIM-BUDGET gates (CLR-4.9, DOC-7.9)
- slim design template to decision-card format + add SLIM-BUDGET gate (CLR-7.6)
- session-scope-guard L1 rule + headless owner check
- pin sast.yml to dated docker-linux label (#1815)
- automated ## 当前状态 row sync via Gitea Actions (#1833)
- evidence-driven review-gate pruning (#1834)
- S/M artifacts stay in the issue, wiki only for L (#1832)
- Gitea issue templates embed process skeleton (#1831)
- JIT decomposition — coarse chunk cards + expand-next-chunk (#1830)
- size tiering S/M/L — depth modulation + oversize escalation (#1829)
- type-driven process routing — route table + injected rule + gate Step 0 (#1828)
- test:changed reuses process-isolation list (single source of truth)
- test-timing JSONL + FLAKY-ABSORBED retry marker (#1835)
- WI-003 docm toast dispatch + WI-006 i18n (18 langs) (#1799)
- frontend Word doc upload (whitelist + card + system-reminder)
- Word attachment upload backend + review revisions (#1744)
- isolate grouped + adaptive TEST_SHARDS for local parallel runs
- backend Word upload validation + extraction + frontend DocumentAttachmentPart
- add fine-grained issue-checklist sync points (PR/review/CI)
- ban git stash in worktrees, enforce WIP-commit alternative
- baseline/flaky failure filing, auto_approve migration, traceability + audit sync
- wire kanban config into Info schema + enable in octopus.jsonc
- add SSE replay buffer and client resync
- expand KanbanToolHook triggers + slow fallback poll (#1630)
- track tech debt as Gitea issues — retire tech-debt.md + wiki page (#1612)
- extend issue traceability to production exits + wiki back-links (#1605)
- WI-009 thin wrapper + E2E + NFR validation
- WI-008 CLI handlers + formatPublish + skills.ts registration
- WI-007b publishAll multi-remote aggregation + exit code decision table
- kanban follow-ups — KanbanToolHook wiring + docs + Gitea API mock infra (#1601)
- WI-007a PublishService.publishRemote + ContentSyncer
- progressive issue checklist sync at 3 pipeline milestones
- Kanban board auto-sync (#1530)
- core components — CredentialLoader, SafetyVerifier, GiteaAdapter, IntegrityVerifier + tree-SHA spike
- octopus review status CLI + project board patterns (#1561)
- foundation contracts — HostAdapter interface, PublishResult/Summary/Opts types, RemoteEntryV2/OverlayConfigV2 schemas, HostError/PublishError, executePost
- merge review dimensions 13→10 (code) + 16→10 (design), add risk tiers, remove wiki status pages
- merge 14 roles → 4 (Producer/Reviewer/Verifier/Tool), add ROLE_ALIASES safety map
- merge 26 skills → 18 (bugfix/refactor/port into implement, 4 reviews into review, receiving-code-review into review-code Phase C)
- L0/L1/L2 rule layering — trim main-session injection to 5 L1 rules
- wire workspace provisioning to orchestration daemon
- mandate cross-linking for grouped Gitea issues
- make web app subpath-aware via BASE_URL
- epic auto-checklist + epic body template (#1517)
- merge gate CI workflow + checklist parser (#1517)
- checklist-watcher service for ticket state progression (#1517)
- review skills output to PR comments + commit status (#1517)
- add _shared/gitea-{read,write}-patterns.md (#1505)
- add /experimental/session/timestamps endpoint + v1 SDK method
- add test:changed script for affected-test selection + lower test-parallel default shards to 3
- bounded queues, stall guard, self-loop prevention
- SSE config schema + post-bind address capture + backpressure spike
- WI-004 — prune CLI safety defaults
- WI-003 — diff decision-support output
- wave 1 — scaffold skeleton, readiness overlay, migration guide
- add offline fallback in generate.ts when models.dev unreachable
- fix error messages + create migration/E2E scripts
- add POST /api/workspaces agent provisioning endpoint (X-Agent-Token auth, fork orchestrator contract)
- 创建工作区补名称输入 + 工作区列表加搜索/筛选/排序
- 工作区规格从 S/L 两档扩展为 S/M/L 三档,含价格/权益文案校对与「推荐」角标
- add org management entry cards to Dashboard, link to OrgMembers and WorkspaceAccess
- 开通流程织入计费感知——Signup 规格卡加价格与计费说明、确认摘要加计费行、WorkspaceList 新建区加配额提示(占位示例价)
- 注册/开通多步向导(个人 vs 组织双路径、规格选择、确认页),接入首页与动线
- 交互式动线接入营销首页(首页→登录→控制台→唤醒→进入 全链路)
- 官网营销首页 story(hero/能力/流水线/工作区/CTA,真实截图素材)
- storybook 默认深色主题(canvas + docs 容器)
- 中文化全部界面并新增控制台首页(Dashboard)
- 6-page SaaS control plane interactive prototype
- add DiffService, PruneService, MultiRemotePullCoordinator
- add GiteaClient, PullService, OutputFormatter, RemoteListService
- metering routes + scheduled jobs mount (WI-008)
- query orchestration + budget tracking + scheduled jobs (WI-005..007)
- data foundation + core computation services (WI-001..004)
- LSP per-event 日志降级为 debug 并加回归测试
- route assembly (ADR-0007), healthz, metrics, NFR tests
- SecretRoutes, UsageEventService, UsageEventRoutes + API tests
- SecretRepository, UsageEventRepository, SecretInjector, SecretService, CircuitBreaker
- secrets+usage_events schemas, migration, audit union, AES-256-GCM encryption
- spike reports — codebase recon, drizzle compat, token calibration
- content integrity, smoke, version, audit, and integration tests
- closure scanner, manifest, exclude-list, merger integration, customize-octopus migration, unit + perf tests
- add BuiltinLayer class and generate-builtin script
- add overlay module — Layer, CacheResolver, LocalLayer, CacheLayer, SkillFilter, PluginGuard, OverlayMerger
- idle scanner + wake transition UI
- reverse proxy, last-active middleware, lifecycle API
- wildcard routing, cookie auth, daemon client
- error codes, daemon auth, lifecycle endpoints
- add OrgMembers, WorkspaceAccess, route registration, CI gates
- add Dashboard and WorkspaceListPage
- add SaaSLayout, shared components, SignupWizard
- add RouteGuard, MarketingHomepage, LoginPage
- add PlatformAdapter, AuthContext, BrandMark foundation
- sync scaffold template from .octopus
- hot-reload agent files via config watcher
- add GatewayAuthService + gateway route dispatch + public path extension
- add MembershipService + AuditService + membership routes + webhook handler
- add auth routes + GiteaAdminClient + OrgProvisioningService
- add PassThroughIdentityProvider + AuthService (mode A + mode B)
- add DB schema + SessionService + UserService + rate-limit extension point
- 状态图标改用 TooltipV2 并移出锚点,统一 tooltip 体验
- complete workspace orchestration daemon
- reduce session title font to 15px
- add subtle bottom border under session titlebar
- 会话右键菜单重命名改为弹出窗口,与会话标题栏一致
- enlarge session title font and enable text selection
- add pin toggle to session title toolbar
- control-plane foundation — schema, JWT, gateway, error system, CI, security
- unify octopus brand logo across all packages
- bump session title font from text-sm to text-base
- retire tabs.tsx, extract types/utils, remove TabsProvider
- retire tab strip, add TitleSlot, migrate all consumers
- add persistedBatch localStorage batching + preload hint plugin
- regression guard tests (ASRT-001 through ASRT-012)
- KaTeX CSS extraction + bundle analysis
- font-display swap, preload inlining, sprite lazy loading
- dynamic en dict loading + bundle-size verification
- convert routes to lazy() + clean entry.tsx
- add manualChunks for vendor bundle splitting
- add verification tests (bundle-size + E2E fallback)
- refactor marked.tsx for lazy shiki loading
- add shiki-loader module with 4-state machine
- add CLI orchestrator and vite config conventions
- add baseline capture and comparison modules
- add build manifest plugin and data collection modules
- add measurement foundation utilities
- pin-to-tab existence contract
- resolve keybind conflicts + add startup validation + collapsible shortcuts list
- show merge-pr as locked stage in auto-approve dialog
- italicize stage descriptions; apply prettier printWidth=100
- section-label toolbar, rename title, list stage names in status
- pin Select All toolbar and stageless toggle outside the scroll region
- show tooltip for truncated session titles even when global tooltip is off
- integration tests, NFR gate validation, snapshot updates
- frontend adapts to new {stages, stageless} model
- tool layer adapts decide() boolean API + destructive param + SDK regeneration
- new AutoApprove type, decide() pure function, config/session schema migration
- frontend consolidation — unified settings page + dialog simplification + i18n
- snapshot injection + decision simplification + SDK deprecation
- redesign review panel toolbar
- frontend image upload, 3-state render, backward compat
- add image upload, retrieval, and session cleanup backend
- brighten status bar indicator text to text-base on hover
- set session message panel bg to #18191b in dark mode
- unify file tree panel bg to #1b1c1d in dark mode
- darken v2 bg-layer-01 token to #1b1c1d in dark mode
- add prototype skill for throwaway vs evolutionary disposition
- darken file tree panel background in dark theme (#2d2d30 → #1e1e1e)
- widen centered message column (800→896px, 1000→1080px) and add a full-height subtle hairline border overlay to delineate the chat column from side gutters
- map structural panels to VS Code shade hierarchy
- align dark theme tokens with VS Code Dark+ panel colors
- add IconButtonV2 xlarge size, enlarge rail buttons for visual balance
- hide close button on inactive tabs, move new-terminal button to far right
- unify panel scrollbars via thin-scrollbar utility
- distinguish sidebar group headers from session items
- solidify dark hairline tokens to #282828
- emit --color-v2-* bridge declarations
- cascade session-drag to shrink review→file-tree→collapse with reverse spring-back
- file-tree panel auto-collapse with live spring-back on reverse drag
- add V2 design system reference documentation
- remove 6 dead source files and update tests
- CSS catch-all verification + test updates for V2 migration
- V2 migration for sidebar project, shell, workspace, items, and 6 subcomponents
- V2 migration for layout, home, and search pages
- V2 foundation verification + CSS token cleanup
- session root migration, global CSS sweep, test updates
- migrate session sub-components & composer docks V1→V2
- migrate high-risk V1→V2 components in session UI
- migrate Tooltip/TooltipKeybind to V2, re-route Toast direct callers
- migrate Dialog, DropdownMenu, ContextMenu, Toast to V2
- V2 theme resolution chain + ThemeProvider dual-output
- ToastV2 compliance + semgrep fix + final verification
- CollapsibleV2 + HoverCardV2 + TooltipV2 compliance
- add ScrollViewV2, ResizeHandleV2, PopoverV2
- add ListV2 virtual scrolling list + CardV2 compound container
- increase sidebar max width by 25% (0.3→0.375, 64→80)
- file-tree left border live hysteresis collapse/restore
- live cascading resize with hysteresis collapse/restore
- auto-collapse sidebar when drag handle passes min width
- barrel exports + integration verification
- implement 4 V2 blocker components
- display task completion duration on subagent cards
- keep toolbar buttons visible when search expands
- 会话面板最小宽度增加五分之一 (450→540px)
- double web sidebar minimum width (200px to 400px)
- 侧边栏会话列表工具栏新增可折叠搜索图标
- 替换左栏 Home 按钮为经典房子图标
- promote icon glyph color on hover for ghost icon buttons
- add sidebar-viewport-visual + cockpit-zones-visual parametric specs
- add viewport-presets + baseline-manager + skeleton/cross-browser specs
- add viewport-presets + baseline-manager + skeleton-visual + cross-browser-matrix specs
- add sidebar-perf + pipeline-board-perf benchmark specs
- add session-switch-lag + tab-switch-perf benchmark specs
- add PerfBenchmarkFixture + mock-backend route extension
- 侧边栏会话按 今天/昨天/本周/本月/更早 五级时间分组
- add automated tests for 4 tech-debt items (#941-#944)
- add regression + performance smoke tests
- add CDP helper + sidebar/session smoke tests
- add 4 a11y spec files (session-status, cockpit, activity-stream, sidebar) — 31 test cases matching AC
- add 5 a11y test helpers (axe-config, baseline, dark-theme, colorblind, keyboard-nav)
- auto-generate session titles from first user message
- test data factories + baseline convention + SAST job + glob verification
- CI workflow + mock backend SSE/failure injection + shared fixture
- add session context menu, long-press, rename, delete dialog, and empty states
- SessionItem memo + hierarchy CSS
- helpers + SessionRow + DateGroupHeader
- WI-009 NFR performance benchmarks (4 specs: virtualization-scale, interaction-latency, memory-stability, scroll-performance)
- integrate SessionListContainer + VirtualizedSessionList into sidebar; inject FilterInput
- add VirtualizedSessionList with custom rangeExtractor and sentinel
- add SessionListContainer with VirtualListItem pipeline
- add PinnedSection component
- add DateGroupHeader and DateGroupRenderer components
- add createCollapseState with localStorage persistence
- stabilize sortSessions with deterministic tie-breaking
- add FilterInput with debounced filter signal
- add virtualizer feasibility spike
- 列头加宽到 84px 解决 label 截断
- Home 按钮从 titlebar 迁入左 rail 底部组
- auto-collapse empty session sidebar on home, restore on leave
- cap storybook heap at 6GB, remove unused addons
- add vite /api proxy for dev
- assemble four-zone cockpit home page
- remove Show activity bar button from session page
- WI-007/008/010 FilterBar + NewActivityToast + FE test coverage
- WI-001/002 backend activity stream pipeline
- 3 technology risk validation spikes
- retry, unread, failed status tiers
- subtree-active + busy status indicator foundation
- expose assignees on issue schema for collectGateItems filter
- retryFetch wrapper for 429/503 exponential backoff
- migrate direct-useParams call sites to useSessionScope
- introduce SessionScopeContext + centralise session identity
- PipelineBoard container + StageTooltip + StageFilterBar (WI-007/009)
- add frontend hooks + cell components (WI-005/006/008)
- backend core — aggregation + events
- add SessionCard + SessionListView container components
- implement frontend base (useActiveSessions, SessionStatusIndicator, SubAgentTree)
- backend ActiveSessionAggregator + HTTP route + SSE SessionObserver
- frontend Needs You section + hook + 3 cards
- backend aggregator + routes + action handlers
- SSE service, API routes, integration tests
- add shared contracts & services foundation
- add chat min-width + rail auto-hide in middle breakpoint
- test infrastructure baseline — module reset, SAST CI, Playwright benchmark framework
- add header with title and close button to DialogNewSession
- replace /new-session page with DialogNewSession popup
- reduce session-list sidebar min-width from 244 to 200
- always-flex-row shell + remove mobile drawer for VS Code parity
- unify review tab style with V2 titlebar tabs and move file-tree toggle to review toolbar
- left-position session-colored busy spinner; right static progress ring in session tone
- show busy spinner for ongoing background tasks in web UI task card
- rewrite auto-approve dialog with data-driven stage registry
- set_auto_approve stage validation (WI-006)
- add stage registry types, store, validator, loader, config schema
- add browser-debug skill + playwright MCP for interactive Web UI debugging
- replace selected project tile border with VS Code-style edge bar
- add MetadataExtractor for 6 image formats (WI-001)
- replace analyzeImage STUB with real interpretImage LLM call + rename visual-review → image-interpret
- redesign composer send button as minimal monochrome circle
- integrate ImagePreprocess into session/llm.ts stream+streamNative
- image preprocessing pipeline — metadata, model-matcher, preprocess service, config, fixes
- split status indicators into status bar, move update button from titlebar
- render unpinned tab titles in italic
- bold font-weight for active titlebar tab
- render compaction block as a shell-command block via BasicTool
- consolidate compaction to one shell-style block (3 prompts -> 1)
- collapse compactor summary messages by default in UI
- widen user message max-width to 95%
- remove ch upper limit from user message max-width (min(90%, 80ch) -> 90%)
- widen user message max-width to 90% of list width (min(90%, 80ch))
- cap user message max-width at 80% of message list width (min(80%, 80ch))
- promote worktree feature to stable with default enabled
- integrate server search into UI — error states, highlight, NewHome hook integration
- add search core engine — SearchHighlight + constants + useServerSearch hook
- three-zone rendering integration + i18n keys
- add PinnedSection, HiddenSection, HideRevealButton containers + context menu pin/hide items
- add partitionSessions algorithm, PinToggle/PinIndicator/HideToggle components, HomeSessionRow integration
- WI-006 integration tests + performance benchmarks
- worktree UI indicators + empty state component
- worktree git diff branch + worktree_exists API field
- tab close (X→MRU nav), double-click pin, dim inactive, non-pinned replacement
- VS Code-style tab UX (top accent bar, x close glyph, italic unpinned, brighter active text, session-color icon with busy spinner)
- widen user message max-width by 25% (82%→102.5%, 64ch→80ch)
- integrate all components into HomeSessionRow + NewHome
- undo toast + context menu + batch operations
- infrastructure + delete/rename/archive/keyboard components
- add fixed bottom status bar
- cleanup tests + create UnifiedShell source-verification tests
- wire UnifiedShell routes + port peek/resize/mobile/autoselect
- create UnifiedShell with flex-row DOM + macOS rail padding
- add session metadata and preview hooks
- VS Code-style bottom accent tabs + fix ColorAssigner LRU fallback
- add per-session color accent + fix hover/active tab distinction
- add backdrop-filter blur to dialog overlay scrim
- hide unpinned non-current tabs, keep current tab always visible
- show context-size indicator on child session page
- show token count + percentage in prompt context button and subagent block tail
- move DEV channel badge from titlebar to bottom-left corner
- redesign titlebar tab UX
- narrow session sidebar rail 64px to 48px
- move session context button from titlebar to prompt input
- move sidebar new action to header icon, tighten list padding
- improve V2 directory picker UX
- restructure prompt input UI
- unify session list scrollbar with message list
- replace load-more button with IntersectionObserver infinite scroll
- wire home route + add test suite
- add NewHome entry component with newLayoutDesigns gate
- add core UI components + CSS token bridge
- add home page data layer (types, constants, helpers)
- add Visual Reviewer role and skill for image delegation
- wire configAwareServerPoolLayer into serve bootstrap
- complete visibility settings with fileTree, search, status entries
- add recently closed projects to home page
- port V2 titlebar with Home toggle, tab strip, update pill
- port layout-helpers, layout-tabs, enhance tabs context
- port 19 missing V2 icons from opencode
- integrate ServerPool health check into workspace routing
- add MultiServerConfig, ServerPool, RemoteWorkspaceAdapter
- auto-expand sidebar when no projects exist
- add code-mode.ts MCP tool adapter + registry registration + 24 tests
- add OpenAPI adapter module (4 files, 1,079 LOC verbatim port)
- port 11 stdlib modules verbatim
- add stdlib/promise.ts (verbatim port)
- port interpreter model.ts + runtime.ts verbatim
- enforce symbol-level diff (SRC-COMP) + reverse coverage (B5) in port gates
- add CI workflow, enable gitea-sync, improve port/kickoff skills
- MessageTimeline V2 (1858L), ReviewPanelV2 + state, SessionFileListV2, SessionRetry, DialogHeader/TitleGroup
- add namespace check to CI check job
- make self-checks evidence-producing + add review round-3 escalation
- createTimelineProjection, createSessionLineage, SessionReviewV2 ancillary, TerminalPanelV2
- constructMessageRows, reuseTimelineRows, SessionReviewV2 core, reviewDiffKinds
- add M2 stage distribution + M3 review rework metrics
- TimelineRow types, sessionPanelLayout, peek(), SortableTerminalTabV2
- add M5 explore/execute ratio to retrospective telemetry
- add token telemetry (M1+M4) to retrospective skill
- port CSS for directory picker V2, integrate SettingsServerScope + SettingsServerPicker into dialog-settings
- add settings V2 components — server picker, model search, directory picker, WSL settings model, add-server probes
- delegate Phase B synthesis to Synthesizer Worker
- add keybind tooltip helpers
- add V2 command palette dialog component and CSS
- add command palette model and session search
- add formatKeybindParts to command context
- port file-tree-v2 module, selectors, attachments DI, build-request-parts
- port V2 theme CSS tokens, closed-tab stack, tab memory, session events, tab preview popover, and home session helpers
- port utils, hooks, and UI v2 foundation
- port SDK v2 export path foundation
- add virtual-scroll file tree v2 engine
Changed
- 侧栏合并列表 SSE 突发 300ms 合并窗口——createCoalescedMemo 前沿直通+尾沿合并(#3725)
- changes 作业免 checkout——PR files API 替代 fetch-depth:0 克隆
- 移除侧边栏会话列表"显示更多(剩余XX条)"——展开分组即完整渲染
- review r1 — split question/batch.ts, NotFound-only ended-detection, log trim, cap+backstop tests(#3563)
- delete-session server fallback navigates to server-scoped session route
- session.new command navigates directly to /{dir}/session
- titlebar new-session fallback button navigates directly to /{dir}/session
- retire sizing subsystem + gate_trim meta-process (#3072 phase 3)
- archive 4 legacy production skills + review-artifact targets 5→2 (#3072 phase 3)
- retire 7 legacy stage-registry stages + 5-mirror sync (#3072 phase 3)
- extract revive helpers (review R1 STY 6.8)
- atomic skill rename review->review-artifact, dag-analyze->analyze-dag (#3061 phase 0)
- per-file :memory: DB isolation via AsyncLocalStorage scope (TD-327) (#2798)
- explicit panelRole for interactive consumers (TD-286) (#2515)
- extract pure panel-interactive predicate with behavioral truth table
- extract scroll-view geometry, align drag mapping, harden boundaries (code review r1-r3, #2225)
- split sidebar-session-item.tsx under 200 lines (#1877)
- extract DeleteConfirmDialog + RenameSessionDialog from action-menu (#1877)
- address review round 1 — #1969 attribution + schema invariants + doc clarity
- 产物与规则分离 — 模板瘦身(规则迁移 + 残留删除 + checklist/mirror 同步)
- dedup MIME normalize+sniff; add SEC-F003 guard regression tests
- un-isolate 8 files via shared ManagedRuntime; isolate lifecycle polluter; root-cause-tag isolation list
- move bench test files to test/bench/
- rewrite sv assertions as structural contracts
- move viable src-testing orphans into src/ + fix TD guards
- merge app dual test-file pairs into single .test.ts
- eliminate app tests residuals (colocated single-root)
- consolidate control-plane tests into tests/ single root
- colocated/single-root cleanup for core, containers, ui
- consolidate test dirs — migrate src colocated + tests → test/ (#1711)
- eliminate packages/octopus tests/ track into test/overlay/
- extract createSessionWithRetry helper + deterministic unit tests
- remove redundant tests across packages
- split publish.ts functions, classify clone errors, real tag tests (#1634)
- migrate .artifacts/ consumers to Gitea wiki + package-local storage
- cache session timestamps within 30s TTL (TD-192)
- replace JS-side Map aggregation with DB-level GROUP BY in UsageAggregationService
- add DB-level GROUP BY sum queries to usage-event repository
- migrate remaining checklists/templates to Gitea paths (#1511)
- migrate checklists/templates to Gitea paths (#1511)
- migrate _shared files to Gitea paths (#1507)
- clean review-skill frontmatter .artifacts residue (#1505)
- clean up frontmatter+precondition .artifacts residue (#1505)
- migrate audit+standalone skills to Gitea (#1505)
- migrate stage skills to Gitea read/write (#1505)
- migrate review skills to Gitea output (#1505)
- move models.dev catalog to packages/octopus/vendor/
- store-first merge precedence + defensive archived filter
- 首个工作区创建从注册向导移到首次登录成功后引导——Signup 4步缩为3步,Dashboard 新增一次性引导卡(含免费额度说明),Journey 动线可点通全链路
- prune stale persisted command catalog entries via migrate hook
- extract SessionSkeleton, SessionErrorDisplay, createSessionHistoryWindow from session.tsx
- extract legacy titlebar content to titlebar-legacy.tsx
- extract ChannelIndicator to titlebar-channel-indicator.tsx
- extract V2 titlebar content to titlebar-v2-content.tsx
- extract Tauri types and constants to titlebar-tauri.ts
- extract SessionItem to sidebar-session-item.tsx
- extract SessionActionMenu and DeleteConfirmDialog to sidebar-session-action-menu.tsx
- extract SessionRow to sidebar-session-row.tsx
- extract ProjectIcon and getProjectAvatarSource to sidebar-project-icon.tsx
- extract useLongPress to sidebar-long-press.ts
- extract NewSessionItem and SessionSkeleton
- replace logo across all packages
- split General tab into Appearance/Notifications/Advanced; fix Auto Approve checkbox crash
- unify pin state on server session metadata
- extract Schema definitions from index.ts to schema.ts
- localize tech-debt registration, drop gitea issue dependency
- remove one-shot replace-urls migration script
- remove orphaned wiki-tree-sync script
- remove gitea-sync config schema, skill, rule, templates, cross-refs
- remove gitea-sync TUI command, logic, setup, tests
- close prototype/review-code contract gap
- remove cockpit home, restore original launcher page
- activity-stream 改用共享 SseDisconnectBanner
- pipeline-board 改用共享 SseDisconnectBanner
- 抽取共享 SseDisconnectBanner 组件
- activity-stream 改用共享 EmptyState(字体对齐设计系统)
- needs-you-section 改用共享 EmptyState
- session-list-view 改用共享 EmptyState
- pipeline-board 改用共享 EmptyState
- 抽取共享 EmptyState 组件
- needs-you 全空态折叠为单行消息
- make sourcemap + visualizer conditional to reduce build memory
- address R2 code-review findings (WI-001, WI-003)
- use PromptInput directly, hide token usage, expand textarea
- remove DraftTab dependency and standardize dialog UI
- extract route providers to break app/route circular dependency
- break dialog select/custom static cycle via dynamic import
- redirect legacy short /:dir/session/:id to long route
- port directory-change redirect into long (TargetSessionRoute) tree
- canonicalize sidebar session href to long (server-scoped) form
- remove redundant backend /compaction command
- merge content title toolbar into titlebar, remove redundant session title block
- extract multi-server module + add runtime validation (closes #367 #368 #369)
- split code-mode.ts into catalog module + extract helpers (closes #358)
- optimize path accumulation, add 60fps scroll benchmarks, add degraded-state console.warn
- trim body to remove dilution
Fixed
- pin pdfjs-dist 6.2.108 via root override (GHSA-hq66-cqwq-w95j)
- 归档 bundle slug 大小写对齐 schema(N-01→n-01,解锁 Schemas 门)
- N-01 绿灯时间戳字段对齐实例真实 payload(评审 COR-F001/TST-F001/F002)
- XDG_DATA_HOME 进 buildEnv 基础契约——会话/工件钉到工作区卷(refs #3706 遗留⑧)
- COST 面板静默空转修复 — 非 200/畸形响应显式抛错 + actions:read (#3762)
- align use-session-commands source assertion with #3721 composer route (BF-541/#3739)
- workspace-base 烘焙 python3——工单管线脚本硬依赖,工作区内 claim.sh 必死(refs #3706)
- audit round-1 修复——归档包生成器再生成 + claim.sh age=None 防护 + 手工接管残留退役
- 统一 lone-older 展开判定源 + fixture 正午锚定(review r1)
- perf 作业 29 failed 全景分类 skip 恢复信号(#3723/#3746)
- review-code R1 revision (5 MINORs)
- address review round-1 findings (#3738)
- 主生成流默认 chunk 停发超时 + 楔死 runner 强制注销与有界 abort(#3737)
- dev.log 启动归档轮转 + config watcher 路径与加载链对齐 (#3738)
- search-clear GC × filter append 丢成员 + pinned 段搜索过滤(TD-637/TD-642)
- changes 作业补 pull-requests:read 权限——修 PR files API 404
- round-2 residuals — unify 'pre-dispatch provider check' spelling (DUP 7.1), token (FLOW-F006), ticket-recipe seed quota clause (FLOW-F005)
- audit-process round-1 remediation (15 MINOR)
- 补 close_commit_sha(空串导致 Schemas 校验失败)
- 侧栏筛选输入框 onMount 显式聚焦(#3724)
- e2e-suite nightly 基线红 6 失败族 skip 恢复信号(#3723)
- unified-shell/composer 入口保留 /server/ 路由段(#3720,#3676 补遗)
- claim.sh 新增 takeover 子命令——死认领正规接管通道
- ceremony-budget 账本改用 origin/main(本地 main 兜底)——分支 dispatch 不再 exit 128;单测接入 CI scripts 步骤
- release 过期 locked 行前先经 daemon 回收 workload(#3657)
- 评审 round2 修订(COR2-F002 + F001 注记)
- 评审 round1 修订(COR-F001/2/3 + F006)
- InstanceState 失败不再无限期缓存——配置解析失败后可自愈
- working_notes 补 converged 布尔值(COR-R2-001)
- 真实落地 guard 执行位(上两次被 git add -A 回滚)
- bundle 过 schema 校验 + 落实 guard 执行位
- session-worktree rm 守卫 fail-open → fail-closed
- 新建会话/composer 保留 /server/ 路由段(#3676)
- sync 6 new top-level route roots from #3640 into BACKEND_ROUTE_ROOTS (#3647)
- 侧边栏显式刷新 timestamps catalog — 修 server 代理视图权威徽标不激活
- review-code round-1 修订 — 蓝图 fallback 可达 + 展开态收敛 + pinned 时间守卫 + 去 dead 字段 + 套件扩至 35 用例 + prettier
- wedge prompt_async 不再静默——startup drain + 202/409 送达语义 + pendingMessages 可见性 (#3627)
- 统一会话列表恢复 #3114 catalog 组头 + N-02 按组 range query(BF-532)
- round-2 mechanical residuals — import order, comment wording, tautological test, dirty-current coverage
- address review round 1 — bounded discovery fan-out, store cap, error surface, AC tests
- review round2 minors — 降级诊断 console.warn(孪生同款)+ import 字母序
- review round1 修复 — 徽标决策下沉纯函数 + 孪生同款防御
- a11y 回归——目录路由挂载时聚合集强制含路由目录
- sidebar all-sessions discovers non-git session directories
- 侧边栏日期分组徽标改用时间戳目录权威计数
- auto-approve.md 恢复 permission prompts 纯文本表述,修 #1887 文档守卫红 (#3592)
- gitea-api.sh Windows 下非 ASCII argv body 防呆(指引 stdin)+ runbook §6
- 评审修订 — owner 作用域默认 bootstrap 使状态通道必然 settle
- review-code R1 修订 — dry-run 记账/身份/孤儿评论修复 + 测试 + 记账行并入合成评论模板 (#3600)
- 侧边栏跨目录会话状态误报 idle — owner 作用域回查 + unknown 灰态
- defer GlobalBus listener registration to first stream pull when no abort signal (#3619)
- 截图标签默认可见不再自动唤醒会话面板列
- tooltip-v2 触发器 flex 居中,修条内图标按钮中轴偏高
- 四条标题条中轴线统一 + 窄屏审查面板工具条消失修复
- correct change-id attribution and stale 50px wording in test comments (#3591)
- update 4 stale source-verification assertions to #3505 hideable-rail markup (#3591)
- question-queue review fixes — init race, SSE tests, aria-live, batch gating (#3564, #3531 N-03)
- remove duplicate unreachable degradation test (#3587)
- review round-1 revision — DI fetch hook, race-bounded join, hard card clamp, hermetic degradation tests (#3587)
- runs bundle 对齐 schema(state enum + parent_epic 形状)(#3562)
- review-code R1 修订(#3562)
- preempt suspended question turn on new prompt + sweep waiting-question restart zombies (#3546)
- review-code r1 a11y/doc/sty findings (#3525)
- state active while PR open (archived requires close sha); set pr=3542
- parent_epic null-or-object schema; set pr=3543
- meta.state must be active|archived (schema enum); set pr=3540
- session-worktree Windows Git Bash compat — symlink stub materialization + path normalization
- dev-fresh persist + assert launch env
- normalize CRLF in message-timeline source assertions
- makeWs 工厂补三健康列 null(WorkspaceRow 跨包派生自 control-plane $inferSelect)
- guard errored session resource read in titlebar memo
- review round 1 收敛——MINOR×2 + 注释更新
- containerEnv 去早退——repo-less / git 凭据缺失路径不再丢弃 BYOK extraEnv
- test/session 源码扫描读取经 readSourceText 归一 CRLF,Windows 检出不再失配 (#3094)
- k8s runtime getStatus 回填 DB last_active_at (#3406)
- kickoff 测试 cleanup 对目录误用 0o644 剥掉 x 位,rmSync 静默失败泄漏 /tmp/octopus fixture (#3473)
- bundle state must be archived (schema enum), not closed
- 放宽 session-panel-toggles 源码校验窗口 500→600
- 展开侧边栏会话项不再因标题截断弹出 tooltip
- 新建会话页标题条静态标题 + 会话操作按钮守卫
- paginate all REST list calls to the short page (COR-F002)(#3472)
- rate-card 刷新 non-2xx 路径补节流告警(round 2 残留 MINOR)
- review-code round 1 收敛——4 MAJOR + 8 MINOR
- 接通成本观测链路——rate-card 换 models.dev 数据源 + usage emitter 插件 + daemon 容器身份注入
- workspace deployment 显式 Recreate 策略(单副本+RWO 云盘 RollingUpdate 跨节点 surge 遇 Multi-Attach 死锁,#3461)
- workspace-base builder 补 COPY script/ 修复 prepare 失败
- 同步 stressSessionHref 期望为 #1291 后的 dirSlug 形态
- workspace-base builder 补 COPY script/(3e66545b 起 prepare 钩子跑 script/husky-extra-hooks.mjs,缺失导致 bun install --frozen-lockfile 失败、main 镜像构建全断)
- 侧栏「今天」日期分组折叠状态按 workspace 目录隔离(消除跨工作区泄漏)
- /ws 代理 membership 失败路径补 gitea 仓库 owner/collaborator 授权(个人仓库回退 DEFAULT_ORG 后 owner 403)
- 测试 stub 强转经 unknown 中转(TS2352——CI typecheck 覆盖 test 目录而本地 tsgo 未覆盖)(#3443)
- round-1 review 修订 — 单监听器提升至请求级 + 预中止短路 + 超时/真实断连/awk 过滤测试 (#3447)
- proxy.ts 释放被 abort/丢弃的上游响应体,根治 SSE 槽位泄漏 (#3447)
- hard-fail wedged compactor LLM stream on inactivity timeout (#3426)
- rewrite sync.test.tsx to spyOn-namespace paradigm — order-independent, zero module-graph pollution
- tighten stash safety-floor pattern to cover git global-option prefixes (refs #3427)
- gitea-api fail→fail-with-body,让 405 变体(behind base / try again)错误体能到达 pr-merge 的分支判断(#3423)
- bound #2154 lost-resumption hangs via retry-on-fresh-fibers (FT-021)
- isolate maintenance-mode.test.ts from parallel shard load (FT #3257)
- workspace warp/SSE test mocks realigned to nested {sessionID, info} wire shape
- reuse memoized test event defs — #3095 duplicate guard fires on per-setup redefinition
- app consumers realign to session lifecycle {sessionID, info} wire shape
- session lifecycle sync events carry the wire {sessionID, info} shape
- add node 172.28.0.111 to workspace probe whitelist
- review round-2 revisions — dead export + intake race hardening (#3390)
- N-03 round-2 — close delete→wake bypass (wake entrances full lock predicate + soft-delete guard)
- review round-1 revisions — share-next watch-path null collapse + flow-test vacuous-pass fix + e2e split (#3390)
- absolute tolerance for sub-10ms baselines (FT-077)
- session.updated 广播显式携带 revert:null 键,清除前端 revert 标记 (#3390)
- N-03 round-1 review revisions — soft-delete bypass + browser envelope + paid-wake transition
- file-tree perf threshold wall-clock → CPU time (FT-055)
- auth.test.ts env snapshot/restore discipline (FT-076)
- create usage_events schema before DELETE in TD-148 groupby test (BF-084, #3357)
- repo_count 更新路径 (#3388)
- entrypoint health curl 加 -m 超时 (#3387)
- archive bundle parent_epic shape ({number} only, schema strict) (#3382)
- review-code round-1 revisions
- N-03 r1 修订(机制层表述按落地范围收敛,顺序无关)
- makeWs fixtures miss #3343 locked_at/expires_at columns (BF-085, #3369) — unblock pre-push typecheck gate
- N-02 review r2 revision — import order + mapping-failure & guard-reject tests (#3344)
- stop chunk-recovery reload from aborting navigations (#3362)
- N-02 review r1 revision — release guards + race/boundary tests + docs (#3344)
- address review-code round-2 findings (#3358)
- address review-code round-1 findings (#3358)
- verify clone non-empty + reconcile marker-frozen empty shells (#3358)
- N-01 r1 修订(负小数 clamp warn + 上界直通锁)
- N-01 review r1 revision — snapshot regeneration + tests + docs (#3343)
- replace in-test require() of src modules with static imports
- address review-code round-1 MINOR findings (#3330)
- pass translator via props to ModelTooltip (tooltip portal context crash)
- N-02 review round-1 findings (DGN/TST/TRC/COR/A11Y, #3312)
- validate GET row shape, export buildAppealTitle, lock client-abort propagation tests (N-01 review round 2)
- address review-code round-1 findings (#3331)
- GET paging collects own across shared repo; title-derived appealType; 201 shape validation (N-01 review round 1)
- address review round 3 findings (N-04)
- address review round 2 findings (N-04)
- address review round 1 findings (N-04)
- address review round 2 findings (N-02)
- address review round 1 findings (N-03)
- address review round 1 findings (N-02)
- address review round 1 findings (N-01)
- retry transient curl failures + log malformed-response body head for attribution
- review r1 修订——fetch mock 测试补齐 + 错误分类/鉴权加固(#3301 N-04)
- review r1 修订——payOrder 竞态 RETURNING 守卫 + 清扫器双驱动计数(#3299 N-02)
- review r1 修订——审计 actorId 改 nil UUID(uuid 列兼容)+ 404 文案统一 + 网关接线源断言
- N-03 review R2 revision (guard audit per-candidate + interval default no-warn) (#3309)
- N-03 review R1 revision (real-mode env test + interval validation + DISABLED value normalization) (#3309)
- #2291 items 12-14,16 — compaction status fail-safe, drop redundant legacy toast, hide synthetic-only bubble, dead TurnDivider labels
- #2291 items 5-7,9 — auto-compaction failure keeps loop alive, overflow estimate fixes, deleted-tail degradation
- #2291 items 1-4 — breaker status field, min_interval from completion, exclude compactor summary from min_turns, honor create dedup
- N-01 review R1 revision (real-adapter tests + quantity parse + refusal distinction)
- round-1 review — boundary tests + filter rationale comment
- hold first HTML document while backend reports SSE shedding (#3290)
- match DAG artifact pages in compaction re-orient candidates
- guard degenerate cleanup bound + regression tests for shell intake (#3263)
- guard child-session revert/unrevert (#3264)
- defer SessionRevert.cleanup until intake succeeds (#3263)
- address round-1 code review findings (TST-F001/F002, COR-F001/F002)
- clamp thisMonth range upper bound to yesterdayStart on Monday
- snapshot restore rewrites only files that differ from the snapshot
- repair archive bundle schema fields (#3138)
- win32 taskkill group-kill via execFile argv-array, no shell string
- address round-1 code-review findings in tests (#3254)
- keep session sidebar resident on /new-session
- guard LSP request handler params shapes (#2655)
- route TUI main-thread SIGINT/SIGTERM through graceful stop (#2717)
- compact tool pending staleness escape (TD-247)
- h2 error heading, precise hydration-observation pins, error.page.reload parity (#3238)
- replace no-op retry with honest reload guidance (#3238)
- hydration-failure error branch with retry, document scope semantics (#3238)
- br.ts Galician→Portuguese, collapse dead isInActiveDialog gate, a11y list name (#3239)
- gate /new-session redirect on server-store hydration + sr-only h1 (#3238)
- address review-code round-1 findings
- single-source DELTA_TRUNCATED_MARKER + part-reference hash formula in @octopus-ai/core (TD-349, #2922)
- announce model-selector loading→loaded swap to screen readers (#2854)
- self-heal SPA chunk-fetch failures on workspace hosts
- mandatory destructive manifest for business-decision questions (#3223)
- backfill ui.imagePreview i18n keys in 16 locales (#2511)
- alert POST targets canonical repo (SEV-2 301 no-op) + q-filtered dedup lookup (SEV-3) (#3222)
- validate parentID guard exemption (SEC-F002)
- keep-mergeable fails loudly on API-base repo mismatch + derive GITEA_API_BASE from origin remote (#3222)
- review rework — background init never holds caller stdout (#2561)
- FT-075 prefix-mode maintenance test wired to local TestLLMServer
- review r2 rework — GC clears progress entries, get returns copy, remove clears early
- 补齐 session-permission-tier.test L395 mock 缺失的 sessionRuleset 成员 (BF-083)
- changes job 5m→15m timeout — fetch-depth:0 checkout tail exceeds old cap (#3206)
- review r1 - COR-F001 expanded-group sort follows live window time
- expanded date-group rows sort by time.updated desc
- #2556 single-read override patch + #2559 concurrent-delete 404 + #2557 sessionRulesets eviction
- TD batch #2540-#2547 — 8 tech-debt items from #2467 cluster
- verify session JWT signature inside cashierPage (#3131 review HIGH-1)
- cache-resolver-platform anti-assertion decoupled from tmpdir location
- cashier page requires an org-bound session (#3131)
- harden session.updated partial-info path (merge guard + server discard + consumer fallbacks)
- round-2 review revisions (COR-R2-F001/F002)
- plugin-guard temp dir teardown (mkdtempSync + afterEach)
- round-1 review revisions (TST-F001/F002, TRC-F001, COR-F001, SEC-F001, PERF-F001/F002, DOC-F001/F002)
- B provider stream error zombie + abort state lag
- round-1 review revisions (B/SEC-F001, C/COR-F001/F002/F003, B/COR-F001, TST gaps)
- entrypoint boot_instance retry + loud warnings (item-4)
- rewrite billing workspace URLs to public gateway form (#3177)
- deterministic SQL admin lookup + identity guard-branch tests (review B/COR-F001, DBT-F001, TST-F001)
- strict <500MB boundary + marker-less lockfile byte fallback (review A/COR-F001/F002, TST-F001, DOC-F001/F002)
- deps auto-install gates on estimated node_modules footprint; provision injects Gitea identity
- address review round-1 findings (COR-F001/F002, TST-F001/F002, DOC-F001)
- deepen workspace repos before stripping the clone token (#3175)
- review r1 — COR-F001 wait-budget validation, COR-F002 terminating-pod filter, TST-F001 branch tests, DOC-F001 env contract
- review r1 — cover failure-path snapshot + count-decrease invalidation
- #3174 daemon endpoint bakes fixed node IP — add {nodeIP} template resolution
- invalidate expanded date-group range cache on catalog count changes
- unify login_next cookie set/clear via loginNextCookie helper (STY-F001)
- review r1 — absolute control-plane links on denial page; wrap Set-Cookie lines
- #3173 multi-org users dead-ended at ws proxy (JWT org != workspace org)
- review-status test harness owner default fourbroad -> Octopus
- two-tier-artifacts parity test D9 schema-$id normalization (#3169)
- exclude archived roots from listConditions (range badge 106 vs 252) (#3168)
- 置顶重复渲染 + 展开徽标跳变 (Bug1/2/3) (#3165)
- explicitly pass HOME to PTY session env with /home/octopus fallback
- stale-closure guard, search dedup, finite today bound
- finite-bound 400s, typed listRange overlay, x-range-envelope spec annotation
- deficit-driven fill no longer gated by the hasMore lower-bound estimate
- render catalog-declared zero-window group headers to break the month-header deadlock
- oauth-gate 落库用户与成员关系,JWT sub 用 uuid;proxy 非 uuid sub 干净 403 (#3122)
- 登录回跳 next 剥离 nginx 子域名改写前缀,防双重 /ws/ (#3122)
- 跨子域 auth cookie + 登录回跳 + proxy query token,闭合 SKIP_AUTH (Closes #3122)
- BYOK 同名覆盖需显式确认 + 计费页呈现优化 B1-B5 (Closes #3111 #3113)
- 302 browser navigations from /ws/:id to the workspace subdomain (#3109)
- Chinese self-refresh page for the whole WORKSPACE_NOT_READY window (#3110)
- enforce JWT org binding on /api/billing/* by default (#3112)
- review-code round 1 findings (TST-F001 archive-discovery pin, DOC-F001 legacy-route note, DGN-F001 preflight rekey, + minors)
- address review round 1 (stall race + contract tests)
- bound the expanded-group fill chain (stagnation stall + trim keep-exemption)
- overlay-wiring fixture must use production cache-resolver root (#3101)
- drive loadMore until expanded date-group badge counts converge
- runtime skill catalog ghost entries + dead paths — overlay cache root isolation, absolute locations, prototype loadable (#3086)
- sync overlay-merger-offline entry counts post gitea-mcp retirement (#3027)
- SyncEventSessionCreated carries permission_override/permission_effective (#2903)
- distinguish loading/failed/filtered from truly-empty message list (#2314)
- bench env validation + waitFor final scan (#3050)
- review round 1 findings (SYN-01..SYN-10)
- snapshot before fetch, bench file, split HTTP timeout (#3050)
- probe payload nesting + patch-arm isolation + 39ms bound (#3050)
- narrow titlebar header claim, relax zh label pins (#3050)
- fix type anchor, comment precision, aria-label divergence test (#3050)
- design-page sync + getUnreadSessions backend fix + test coverage + split sidebar-items spec (#3050)
- thread unread index, conditional titlebar clamp, split over-budget modules (#3050)
- render usage-limit turn failures explicitly (#2912)
- review revisions — flag getter + plugin-install-cleanup re-enable + comment fix
- disable plugin SDK install in tests + bound disposeAllInstances (BF-077/#3074)
- titlebar clamp + O(1) session index + projector catch-up + v2 SDK regen (#3050)
- review-code round 2 findings (COR-F002, A11Y-F003, DOC-F001)
- address review-code round 1 findings (COR-F001, A11Y-F001, A11Y-F002)
- index.html boot watchdog — auto-recover white screen after revert-triggered full-reload race (closes #3078)
- daemon rejects drift wake with 409 — ensureRunning reconcile
- auto-wake drifted/unreachable workspaces in the proxy (#2938)
- restart orphan sweep + maintenance persistence (#3031)
- sync gitea repo→workspace mapping on provision/delete (#2939)
- sync overlay/skill expectations + scaffold twins post gitea-mcp retirement (#3027/#3028/#3036/#3037)
- sidecar liveness probe must not dial the pod IP (#3057)
- review round 1 — pin wiring tests, cover recompute branches, doc linkage
- sidebar session-switch jank (#3048) — dedupe session.get, stabilize list, bound resync
- place prompt_async model field at body top level
- review-code R1-R3 revisions (contract flags, chunkSize guard, shared sanitize helper, SDK regen, test coverage)
- review round 1 findings (count semantics, extraction leak, size pre-check)
- custom-elements.d.ts symlink→real copies + invariant guard (#2935) — Windows TS1128 eliminated; pre-commit copy-sync on ui source change
- byte-mirror live verify SKILL.md to template (parity contract #1647/#1988)
- registry deregister uses exact-field match (substring grep hit sibling prefix paths)
- raise ci.yml check timeout 30→45m (run 12291 budget kill)
- symlink package-level node_modules too (bun workspace layout)
- add pre-merge-commit hook — clean auto-merges (ort) never run pre-commit, drift could land with zero gates
- copy node 22 binary from official image (apt nodejs 18 < playwright's floor)
- workflow-routing schema 补 filing 块 — 修 #3013 CI validate 失败
- dedupe session.diff publish by content fingerprint (#3025)
- pre-commit regen covers merge commits (unconditional + fast-fail) and checklists/customize sources; new builtin-integrity.yml closes the doc-PR paths-ignore hole (#2971, main-side instance #3015/#3018)
- card-v2 story crash / popover selector contract / dialog Escape / per-browser baselines (#3011)
- broaden playwright-core cli find (bun global hoists siblings)
- browser install via node + MCP's own playwright-core (bun oop-downloader incompatible)
- de-fragile pre-flight compaction tests — lowWaterCfg shrinks model context so the water-level threshold (200 tokens) sits far below the estimate, immune to system-prompt-length drift (builtin skill text size); root cause CI 12200 (#3016)
- workflow-routing schema 补 filing 块 — 修 #3013 CI validate 失败
- PLAYWRIGHT_DOWNLOAD_HOST=npmmirror (cdn.playwright.dev intermittent Download failure from ops host)
- CI 12200 compaction water-level tests pass by coincidence of overlay size (BF #3014)
- engagement 判定加 120s epsilon(reaper 自己的 notice 写入也刷新 updated_at,严格大于会永不归档)+ T12/T13 边界测试 + 清理测试草稿死代码
- add nodejs — codegraph launcher has #!/usr/bin/env node shebang
- regenerate builtin-data.gen.ts after keeper main-sync (content-integrity)
- ALL_KNOWN_STAGES→NON_MANUAL_STAGES doc alignment, Kind/Refactor label landed (#2997, retires #1826 workaround), dag.ticket_creation protocol documented in routing rule
- floor workspace PVC at 20Gi (alicloud-disk-essd minimum) — S/M tiers left PVCs Pending
- align skip-naming semantics, auto-approve doc with stage registry, question.txt gate list, AGENTS.md a11y paths + L0 strength wording, a11y runner label
- apply code review rounds 1-3 — per-browser baseline, AC-2/AC-3 hardening, appPort guard
- apply code review round 2 — AC-3/AC-4 e2e tests + modal={false} non-overridable
- CI 11927 cross-file part-cap state leak (afterEach reset + slim-emission cap pinning)
- regenerate builtin-data.gen.ts after main merge (overlay byte-integrity)
- add review-code DAG Task Mode — close dag.task_route execution chain
- type-aware extractStoryIds + harden AC-4 count fixture (review round 1)
- poll for running bash tool part instead of fixed sleep in cancel truncation test
- rename archive bundle to audit-2026-08-19 — slug collision with 2026-08-17 run
- run composer-layout visual regression against the app, not Storybook
- align ui-v2 story IDs with storybook index
- build components-skeleton story to zero skeleton-visual story-404s
- move kobalte menu focus trap out of role=menu
- restore canonical data-component selector for event-toast V2
- round-3 audit remediation (13 items) — scaffold-template parity, schema asymmetry, doc/step drifts
- code review R1 findings (shared-wiring/badge-gating/phase-machine/icon-token/tail-window/e2e-headroom)
- mock Agent.Service in webfetch.test.ts to stop models.dev fiber race
- seed project row before session create in processor-effect tests
- workspace proxy 5s timeout -> 300s env-tunable (provider catalog >5s caused 502)
- accept directory in create input, fall back to instance context
- OAuth redirect https base + BYOK form orgId quoting (user-story walkthrough findings)
- remediate 2026-08-19 round-1 audit findings across .octopus process infrastructure
- close preflight consumption gap + template polish (review round 1)
- assert real worktree isolation semantics
- code review R1 findings (dual-basis/tail-anchor/neutral-util/webcrypto-branch/coalesce-note)
- code review R1 findings (emission-switch/expose/stub-recheck/spec/sync-arm/memoize/contract/docs/ft-073)
- InstanceStore wedge self-healing (boot timeout + eviction) + diagnostic 503 for server-aborts
- sync worker-report-persistence (#2847) scaffold twins for all 8 drifted files
- make test-parallel-jsonl hermetic via OCTOPUS_TIMING_JSONL override
- expose X-Limit-Clamped in Access-Control-Expose-Headers (WI-009)
- restore inline Phase 5.55 ref + sync verify SKILL scaffold twin (BF-070, #2895)
- code review R1 findings (schema/gen/marker/version)
- formatRelativeTime elapsed-first tiers + frozen test clock (#2750)
- explicit 15s ceilings on httpapi-listen PTY tests (FT-060) (#2779)
- gate probe strips query string — close R2 INFO bypass class (#2841)
- review R1 hardening — fail-open catch, probe prefix match, target-aware errors (#2841)
- global-setup session-route warmup — burn first browser exec of lazy route (#2841)
- round-1 findings — vacuity guards + package-count corrections
- check job installs #597 browser deps before App unit tests
- code review R2 STY-F003 (test import grouping)
- pricing/quota model v2 — capacity-only limits, running-count concurrency, QUOTA_EXCEEDED gate (#2853)
- update gating pin for status-sync-poll.test.ts wiring (BF-058, #2863)
- code review R1 findings (bench/docs)
- readiness gate — hold probe until vite warmup settles (#2841)
- rewrite session-cap incident regression to preset counters — real assertions under 2s bound (#2789)
- tighten placeholder disabled assertion with lookbehind
- internalize unshare -n re-entry + isolation self-check into e2e-netns.sh (review r1) (#2793)
- netns-isolated local e2e runner script (FT-063) (#2793)
- close stale-write race, harden tests, fix placeholder a11y
- parse PR base branch via ref fallback (Gitea payload has no base.name) (#2824)
- PROVIDE_BOUND_MS 4s + isolate orphaned-assistant-repair (FT-067/TD-332) (#2832)
- /provider fail-fast + fetch negative cache + frontend model placeholder
- ci-run-stats correctness + tests, push-incremental fail-closed guard (review r1)
- waitForContent fast-path timeout + drop redundant assertions (TD-333/TD-334) (#2831)
- exempt dynamic skips from no-metrics guard, report smoke fixture health (FT-066) (#2802)
- delete-active-session selector scope + timeline double-goto import-cancel attribution (FT-064) (#2800)
- address review round 1 — restore fork guard, harden poller (#2813)
- isolate task-permissions into own process against shared-db reset straddle (FT-043) (#2532)
- llm-server builds local HttpRouter.make — stop inheriting app router from process-global memoMap
- apply review r1 fixes — fail-fast quorum, mechanism-neutral INFRA-FAIL, AC-4 discipline (FT-044) (#2580)
- worktree-guard protects un-archived Tier-1 active runs
- store _serverParams in MockStdioTransport to stop cross-file mock leak (BF-049) (#2485)
- relocate kickoff fixtures out of agent-shared /tmp/octopus namespace (FT-042) (#2529)
- sample quorum + INFRA-FAIL classification + report-before-assertions in SessionSwitchLatency (FT-044) (#2580)
- await floating assertions in plugin-add (FT-041) (#2530)
- pre-commit guard blocks staged Tier-1 active-run artifacts (BF-048) (#2483)
- app suite baseline cluster repairs (BF-044) (#2403)
- normalize 2730 archive bundle meta.ticket int->object (#2803)
- truncation cleanup 7-day test regression (BF-061) (#2755)
- address review findings — exclude test/stories from warmup, close popover escape (#2746)
- vite server.warmup clientFiles prewarm session route graph (#2746)
- transactional delete guards + error-state part cap
- fail-closed on non-array statuses payload
- restore #2696/isReplayableEvent tests dropped in cherry-pick (#2678)
- persist invalid-tool entry rejection as message.error
- self-deactivating SDK mocks in lifecycle.test.ts (BF-060)
- M3 telemetry reads archive bundles (restore dead data source); M2 verified alive
- normalize malformed 2696 archive bundle (index list->object, legacy profile) (#2774)
- relax skeleton wiring assertion to structural token
- judge stream stability before computing reconnect delay (backoff reset ordering)
- storybook story-not-found fast-skip via index probe
- sync implement SKILL.md keep-mergeable paragraph to scaffold twin (#2607)
- dev-fresh self_descendant_pids functional 5s timeout (#2677)
- REQ-F-028 build verification via src/build.ts child process
- bound SSE resync amplification (dropped-stub throttle + conditional reconnect refetch + backoff/jitter)
- session-worktree.sh create honors --base
- add snapshotIfMaterialized to MCP test mock after main sync
- re-commit project row before Session.create in orphaned-assistant-repair (#2721)
- sleepWorkspace inspect guard + reconcile alignment (#2743)
- wakeWorkspace unpause guard + live port resolution (#2388)
- merged delta run id = run-last (COR-F001); latest-wins coverage; module split
- mock MCP.Service snapshotIfMaterialized (main-sync)
- complete builtin-data regen after #2724 twin sync
- apply round-1 code-review findings (revision-r1)
- restore full 40-char SHA on fourbroad/cache@turbo-cache pin
- invalid-tool repair loop cap + backoff, terminal error part
- SSE oversized event governance — degrade >maxEventBytes to refetch stub
- sync audit-process checklist wording to scaffold twin (BF cluster) (#2710)
- guard B adopts boot-failed servers, idempotently (review r1 SEC-F001)
- guard PASSIVE wal_checkpoint fallback in close() (#2676)
- repair audit bundle schema compliance (BF-057) (#2704)
- cross-world adoption guards — non-materializing snapshot + no-client skip
- ACP close-on-EOF + close() hardening + shutdown-wiring regression tests (#2676)
- clear published map on close/shutdown (#2523)
- wire DB close into graceful shutdown + surface stale-list failures (#2676)
- complete DAG-mode read map in implement + generalize synthesis_task targets
- eager db warmup + shutdown WAL truncate + sidebar error state (#2676)
- wire review-dag into schema layer + resolve audit round-1 blockers/majors
- warn on unknown auto-approve stage identifiers
- review round 1 revisions (#2675)
- never kill systemd-managed processes; verify backend ownership (#2675)
- isolate logger clone/tag from shared service cache (#2521)
- raise live-assembly auto-recovery internal wait budget 20s -> 45s
- no-store on dynamic billing pages
- worktree-safe MERGE_HEAD detection in husky hooks (git rev-parse --git-dir)
- --archive 严格解析 + repair 负例测试 (#2588)
- validator 负例测试 + repair 安全修复 + 2430 backfill (#2588)
- review round 1 revision — single commit-time disable guard (#2504)
- reconnect mid-connect disable resurrection — commit-phase authoritative recheck (#2504)
- validate publishDiagnostics payload shape before storing (#2522)
- menu-stability e2e 种子修复 (#2516)
- inject local models.dev mirror URL into workspace containers
- review round 1 revisions
- embed web UI in workspace image (serve at container origin)
- authenticate repo clone, strip token from remote url
- CRLF-normalize builtin generation + integrity test
- add top-level permissions block to octopus-schemas.yml
- full 40-hex close_commit_sha in archive bundle (#2470)
- regenerate builtin overlay embed + pre-commit regen guard
- review round 1 revisions (#2470)
- recycle stopped workspaces, idle-scan grace for NULL last_active_at, /ws creating transition page
- address code review round-2 findings
- min-of-3 sessionTimestamps perf gate to absorb CI contention
- MCP monitoring never engages in live server assembly (#2586)
- address code review round-1 findings
- wire runs-bundle schema validation + repair legacy archive drift
- scope FAIL verdicts to current review round
- review-code merged-page precondition + telemetry db filter + dead links
- sync browser-debug SKILL.md template twin (BF-051)
- review round 1 revisions (#2469)
- close round-2 minors — regression tests + retention docs (#2472)
- address round-1 review findings (#2472)
- address round 5 review — empty-object external_directory fail-closed, permission-override 404 route test, migration snapshot
- structural containment assertion in focus-lock test (#2454)
- address code review round 1 findings (#2454)
- address code review round 3 findings
- DialogV2 focus lock + scoped Escape bail + menu suppression (#2448 D3+D5)
- address code review round 2 findings
- address round-4 review findings (#2467)
- address round-3 review findings (#2467)
- round 2 findings — ring visible post-close, restore NFR/lightbox pins, gate tests (#2475)
- address round-2 review findings (#2467)
- address code review round 1 findings
- review round 1 — single decode, live highlight signal, gated linkify, behavioral tests (#2475)
- review round 1 — guard removed parent, boundary tests, wiring coverage
- address round-1 review findings (#2467)
- round-2 MINORs — per-flow concurrency key, strict issue validation, AC-tag + coverage (#2436)
- round-1 revisions — error-path handling, CLI tests, CI wiring (#2436)
- clean exhausted reconnect state + recovery-scan guard test (review round 2) (#2468)
- round 2 findings — forceActivate JSDoc + behavioral latch tests (#2474)
- round 2 findings — dialog accessible name + comment math (#2473)
- enforce disable guard on all paths + restart-storm guard (review round 1) (#2468)
- address review round 1 findings (#2474)
- address review round 1 findings (#2473)
- address round-1 findings (TST-F001 wipe assertion, STY-F002 import order)
- MCP auto-reconnect never engages for startup-connected servers (#2468)
- dedup same-directory dual-mounted context menu via interactive gate
- address review round-1 findings
- address review R1 — complete a11y PR paths enumeration
- single-instance gate + focus/keyboard parity for hoisted context menu
- repair 35-spec nightly drift + timeline scroll deadlock
- add missing screenshots/health roots to vite dev proxy list (#2458)
- add a11y-scan shared inputs (e2e/utils, mock-backend) to PR paths filter
- address review R1 — rewrite stale a11y trigger tests, narrow paths, doc sync
- playwright MCP 请求超时 30s→120s,避免大页面 snapshot "Request timed out"
- read tree signals inside JSX so expansion updates the DOM
- repair archive consumer + merge-gate fail-closed hardening
- address review-code round1 DOC-F001 + TST-F001
- restore tooltips inside overlay content panels
- resync scaffold template twin — browser-debug SKILL.md evidence ladder (drift #4)
- strip stale Content-Encoding/Length in /ws proxy responses
- address LW review on the WS tunnel (PR #2432)
- send x-octopus-ticket marker on viewer PTY connect-token
- scope self-heal test assertions to the effect block (round-2 findings)
- address review round-1 findings (strengthen SV tests, remove vacuous guard, add contract comment)
- preserve endpointUrl null signal; isolate env in list tests (LW PR #2428 MINORs)
- expose public gateway URL in GET /api/workspaces endpointUrl
- address lightweight-review MINORs on PR #2425
- resolve JWT org claim into org context in local-mode /api/auth/me
- e2e-suite 独立并发组 + wait-for-ci-idle 门,修复 push 抢占饿死 (#2423)
- close auth bypass + cookie auth + graceful degradation (review round 1)
- treat anonymous 401 from /api/auth/me as unauthenticated
- wire createAuthRoutes into control-plane route assembly
- lazy-gate screenshots fetch on first tab activation
- review R1 revisions — mirror strip predicate, reset counter on pre-flight compaction (#2400)
- address code-review round 1 findings (COR/STY/PERF/TST/TRC)
- re-run errored assistant turns in runLoop (#2400)
- enforce org-scoping on GET /api/workspaces (IDOR)
- review-code rounds 1-3 — canvas-proof echo assertions, env-required workspace, spec rename
- wire FileTreePanel into viewer fileTree mount point (N-03 integration gap)
- review-code round 3 — remove duplicate tab stop on tree container
- review-code round 2 — A11Y contrast + status-region scope
- N-02 — address code review R2 in-scope follow-ups
- review-code round 1 — A11Y tree structure + perf memo + race guard
- N-02 — address code review R1 (reconnect backoff + error handling + a11y)
- tolerate background bus events in stall-disconnect test
- address code review R1 findings
- 枚举计数口径修正 22→21(剔除跨仓库误入票 fourbroad/gitea#134)+ 补 review_depth 全映射
- review round 1 — cover non-boolean-auto fallback + correct comments
- prompt.ts compaction 提示注入走 normalizeCompaction 契约解析
- review round 1 — resolveSessionGuardConfig closes empty-object gap
- review round 1 — extend cancel-branch tests + doc comments
- cancel 路径不 touch + SSE 关键队列有界
- review-code round-1 (FAIL) 修订
- compaction 配置四缺陷修复(孤儿字段+嵌套校验+默认值集中化+范围钳制)
- re-sync scaffold-template + regenerate builtin-data.gen.ts (BF-043)
- correct thumbnail border token to v2-border-border-weak
- replay dedups session.status latest-wins per sessionID
- client — P1 dropped-signal refetch + MessageChannel flush, P2 refetch retries, P4 pending-event buffer
- server — P1 key-event non-drop channel + dropped signal, P2 session.status replay, P3 touch on idle
- 系统提示压缩文案与实现对齐 — 删除 generic-vs-structured 虚假声称 + 文案随 compaction.auto 条件化
- getStageMeta falls back to built-in stages so decide() honors merge-pr alwaysManual standalone
- raise oauth-auto-connect needs_auth per-test timeout 15s->30s (FT-021)
- webhooks.ts 生产环境 fail-fast 守卫 WEBHOOK_SECRET
- remove duplicate /health route and exempt health alias from auth
- review round-1 — 拒绝非最新/外来 messageID(IDOR)+ 补忙时 fork 服务层测试
- summarize 端点消息序列/关联缺陷 — 拒绝非最新 messageID、补发失败 CompactionEnded、统一 compaction_id
- review round-1 — 前端 summary 轮跳过 + 注释同步
- session-info 反向扫描跳过 summary compactor 轮、usagePercent 与 web UI 统一封顶 100
- unify water-level preflight budget with usable() (#2285) (#2295)
- resolve auto-compaction livelock defect cluster
- harden deploy docs + systemd unit + prod build test
- timing-safe token compare + legacy config migration + empty-string guard
- correct /health docs to match alias + waive pre-existing file length
- handle empty CONTROL_PLANE_EXTERNAL_URL + test name precision
- add /health alias matching workspace healthcheck
- return proxied /ws/:workspaceId endpointUrl from provision
- provision endpointUrl routes via /ws/:workspaceId proxy
- stop edit tool misapplying fuzzy anchor matches
- broaden SAST gate path filter to cover infra changes
- isolate httpapi-provider from #2154 cross-file fiber leak
- make #2154 regression test deterministic
- correct raceWithBound JSDoc — describe tagged-union return, not internal sentinel
- correct raceWithBound JSDoc + strengthen late-rejection test with unhandled-rejection guard
- add AbortController fiber interrupt + raceWithBound helper + unit tests
- address review-code round 1 findings (9M 8m)
- address code-review round-1 findings in regression guard (#2136)
- bound Effect beta scheduler race in test-effect harness
- raise e2e-suite timeout budget, drop tautological needs guards (#2136)
- mark zombie-reaper reaper.sh executable (100644->100755)
- eliminate 32px dialog-content overflow from server picker (TD-235)
- eliminate DB-close orphan-fiber race by truncating tables instead
- assert specific #2154 diagnostic message, not any console.warn
- widen #2154 regression test margin, add diagnostic assertion
- guard shared-fixture-verify spec against bun:test runner mismatch (BF-037, #2208)
- drop pull_request trigger from e2e-suite.yml (#2232)
- add explicit assertion to boundary test (TST-F001)
- guard SAST post-scan steps on checkout success
- cleanup session_diff storage on session.remove
- pull settings ScrollView thumb inward to content right edge (#2214)
- normalize schema $id URIs to canonical pattern (TD-013)
- normalize terminal WebSocket URL to avoid double-slash path
- stop inlining text attachments into context (Plan A + Plan C, #2211)
- resolve mock-backend webServer cwd for perf config
- proxy WebSocket upgrade in vite dev server for remote terminal
- 设置对话框 tab 独立滚动容器,修复整体滚动+内容裁剪 (#2183)
- sync stale content mirrors + quarantine FT-016
- bound Effect 4.0-beta scheduler race in test-fixture layer teardown
- resolve V2 arrow-down-to-line glyph + add name-resolution gate
- remediate process-audit round-3 findings (#2157)
- remediate process-audit round-2 findings (#2157)
- remediate process-audit round-1 findings (#2157)
- strip Word (.docx/.doc) file parts at provider transform layer
- reorder Permissions-section doc example to broad-first, narrow-last (#2168)
- review round-1 findings — edit regression assertion + doc example ordering (#2168)
- review round-1 revisions — focus comment + negative-path test
- settings dialog ARIA semantics + open-focus management
- reflect live session title updates from the global-sync store
- resolve code-review R1 — add missing V2 toast icons + pin renderer contract
- harden select popup z-index against cascade order
- raise SelectV2 popup z-index above modal dialog (#2156)
- address review round 1 findings (COR-F001/SEC-F001/TRC-F001)
- show SessionSkeleton instead of blank div during session Suspense fallback
- user-level bash/edit allow '*' -> '**' so explorer sub-sessions stop hitting DeniedError (#2168)
- stop creating toast icon JSX outside a reactive root (#2160 D2)
- enable drag-drop in new-session dialog + defer Word upload to post-session-create
- scope live(none) layer to inner ShareNext.Service.use call to prevent teardown hang
- isolate project.test.ts ceiling-toggle to prevent test:parallel worktree HEAD corruption
- grant first SSE chunk a cold-start grace period (#2151)
- fail loudly if mock-backend webServer not found (COR-R2-001)
- address code review BLOCKER/MAJOR — vite proxy target + perf webServer mock-backend
- use independent port 4098 for CI mock backend (#2144)
- optimistic permission dock close on HTTP reply success
- seed newLayoutDesigns=false in shared e2e fixture (#2136)
- update stale selectors + skip removed-feature specs (#2136)
- fail-closed guard classification — review round 1 (#2139)
- resync session status after SSE reconnect (#2140)
- disable Bun.serve idleTimeout in e2e mock backend (#2136)
- isolate snapshot-tool-race.test.ts to prevent parallel-load 120s timeout (FT-013, #2128)
- always-allow wildcard regression + stale requestID dock-stuck (#2131)
- reset DB before each test case to isolate ColorAssigner state
- replace require() with ESM import in fault-tolerance tests
- isolate effect/runner.test.ts to prevent parallel-load timeout (FT-012)
- add tool-failure honesty constraint to suppress fabricated results
- local-read wiki fallback + checklist path docs (#2117)
- raise per-server tool cap 50→100 so gitea_wiki__* survives forwarding (#2115 P0)
- review hardening for uploads global-dir migration (#2095) (#2111)
- define wiki URL spec, add publish→verify, unify %2F encoding (#2108)
- replace brittle toBe(16) with non-empty assertion
- re-pin sast.yml to dated runner label (#2091) (#2104)
- compression-ratio guard for lying-CD zip archives (#2067)
- indexOf cleanup + line-ref removal (#2066 #2068)
- optimistic sessionTotal decrement on delete (#1876)
- resolve uploads root from global data directory (#2095) (#2098)
- honor GIT_CEILING_DIRECTORIES in fromDirectory discovery (#2070)
- add tests/ to tsconfig include, resolve 135 strict-mode typecheck errors (#2097)
- drop fragile line anchor in TD-223 comment (review STY-F001)
- bound guard query + document test seam, dead-code catchTag, LOC acceptance
- address code review round 1 findings
- restore global.config.get exercise scenario (TRC-F001)
- sync committed openapi.json + regen SDK against current main (TRC-F002)
- regenerate SDK client with spec-patch for dual 400 error union (COR-F008)
- clear round-5 minors — test split, deviation comments, debug-agent title sanitize, exact-boundary tests, runner cleanup
- guard fork endpoint, tighten ticket regex, matrix rejection channel, log field names (AM-01/03/04 + round-3 minors)
- restore guard audit log, add parentID exemption, fault-injection tests, drop unrelated files (#1989)
- toast position, attachment download link, upload URL tests
- roll back sast.yml to legacy docker-linux label (#2084)
- skip non-image file parts in image preprocessor (#2082)
- drop residual time_compacting DB column (#1958 cleanup)
- give FileIcon intrinsic svg size to prevent 0x0
- add x-octopus-directory header to upload request (#2077)
- review round 2 residual — drop stale synthesis wiki rows from plan/audit artifact trees (#1988)
- address review round 1 — Phase C tier1 references, scaffold-template sync, stale pattern docs (#1988)
- converge AGENTS.md merge when prose contains a fake managed-start marker
- guard malformed marker pairs in AGENTS.md merge refresh
- exempt .tmp from oxlint ignorePatterns to unblock pre-push lint
- strip trailing slash from server URL before /file/upload concatenation (#2071)
- update customize-octopus.md bash examples to **
- revert test churn, fix docs version ref
- disabled() wildcard, prompt.ts syncSessionRuleset, pattern * to ** sweep
- cascade evaluates current ruleset, not approved-only
- distinguish * vs ** in wildcard matching (#1890 M2)
- TST-F201 source verification + DOC-F201/DOC-F202 comments (#2040)
- COR-F101 dead 404 branch, TST-F101 stale window, STY-F101 long comment (#2040)
- 5 MINOR review findings + 1 WAIVED — SEC offset, test assertions, DRY SSE options, stale comment (#2040)
- roll back sidebar session store on non-404 delete failure (#2040) #1875
- drop unreachable zip post-inflate cap, early-return aborted SSE, cover signal-undefined path (#2040) #1793 #1915 #1916
- exempt runs/archive/{slug}.json from mirror requirement
- Pattern 10 archive-at-close actor generalization — align full spec with guard #3 (#1998)
- shouldReset must check documents.length to prevent card drop on backspace-to-empty (#2046)
- #2022 scaffold-template twin drift + #2008 compaction fetch timeout (#2050)
- move test-parallel TMPDIR out of main repo; isolate mcp headers/oauth-auto-connect
- preserve document attachments across prompt-input rebuilds
- review-code R1 revision — allowlist + actor generalization + enumeration
- scaffold-template parity drift + env-permission test expectations
- monotone guard on store.limit, robust test locator (#2024)
- harden /file/ error branches against image.normalize crash (review round 1-3)
- resolve relative /file/ URLs in prompt file parts, stop silent message loss
- trim sessions with request limit, not stale store.limit (#2024)
- restore toast z-index above modal dialog (unblock #2023 CI)
- repair sidebar-rail-state-machine e2e spec vs newLayoutDesigns default (FT-005)
- make fillNoGrowthStreak bound reachable (review R1 COR-F001)
- render date-group headers always + unblock fill chain self-drive
- sidebar session list fill step +5 -> +50
- expand vite dev proxy to all backend route roots
- address review round 1 (breaker eviction, clamp/breaker/temp tests, changelog)
- compact 流程规范化 — G1-G3 + I3-I4 (#1959)
- new-session dialog UX — slash menu, Enter, Create button, image preview
- exclude test files from v2 utility registration scan
- clean up compact code tech-debt C3-C7 (#1849 deferred)
- remove hardcoded /api prefix from file upload URLs (#1956)
- route remote dev hosts to same-origin API url
- sidebar session list incomplete load on hard refresh
- revert fromJSON() in workflow_run/dispatch guards (#1871) (#1955)
- MED/LOW permission/auto_approve items (#1890) (#1953)
- separate type-rejection toast from upload-failure in addAttachments (#1950) (#1952)
- persist "always allow" approvals across restart/reload (#1888) (#1951)
- aggregation test assertion — i18n key not literal string
- F-4 real behavioral tests + two minor fixes
- implement R5 review fixes (F-1 through F-6)
- use createSignal instead of createStore for patchedFiles to avoid deep Proxy breaking structuredClone
- use sdk.url as base URL for fetchFilePatch instead of relative path
- use fetch() with URLSearchParams to pass file= query param, bypassing SDK whitelist
- wire fetchFilePatch at SessionReview mount site, merge patchedFiles into items
- B1 lazy patch, M1 effect decoupling, M2 focus shown, M3 totalDiffs, N1-N5
- move visibleItems/remaining/loadMore after items to avoid Solid createMemo TDZ ReferenceError
- batch render session-review accordion items — cap at 100, paginate with load-more
- threshold degradation — aggregate view when >500 diffs, skip Kobalte tree explosion
- cap diffs per row + O(n) dedupe + strip session-level /diff patches
- isAttempted blocks re-entry (any fileState entry), eliminating double-fetch
- explicit terminal states prevent Solid-store merge bug + retry loop
- one-shot fetch, per-file state, i18n labels, OpenAPI docs, strict test assertions
- restructure lazy fetch, idle fallback, persisted diff read, a11y labels, tests
- strip summary.diffs patch from /message + lazy diff expand + off-critical-path initial diff
- shrink session prefetch + lazy diff + measureElement guard
- fork-guard if-conditions break issue_comment/workflow_run events
- audit round-1 remediation — regen builtin overlay (FLOW-F001) + review-code Phase E register-first sync (STD-F001/DUP-I002)
- audit round-1 remediation — 路径前缀统一 + 术语收敛 + 注释清理 + 中性示例
- audit round-2 DUP convergence — trim residual migration dups
- audit round-1 remediation — reviewer-output schema 补 severity counts(SCH 6.2)
- audit round-1 remediation — 编写规则去重(DUP 7.2)+ 模板命令示例合规(AGT 9.1)
- 删除章节后 checklist 范围引用去悬空(AC4 无断链)
- audit-process round 1-2 remediation — DUP convergence
- audit round 3 — compress § 归档动作 step 3 gloss to Pattern 10 pointer (DUP-F005)
- audit round 2 — de-duplicate mechanism to Pattern 10 pointer + row-19 timing wording
- audit round 1 remediation — canonicalize archive-at-close sequence/label/actor
- address code-review round 1 findings
- redirect TMPDIR to /data + add /tmp inode pre-flight warning
- serialize e2e-suite behind ci via cancel-in-progress: false (round 2)
- address review round 1 findings (PERF-F001, DOC-F001, TST-F001, STY-F001)
- run a11y suite on every PR via ci.yml
- C1 overflow headroom, C2 prune default, I1/I2 doc alignment
- review R2 — DOC-M002 doc wording consistency
- review R1 — STY-M001 spacing + DOC-I001 wording accuracy + COR-F001 doc string
- disambiguate auto_approve vs permission scope boundary (docs + UI)
- symmetric GlobalBus on/off lifecycle in SSE eventResponse
- deny is sticky across permission rulesets
- add Gitea Actions job/run-layer zombie reaper (#1884 P0)
- TD-216 OCTOPUS_TIMING_DIR comment + TD-219 retry-flag fail-safe guard
- sidebar context menu Rename stale value + Delete optimistic update (#1864)
- accept non-canonical Word browser MIMEs via magic-byte sniffing
- update overlay entry-count assertions for new builtin rule
- review round-1 revisions — gen-file splice, SEC-F001 jq hardening, test dedup, doc/style fixes
- TooltipV2 asChild mode to eliminate nested-interactive axe violations (#1847)
- re-sync scaffold template + regenerate builtin-data after drift (#1852)
- resolve 7 audit WARN findings (W1-W7) under .octopus
- retro SKILL guards — M6 sample gate, Architecture-A test exemption, self-modification bias flag
- audit R2 findings (XREF-2.4 MAJOR + TRC-10.1)
- remediate audit-process findings (DUP/NAM/STD)
- clear CI/GITHUB_ACTIONS env leak in test-parallel-jsonl nested spawn (#1853)
- review R1 — strengthen titlebar CSS hover + conditional guards
- restore 2 lost status-bar assertions + tighten app-row note
- NAM-F005 (REQ-SAF→SAF) + XREF-F041 (10→12 sections)
- pin TEST_SHARDS=3 in CI check job to match runner capacity (#1818)
- sync storybook prompt mock with word-attachments exports (#1825)
- scope line-comment-v2 tests to render container + afterEach cleanup (#1837)
- remediate round-4 findings — final round (3 MAJOR, 21 MINOR, 1 INFO fixed; 2 waived)
- remediate round-3 audit findings (1 BLOCKER, 8 MAJOR, 17 MINOR fixed)
- remediate round-2 audit findings (3 BLOCKER, 11 MAJOR, 27 MINOR fixed; 6 waived, 1 deferred)
- remediate .octopus/ infrastructure against audit round-1 findings (9 BLOCKER, 11 MAJOR, 8 MINOR, 1 INFO)
- keep all same-date models in latest family set (#1707)
- address code review round-3 findings (#1799)
- add workflow-YAML CI_PAT secret-routing SAST rules (TD-214, #1754)
- address code review round-1 findings
- complete #1797 word-suite flake fix on main (timeout + process isolation) (#1807)
- isolate word upload suite from cross-session concurrency flake (#1797, FT-004)
- fail loud on empty CI_PAT for beta dispatches (#1753)
- cover pull_request_target in CI_PAT PR-trigger guard (#1751)
- skip backoff sleep after final retry attempt
- isolate test/worktree/start.test.ts from shard contention
- protect caller's descendant subtree from cwd reaping
- type SessionSummarize response as { deduplicated: boolean }
- flag array/scalar-form on: declarations in CI_PAT PR-trigger guard (#1750)
- harden pty created/exited/deleted order test (#1780)
- retry tmux new-session when server exits between kill and recreate
- stop preload sweeper deleting live tmpdirs of concurrent test processes
- address round-1 review findings
- replace @playwright/test import with bun:test in helpers.test.ts
- harden CI workflows and Playwright config
- exclude prod octopus from dev-fresh reaping
- address code review R2 findings
- address code review R1 findings
- syncMain fetch into FETCH_HEAD + update-ref for non-bare checked-out main
- structural cross-repo confinement guard, assert all committer env wiring (#1740)
- committer token docs, env wiring assertion in routing test (#1740)
- backfill CI_PAT guard test, README full workflow inventory, committer token description (#1740)
- keep CI_PAT for publish git-push job, update README, tighten token tests (#1740)
- restore codegraph-dependent selection for @/ alias imports in test:changed (#1715)
- replace CI_PAT with GITHUB_TOKEN for same-repo ops, keep for cross-repo (#1740)
- read JWT_SECRET at call time instead of module-constant to prevent env-pollution key mismatch (#1739)
- apply code-review findings R2-R4
- merge-gate 403 — use GITHUB_TOKEN with code/issues/pull-requests permissions (#1726)
- re-mark active session read when its last message completes
- isolate prompt.test.ts + raise L1096 timeout (FT-002 #1719)
- expect 3 builtin L1 rules after stash-discipline promotion (#1685)
- align session-loop cancel timeouts with 30s file norm
- isolate global-event-replay from shard fiber starvation
- review r1 — sast set-e 修复 + synthesis malformed fail-closed + 行为回归测试
- remove invalid preserveVersionAnnotations option (unblocks Renovate scanning) (#1699)
- 合并门禁 fail-open→fail-closed (#1673) + sast 严重度门禁与声明一致 (#1672)
- correct truncated upload-artifact SHA
- update remaining overlay entry-count expectations
- provide git identity for overlay git-commit tests
- update overlay-merger-offline entry-count expectations
- restore dynamic repo resolution in undraft/verify-release-assets
- eliminate blank message area on warm session switches
- instant retry delays in mock adapter integration tests
- restore run-e2e label-gate in e2e-suite.yml after act_runner v3.0.2 upgrade
- provide Instance context in SSE integration tests
- delete diag-sse test, add env config docs, amend design wiki for ADR-0007
- export validateLastEventId + complete replay buffer integration (#1482)
- provide Instance context in replay tests (#1482)
- address code review R1 findings
- pin action refs to commit SHA + add Renovate config (#1595)
- metadata-only updates no longer bump time.updated (#1519)
- harden workflow config (#1594)
- restore PipelineLoop in InstanceBootstrap with deferred init (#1607)
- defer PipelineLoop instance-context access to init (#1607)
- R3 code review — default sourceDirs + WHITELIST context-aware + ref mismatch
- R2 code review — delete clone, exit codes, cred fix, perf
- exclude PipelineLoop from InstanceBootstrap to restore serve startup (#1607)
- reset inherited process identity at main entry (#1606)
- R1 code review — 4 BLOCKER + 9 MAJOR fixes
- fork-guard the merge-gate secret job (#1593)
- close unbalanced command substitution in merge-gate script (#1591)
- make retry delays configurable for test isolation
- clear lastCloneError on retry success (DGN-R5-F001/PERF-R5-F001)
- R4 review — clone retry backoff, annotated deref, SEC-F001 allowlist bypass, clone-retry tests
- add issue-checklist-sync L1 rule + verify Phase 5.6
- R3 review — remove encodeURIComponent regression, fix getTag array parsing, clone retry, 13-item allowlist
- address review R2 findings — restore tech-debt.md, token regex, 429 retry, clone retry, depth check, allowlist bypass, getTag pagination
- address review R1 findings — GiteaAdapter API paths, credential exclusions, token redaction, Effect patterns
- harden lifecycle across daemon restarts (#1581)
- replace Bun APIs with Node.js fs, serialize jobs, add with-deps (#1580)
- address review R1 findings — V2 schema .check() preservation, validateScheme Effect typing, test coverage
- also isolate httpapi-worktree.test.ts
- isolate httpapi-workspace.test.ts to prevent CI timeout
- narrow provision deps to WorkspaceEnsurer interface
- serialize CI runs on single runner to prevent shard SIGKILL
- resolve 5 UI test failures surfaced by CI SIGKILL fix
- isolate httpapi-workspace-routing.test.ts to prevent shard SIGKILL
- skip process-tree test in CI environment
- isolate process.test.ts to prevent shard SIGKILL
- skip permission tests under root + nginx test when nginx missing + extend process-tree wait
- isolate httpapi-session.test.ts to prevent shard SIGKILL
- isolate setup-d1.test.ts to prevent shard timeout
- report per-shard SIGKILL diagnostics and skip retry on test-parallel hangs
- suppress redundant sidebar /message?limit=200 re-poll when SSE is live
- refresh sessionTimestamps badge on session mutation events
- drop immediate toasts on manual /compact
- per-org rollup-existence check + event fallback in queryUsage
- harden AC-1/AC-2 e2e timing bounds against CPU contention
- forward full app route-root manifest through /app/ nginx proxy
- detect drizzle-wrapped 23505 unique violation in workspace provision
- CacheLayer empty-file shadowing + scaffold stops writing empty skills skeletons
- LocalLayer empty file returns null instead of "" (#1521)
- batch NULL-color backfill in Session.list (#1434)
- prevent dispose-instance from blocking on slow Scope.close in offline env
- add directory index + frontend retry to resolve sidebar date-group count lag (#1510)
- org-scope TTL purge guard + DELETE (TD-186 / #1493)
- add idle TTL eviction to LSP instances
- resolve round-5 code review findings (2 MAJOR, 7 MINOR, 3 INFO) — FINAL
- resolve round-4 code review findings (6 MAJOR, 9 MINOR, 2 INFO)
- resolve round-3 code review findings (5 MAJOR, 11 MINOR)
- resolve round-2 code review findings (8 MAJOR, 12 MINOR)
- resolve round-1 code review findings (14 MAJOR, 20 MINOR)
- symlink guard fail-open (COR-F001) — add tr NUL→newline so awk parses records correctly; add R to diff-filter for renamed symlinks
- complete TST-F201 — embed fallback reason in warning message + fix AC-5a layer (provide->provideMerge) so fromConfig-fail path is actually exercised; harden guard-rule-injection.sh grep error handling
- address code-review round-2 findings (async overlay reads, distinguishable warning reason, NUL-delimited symlink guard, empty-whitelist + LogCapture-reset tests, cached benchmark)
- address code-review round-1 findings
- rewire Instruction.system() to consume OverlayMerger for rule files
- harden overlay skill metadata against structure/prototype injection
- add session*time_updated_idx to eliminate full-table sort on session list
- wire usage_monthly_rollups into beyond-TTL query fallback
- show compaction-start UI feedback on idle /compact (#1481)
- /compact feedback chain — failed-state render, error/dedup/queued toasts, event subscriptions, i18n parity (#1467)
- tighten timeout_minutes schema to reject 0 (isGreaterThan(0))
- add Number.isFinite fail-closed guard on acquireSlot maxPollMs
- wire OverlayMerger into Skill service so remote overlay skills reach agent session (ADR-0006)
- 4 script bugs blocking official repo creation & e2e
- address 6 MAJOR + 15 MINOR code review findings (CROSS-F001/F003/F008, ERR-F006, TST-F002/F003, TRC-F003/F004, SEC-F002, STY/DOC/COR/DGN fixes)
- address round-1 code review findings
- fill chain drains while store count grows (collapsed-group sessions)
- resolve loadSessions queryFn returning undefined
- address code review findings (rejection propagation, log redaction, at-bottom rename, a11y, tests)
- parked-at-bottom drain + archived-page estimator so sidebar loads the full session table
- scroll gate deadlocks fill chain at the overflow boundary
- re-trim sessions from cached full root set so loadMore can grow the list
- address Round 2 code review findings
- address Round 1 code review findings
- rethrow loadMore rejection in wrappedLoadMore so the list's bounded-retry failure contract is reachable
- clear fillLoadPending on entering scroll mode even when the gate blocks
- reopen fill chain on coincidental equality (fillLoadPending) and pin branch consequences in tests
- fill until the list overflows (pre-load height capture + shrink-reopen) and catch handler throws
- bound fill-failure retries and use exact growth stop for no-overflow pagination
- restore sidebar pagination when trimmed list fits viewport (fill-until-overflow + scroll re-arm)
- 全站统一官方品牌 logo——新增 BrandMark 共享组件(封装官方 Mark),替换 MarketingHomepage 手工内联 SVG 与 LoginPage CSS 伪 logo,8 个组件头部统一接入
- Marketing Home story 按钮接入动线(首页→登录→控制台)
- 总览文档用原生 JSX 链接/表格(修复相对路径嵌套与表格未解析)
- MDX 从 addon-docs/blocks 导入 Meta(storybook 10.x 无独立 blocks 包)
- 注册 addon-docs 并将 mdx 纳入 stories glob
- storybook 引入 v2 语义 token 样式并使原型默认深色主题
- AC-4 cross-server switch loop (12 attempts / 10 quorum)
- restore sticky diff-card headers by composing TimelineDiffSummaryRow with the V1 Accordion (AccordionV2's overflow:hidden broke position:sticky)
- address code-review findings (comment precision, -1 guard note, test name)
- AC-4 pushState timing assertion <64ms with measured rationale
- resolve 5 tech debt items (TD-149/151/154/155/157)
- remove nested AccordionV2.Header in TimelineDiffSummaryRow (duplicate diff-card title bar)
- stop sidebar session list runaway loadMore loop (scroll-progress gate, remove .finally re-observe)
- address Round 1-3 code review findings (C1/C2/C3/C4/C6/CMP)
- address round 2 BLOCKERs
- address round 1 code review BLOCKERs
- unblock e2e suite in worktree (mock /path echo, fixture port fallback, spec AC-4/AC-8 fixes)
- downgrade bus publish log to DEBUG level to stop per-token log flooding and CPU burn
- remove duplicate tool title header from expanded edit/write content
- round-5 coordinator convergence (gauge canonical labels per amendment 008 §3, wire validateSslMode into production, @ai-artifact headers on 4 new files, sast.yml chunk-07 header, design-doc sync §7.5/§7.10/COMP-sec-008) [WI-007a, WI-007b]
- code-review round-4 findings (amendment 008: batch-dup accounting, droppedSecrets audit, gauge labels, sslmode combined-param, SAST FP fix, metric rename, tests, docs) [WI-007a, WI-007b]
- code-review round-3 findings (amendment 007: ratio metrics, batch contract, healthz, SAST, sslmode, audit shapes) [WI-007a, WI-007b]
- code-review round-2 findings (1 BLOCKER, 13 MAJOR) [WI-007a, WI-007b]
- wire real EnvInjector per amendment 005 (TRC-F001 BLOCKER)
- code-review round-1 findings (1 BLOCKER deferred, 14 MAJOR, 13 MINOR)
- code-review round-5 findings (7 MAJOR, 12 MINOR)
- code-review round-4 findings (4 MAJOR, 20 MINOR)
- code-review round-3 findings (8 MAJOR, 12 MINOR)
- code-review round-2 findings (19 MAJOR, 14 MINOR)
- code-review round-1 findings (30 MAJOR, 25 MINOR, contract DOC-F001)
- code-review round-4 findings
- code-review round-3 findings
- code-review round-1 findings
- code-review round-5 findings (final round)
- code-review round-4 findings
- code-review round-3 findings (design doc sync, plan DoD amendment)
- code-review round-2 findings + design amendment 001
- code-review round-1 findings (14 resolved, 2 waived)
- variant select renders behind dialog overlay
- address round-5 code review findings (60-min AC field, envDepth refcount asymmetry, schema docs)
- address round-4 code review findings (revert sub-minute clamp, env-restore bracket, behavioral slot-wait test)
- address round-3 code review findings (slot lifecycle, behavioral tests, templates)
- address round-2 code review findings
- address round-1 code review findings
- readable subagent timeout errors + configurable slot-wait
- correct test fixture path, remove mock leak, add version warning
- version injection, ADR amendment, fail-fast tests, whitespace
- address code review findings
- address R4 code review findings (backslash traversal, list("") regression, merge() cache restoration)
- address R3 code review findings (path normalization BLOCKER, VirtualView cache separation, exists("") contract, symlink rejection, regression tests)
- address R2 code review findings (BLOCKER test discovery, VirtualView cache bug, guard bypass, namespace, contract files)
- address R1 code review findings (cacheRoot unification, VirtualView caching, graceful degradation, path containment, fs error handling)
- remove watcher-timestamp gate from diagnostics freshness check; eliminate changedAt/touching state
- resolve watcher-timestamp race causing gate 2 to drop fresh diagnostics; add deterministic tests
- drop stale LSP diagnostics for deleted and externally-changed files (BUG-1, BUG-2)
- daemon 501, membership on sleep/stop/delete, daemon secret fail-fast, wakemodal error
- round-3 review findings (db wiring, jwt fail-closed, abort error, membership, dead code)
- 10+ findings from code review round 2
- 6 BLOCKER/MAJOR findings from code review
- reserve 24px right padding in review-panel tab trigger so close button never covers text
- make review-panel tab close button visible and truncate long filenames
- raise image-preview z-index to 1200 so it renders above dialog overlay
- correct REQ-NF ID in spec header comment
- reveal review-panel file tab close button on hover
- add hover feedback to back-to-parent link in child session
- align review panel tab label brightness with body and add chevron hover feedback
- decouple lineage resolution from route startTransition
- add SIGTERM->SIGKILL escalation + Windows guard in stop() (code review)
- guard Process.stop .exited access for plain ChildProcess (LSP path)
- Process.stop kills process tree on Linux/macOS to stop LSP grandchild leak
- OAuth callback uses cp.fetch + auth.refresh + navigate
- address code review R4 findings
- address code review R3 findings
- address code review R2 findings
- address code review R1 findings
- finalize assistant message on interrupt to prevent session freeze
- per-owner slot tracking prevents unbounded starvation bypass
- mark session read on all navigation paths
- code review R3-R5 Phase C revisions
- exclude calling session from kill_cwd_orphans
- land sessions at the latest message on open and jump
- review revisions (COR-F001 display:block, STY-F001 test())
- unified scroll model for TabsV2 settings dialog
- stop sticky diffs-header covering the card's top border
- instant sidebar highlight on session switch via pending-active signal
- persist session read-state to localStorage so refresh no longer resurrects unread
- exclude trigger's own data-expanded from tooltip ancestor check
- rotate timeline diff chevron under AccordionV2
- suppress duplicate chevron in timeline diff rows
- skip stale persisted catalog entries with empty titles in shortcuts list
- model selector popover renders above dialog overlay
- benchmark mock session route registration + register TD-020~TD-023
- address round 4 code review findings (BLOCKER + 4 MAJOR)
- address round 3 code review findings (WI-03, WI-05, WI-06, WI-07)
- address round 2 code review findings
- address round 1 code review findings
- silence child-store empty-dir noise, remove solid-dnd createRoot
- settings dialog a11y, missing icons, headless guard
- 置顶会话标题计数显示与日期分组一致(统一使用 sidebar.sessionCount i18n)
- add non-color cues for unread/subtree-active (review A11Y-001..003)
- session status dots now distinguishable without color (WCAG 1.4.1)
- defer session mount via setTimeout(0) + Suspense to unblock sidebar highlight paint
- make pinned pin icon visually distinct (solid fill)
- keep long session tooltip on-screen near the left edge
- scope question/permission prompts to active session family
- unify titlebar/sidebar session-icon status via shared computeDisplayStatus
- migrate last 5 old-domain (51z) references
- raise overlay z-index above tooltip
- remove double-click to edit session title in sidebar
- revert to L-shape layout (review panel full height)
- titlebar z-index above review panel + spacer
- titlebar full-width with pointer-events passthrough
- inject env/cwd into createTransport reconnect path
- title text vertical misalignment with icon and toolbar
- icon color mismatch + title encroachment + tooltip clipping
- 4 TitleSlot bugs — layout encroachment, missing session icon, stale title, font brightness
- address R2 review findings (DOC-F004, TST-F002)
- address code review findings (5 fixed, 15 waived)
- address code review R1+R2 findings
- resolve R2 regression in KaTeX CSS fallback (ERR-R3-F001)
- address code review round 2 findings
- address code review round 1 findings
- remove as-any cast, add manualChunks documentation
- address code review round 1 findings
- remove duplicate test file causing mock contamination
- round-2 review — TOCTOU race fix, unreachable catch removal, test coverage gaps
- verify-stage fixes (compare.ts ≤200 lines, typecheck.sh temp tsconfig)
- round-5 review — atomic manifest write (tmp + renameSync)
- round-4 review — manifest array guard, enumerate-dist error logging
- round-3 review — CHUNK_UNREADABLE exit 2, baseline type guard, div-by-zero guard
- round-2 review — guard main bundle lookup, validate baseline chunks, error-path tests
- address round-1 code review findings (12 MAJORs, MINORs)
- guard kill_port_holder grep no-match to prevent dev-fresh --full abort
- Gitea 端口由 :3000 调整为 443/HTTPS,CI 与文档引用统一指向 eightarms.net
- dev-fresh reaps orphan bun dev + browser processes by cwd (#1315)
- isolate compaction.test.ts under 7-way CPU contention
- rename Advanced section title to Interface (#1309)
- skip rAF FPS loop in headless/automated Chrome (#1314)
- Auto Approve stage labels (#1304) + stageless a11y (#1305)
- dev-fresh kills external port-4096 squatter
- resolve 3 high-priority settings dialog issues (#1301 #1302 #1303)
- guard undefined session.time in relativeTime memo
- address code review round 1 findings (TRC-F001, TST-F001~F005, STY-F001)
- stage descriptions render italic
- render pin indicator on pinned titlebar tabs
- update i18n test for italic descriptions
- taller dialog for auto-approve stage list
- guard measureElement against elements without data-index
- rename mode.full label to accurate stageless wording (zh/en)
- review findings — A11Y contrast/aria-live, TST assertion gaps
- reactive form sync, no-session notice, SDLC stage order, descriptions
- sanitize auto_approve on write paths + add setAutoApprove regression tests
- provide Git.defaultLayer inside hook to resolve Service-not-found defect
- LSP status popover uses sidebar ScrollView scrollbar
- retry fetch in syncMain to handle stale remote ref after merge
- derive titlebar prefetch complete from cursor
- write message parts in tab-switch prefetch
- close busy/currentTab race causing cross-session tab desync
- revert measureElement height gate (caused session-switch blank)
- wrap titlebar session tab tooltip so full title is visible
- show session item tooltip below item with full title
- gate virtualizer re-measure on sub-pixel tolerance
- correct pin icon, remove dead signal, add loadMore catch, standardize warn prefix
- replace balloon-shaped pin glyph with Lucide push-pin so sidebar header reads as a thumbtack
- update stale test assertion for flat checkbox list
- gate measureElement on height change to eliminate session-switch highlight lag
- add pin icon to V2 registry so pinned-session header no longer falls back to "+"
- resolve 4 issues in session auto-approve dialog
- use cache lookup for markdown initialValue to avoid blank-on-tab-switch
- render formatted markdown synchronously to eliminate raw-source flash
- add @ai-artifact headers to 8 test files (TRC-F003)
- resolve 2 BLOCKERs + MAJORs from code review
- inject context deps into setSessionMetadata to fix pin error
- refresh stale session messages on tab reactivation
- rename input wrapper fills dialog content width
- rename dialog input fills dialog content width
- persist session metadata storage to enable pin in web app
- re-measure timeline rows on content resize to clear scroll blank gaps
- gate messagesReady on completeness to prevent double-load on session switch
- whitelist/full mode toggle deadlock in auto-approve settings
- 自动审批对话框UI修复 — 术语统一+移除风险徽章+滚动条+内容消失bug
- attach stages_registry_meta in loadGlobal and updateGlobal
- finalize assistant message on abort so session tab stops blinking
- bump body base font-size 13px → 14px (text-12-regular → text-14-regular)
- changes count format 变更(N)+ 更改→变更
- scope global * font-smoothing selectors to [data-component]
- read stages_registry_meta from globalSync, not sync context
- refresh effective_auto_approve in status bar after config changes
- poll frontend readiness instead of single-shot 3s check
- code review round 2 — zh.ts @deprecated parity (DOC-F005)
- code review round 1 — reset semantics, i18n, registryMeta, DRY util
- align mode dropdown/checkmark + swap expand/collapse icon
- split view toggle, checkmark indicator, tab-switch button hiding
- tab count format, dropdown indicator, button style
- fall back to dataUrl when image upload fails
- clean up pending questions on session.deleted
- address round 4 code review findings
- address round 3 code review findings
- address round 2 code review findings
- address round 1 code review findings (19 fixed, 22 waived, 6 deferred)
- unify review panel bg with file tree layer-01
- align status bar indicator text with body color/size and swap server count-label order
- align rail and status bar bg with sidebar
- make v2 token primary in review panel bg so it matches file tree
- align review panel bg with file tree panel
- use Tsinghua PyPI mirror (13 kB/s -> 22 MB/s)
- drop Docker (DinD-broken), pip-only semgrep
- semgrep CWD + PEP668 from run 2024 diagnostics
- address code review findings (round 1-2)
- distance-aware session color recycling
- repoint 4 dangling favicon symlinks in web/public
- remediate round-2 residual findings
- remediate round-1 BLOCKER/MAJOR findings
- persist attached image bytes and expose path to main model
- sync 10 unit tests with current implementations
- brighten scrollbar thumbs one step (base #3a3a3a→#484848, hover #525252→#646464)
- brighten scrollbar thumbs one step (base #2e2e2e→#3a3a3a, hover #424242→#525252)
- brighten scrollbar thumbs one step (base #242424→#2e2e2e, hover #343434→#424242)
- dim scrollbar thumbs another step (base #2e2e2e→#242424, hover #424242→#343434)
- dim scrollbar thumbs another step (base #3a3a3a→#2e2e2e, hover #525252→#424242)
- dim scrollbar thumbs another step (base #484848→#3a3a3a, hover #646464→#525252)
- dim scrollbar thumbs another step (base #585858→#484848, hover #787878→#646464)
- dim thumb hover another step (#8c8c8c → #787878)
- dim panel-entry thumb base another step (hover unchanged)
- dim dark v2 text ramp one step (base #c0c0c0→#aeaeae, muted→#808080, faint→#6f6f6f)
- move file-tree padding off the tab content so the ScrollView thumb hugs the panel edge
- dim dark text-strong #EDEDED -> #c0c0c0 (116 sites)
- swap file-tree native scrollbar for ScrollView JS thumb (eliminates native arrow buttons)
- unify file-tree thumb to 4px, harden arrow-button hiding, dim another step
- replace ghost v2-text-text-weak token (rendered pure white)
- dim scrollbars another step + harden native arrow-button hiding
- route app session UI text through v2 token
- soften scrollbar brightness + unify width + hide native arrow buttons
- unify session message tool/card text to v2 token
- use text palette for ScrollView thumb (unify with thin-scrollbar)
- route session message text through v2 token
- brighten dark-theme hover-reveal scrollbar (base + near-white thumb)
- brighten hover-reveal scrollbar, theme-aware thumb hover
- tab accent strip / top+bottom edges now clickable
- gate session cache check on complete fetch, not just non-empty array
- make thin-scrollbar hover-reveal (hidden by default)
- add bottom padding to composer region
- add executable bit to check-no-new-deps CI script
- raise thin-scrollbar thumb contrast to WCAG >=3:1
- remove unreachable conflict-detection pass in duplicate-rules test (COR-F001 R2)
- address round-1 code review findings
- resolve 13 extra ghost color tokens + add CI guard step
- resolve 46 ghost utility-class usages via hybrid ADD/REWRITE + CI guard
- align composer region background to workspace base tier
- overlay close button (absolute, constant w-4) so session tab width stays stable across hover/active
- materialize sparse measurementsCache Proxy via Array.from to stop new Map crash on warm session switch
- collapse inactive session tab close button to reclaim click area
- mark viewed session tab active after Home toggle
- apply thin-scrollbar to file-tree panel scroll container
- capture full layout from measurementsCache on warm session switch to stop totalSize inflation
- use background-color longhand so lightningcss preserves the var() thumb color
- unify shell structural divider tokens
- migrate V1 SortableTerminalTab close button to V2 TabsV2.Trigger
- migrate newLayout=true terminal tab to V2 TabsV2.Trigger
- remove trailing pb-3 gap below session composer so input sits flush with panel bottom
- restore z-index on .v2-tooltip so it paints above fixed page UI
- migrate legacy terminal tab close button to V2 TabsV2
- wrap DebugBar tooltip text so long metric descriptions aren't ellipsis-truncated
- re-bind current() to recreated store via storeVersion signal
- invert terminal panel top-edge resize delta to match drag direction
- document setsid dev-server architecture, replace stale tmux isolation
- stack ResizeHandleV2 above scroll-view thumb so panel border stays draggable over scrollbar
- resolve code review round 1 findings
- keyboard resize via onResizeStart lifecycle callback
- resolve CMP-F001, COR/ERR-F001, DGN-F001, TST-F001, TRC-F002
- replace tmux with setsid for dev server process management
- remove content area padding and accordion border/radius in review panel
- add remain-on-exit to backend tmux session
- remove vestigial showDirectoryPicker type + dead test code
- return 404 for unknown routes instead of empty 500
- correct shadowed limit in session metadata dedup
- unbind SSE GlobalBus listener on client disconnect
- 修复首页布局混乱问题
- remove gray bg from review panel right toolbar for consistency
- align side-panel tab strips with titlebar axis via pt-2
- restore left radius on root rows, drop literal comment from class
- sub-session row layout overflow and title suffix in sidebar
- migrate review panel file tabs to TabsV2.Trigger for tab bar parity
- register v2 color tokens in Tailwind @theme so -v2- utilities generate rules
- 移除 web 无意义的 root p-px 亮缝,status-bar 顶边换实色 border-weak-base
- use bridged solid border-weak-base for structural three-column dividers in dark theme
- replace ButtonV2 with IconButtonV2 for file tree toggle
- dim ghost icon buttons in default state, brighten on hover/active
- address code review findings
- correct V2 icon names in review panel tab bar
- align date group count text style with session item secondary info
- resolve sidebar icon + session-item text regressions
- restore status-toggle hover icon highlight on ButtonV2
- use inline style right:0 instead of Tailwind classList (JIT doesn't scan classList object literals)
- add showDirectoryPicker global type declaration to unblock typecheck
- review handle anchored right-0 + file-tree drag direction negated (-delta)
- add frontmatter to component guide, fix token line range
- address code review round 1 findings
- remove AC-005/AC-015 tests per design §A.3
- horizontal ResizeHandleV2 invisible (h=0) via absolute positioning
- ResizeHandleV2 emits per-frame delta (pos-lastPos) not cumulative (pos-start)
- titlebar hover rules cover ButtonV2 (data-component mismatch)
- remove non-existent V2 props (gutter, ItemLabel)
- address code review findings (round 2)
- address code review findings (round 1)
- address code review findings (round 1+2)
- read stage registry meta from instance config
- address code review findings
- update test assertions for V2 migration + verify all gates
- persist active server to sessionStorage so it survives refresh
- re-fetch empty message cache on session switch-back
- restore missing bun:test import in v2-theme.test.ts
- address R2 code review findings (DGN-F001, TST-F001, TRC-F002, TRC-F005)
- lock resize cursor via full-viewport overlay during drag
- resolve sub-session row overlap on client-side nav and list reorder
- restore measured sizes on warm session switch
- clear busyTab on navigate-away to resolve active-tab/message desync
- field-v2 test SSR error, toast-v2 hardcoded color extraction
- COR-F001 ListV2 spread regression, CMP-F005 toast promise type, TRC-F005 stale header
- address code review round 4 findings
- address code review round 3 findings
- address code review round 2 findings
- address code review findings R1
- lock resize cursor during drag (no pointer flicker)
- reserve pb-6 in sidebar nav so status bar no longer covers session list
- wrap message/part memos in retainLastTruthy to stop stale accessor on session switch
- re-acquire right-toolbar portal mount on titlebar rebuild
- resolve session list overlap and zero message count
- remove .ts extension from dynamic import for tsgo compatibility
- address code review findings R1-R3
- notification hrefs use server-scoped route to prevent tab activation race
- reduce sidebar min width from 400 to 320 (one fifth)
- stabilize VirtualTimelineRow root node to prevent session-switch insertBefore crash
- match search input height to toolbar and restore usable width
- raise resize-handle z-index above scroll-view thumb
- 搜索图标移植到实际挂载的 unified-shell.tsx
- retain last truthy item to prevent stale accessor
- 会话标题 span 添加 block 显示以启用文本截断
- 修复会话列表日期组折叠不隐藏项 + 辅助信息不随面板缩窄
- guard virtualRowKeys against undefined items from getVirtualItems
- titlebar ghost Button hover brightens icon color
- 修复侧边栏会话列表三个 bug
- code review round 2 findings
- code review round 1 findings
- 移除变更项列表 box 外边框并还原 review-panel 内容容器边框
- address code review round 2 minor findings
- address code review round 1 findings
- 浅色模式 surface-raised-base-hover 过浅导致侧边栏图标 hover 不可见 (#EDEDED→#D8D8D8,对比度 1.10→1.34)
- 移除审查面板内容区域的左边线
- 侧边栏顶部工具条 ghost IconButton hover/focus 改用可感知的 raised-surface token
- add visible hover feedback to V2 titlebar right toolbar
- 审查面板标签条工具条按钮 hover 无视觉反馈
- remove stray // comment leaking as context menu text
- address code review round 1 findings
- constrain titlebar width to session panel (L-shape)
- code review R2 TST findings — add behavioral test coverage
- code review R1 findings — 3 BLOCKERs, 18 MAJORs fixed
- restore L-shape layout so review panel reaches window top
- address code review round 1 findings
- offset SessionSidePanel tab bar below titlebar
- correct WORKTREE_ROOT depth and relative test path in verify-cross-cutting.sh
- code review findings (null guards, test names, traceability headers, tool checks)
- add user-facing notifications for pin/archive/rename failures
- address code review round 1 findings
- add ArrowLeft/Right keyboard navigation to tab strip
- address round-2 code review findings (TST-F006 + TRC-F004 WAIVE)
- address round-1 code review findings (TST/TRC/DOC)
- single shell-level Titlebar instance with reserved slot
- add console.warn for missing i18n key, fix test annotations and names, add NaN test for formatMessageCount
- update test assertions for sessionStore.agent optional-chaining removal
- address 7 findings from code review round 1
- replace createEffect with createComputed in setCurrentTab to resolve effect ordering race
- remove deferRender Show guard around SessionReviewTab to prevent remount on session switch
- restore showChild prop lost during chunk-01 SessionListContainer refactor
- guard VirtualTimelineRow against missing item in virtualizer map
- seed session directory from URL param to prevent Splash unmounting titlebar
- null guard in getScrollElement + benchmark mock project setup
- Round 3 convergence — singleton reset, matchSessionTitle export, createRenderItem extraction, waivers documented
- address Round 2 code review findings (PinnedSection consumption, BR-04 guard, perf, a11y, test isolation)
- keep frontend session alive after crash via remain-on-exit + log tee
- tabs.tsx 行数测试 split off-by-one
- set ANALYZE=true so bundle job emits bundle-stats.json
- collapse redundant session fetch, prevent Splash unmounting titlebar
- reap legacy backend session independent of dedicated socket
- capture timeline snapshot before re-render, reset toolOpen on switch
- stop titlebar tab strip reload on sidebar session open
- scope preview tab slot per project (VS Code parity)
- key timeline cache by current session, not mount-time ownerSessionKey
- keep preview tab visible when switching to pinned (VS Code parity)
- L-shape titlebar layout so review panel reaches window top
- bulletproof autofocus via focusin lock + staggered retries
- stable autofocus via onMount retry loop in PromptInput
- prevent default focus steal on prompt-input wrapper mousedown
- project name fallback from worktree basename + UI improvements
- autofocus prompt input in new-session dialog
- add SSE retry field to mock server responses
- add process-level timeout guard to bun test invocations
- restore expectNoSmokeErrors and mock cockpit SSE
- correct E2E SPA navigation and mock-server port binding
- code-review round-1 revisions (4 fixed, 13 waived)
- render Titlebar once in unified-shell, drop session.tsx duplicate
- typecheck — add empty fn to test.todo for TS2554
- intercept EventSource requests in mock server to fix 404 console errors
- pin wall-clock in time-format test to remove 10:30-11:29 daily-failure window
- set GlobalBus maxListeners to 100 for SSE fan-out
- ActiveSessionAggregator Effect.catch→catchCause + serviceOption pattern
- add missing ui.common.submitting i18n key for question dock submit button
- apply round-2 review revisions to standalone-bugfix mode docs
- add explicit role=banner for nested mount robustness
- add standalone-bugfix mode to Preconditions
- code review round 1 revision (6 MAJOR + 9 MINOR fixed, 24 waived)
- unbreak pipeline-board hang and activity-stream 500
- cross-validate reorient hint with workflow-branch evidence (#748)
- hide rail in mobile breakpoint (<768px)
- show session-color dot in sidebar when idle for parity with tab bar
- tab bar status dots render at fixed 6px, not caller-overridden 12px
- address review round 1 findings
- retry on definition error now refetches both board and definition queries
- extract .message from plain-error objects to avoid [object Object]
- surface abort errors via showToast instead of silent catch swallow
- address code review round 3 findings — session header, prefetch test name
- address code review round 2 findings — COMP-005 deviation doc, stale TODO, import merge, log test
- address code review round 1 findings — preview/pinned invariant, SWR cache, diagnostic logs
- explicit preview-tab state machine + tab-switch perf quick wins
- SEC-F004 + TST-F009 R5 cap round (remove #/ from URL whitelist, replace bench CARRIED guard with assertion)
- remove remaining CARRIED escape hatches in 2 octopus-side bench files (TST-F009 follow-up)
- 6 R5 findings (SSE type filter, empty state, keyboard guard, sourceId stage, type dedup, bench escape hatch)
- PERF key + A11Y dup onKeyDown + bench rewrite + TRC import + DOC comments + weak assertions
- 6 findings from R2 code review (COR-F004,F008,F012, A11Y-F001, DOC-F010, DGN-F014)
- WI-011 a11y remediation
- address round-2 code review findings (1 MAJOR, 6 MINOR; 3 waived)
- address round-1 code review findings (9 MAJOR, 16 MINOR)
- skip a11y:check when baseline snapshot is missing (#824)
- drop waitForLoadState(networkidle) best-effort wait (#823)
- use domcontentloaded for navigation (#822)
- increase scan timeout to 5 minutes for 34 components (#821)
- add waitForAnimationSettled to Popover axe scan (#820)
- add mock backend server for ConnectionGate health check (#818)
- context-menu trigger contrast + animation-settled axe scan (#814)
- show pending label on question dock submit button while reply mutation is in flight
- reset rail userExpanded on responsive breakpoint change
- add size=large to V1 Dialog auto-approve footer buttons
- unify tab-bar busy indicator with sidebar derivation
- exclude WebKit from all Playwright configs (ICU 78 missing) (#809)
- context-menu right-click gesture + relax visual diff threshold (#808)
- use --text-base for Kobalte group-label and item-description WCAG AA contrast
- lower railAutoHidden threshold from 818px to 768px
- add re-entry lock to handleSubmit to prevent duplicate session creation
- unify DialogV2 footer buttons to ButtonV2 size=large
- remove click-toggle race in Kobalte visual/a11y tests (#743)
- WCAG radiogroup semantics for DialogAutoApprove scope/mode selectors
- use --text-base in Collapsible stories for WCAG 2.1 AA contrast (#744)
- preheat storybook stories to eliminate visual test compile stalls (#728)
- apply code review round-1 revisions
- declare effectiveValue before statusText to fix TDZ
- R2 code review findings — add isDegraded handling, fix onKeyDown placement, add formatTime NaN guard, add architectural rationale comment
- R1-R5 code review findings (NaN guard, Object.hasOwn, SSE error handling, aria-hidden, test assertions)
- R1-R4 code review findings + 3 design amendments
- defer SessionObserver Bus subscription to start() to prevent layer-build failure
- reorder cockpit Layer.provide so SessionObserver (depends on ActiveSessionAggregator) is provided first
- R1 review findings (controlled Collapsible, stable session refs, Trigger role=button, ArrowUp/Down nav, missing tests, fade transition class)
- R2 review findings (move onClick to inner div to prevent click bubbling, add applyChange JSDoc)
- IT2 R1 review findings (A11Y keyboard nav, aria-label, reduced-motion, res.ok guard, SSE JSON.parse guard, fetch timeout, accessor naming, applyChange export + behavioral tests, @ai-artifact header, JSDoc, recursion bound, style hoist)
- add missing sessionStatus.get timeout in buildSubAgentTree (R3 ERR-F001)
- resolve remaining R2 MAJOR findings (ERR-F005, DGN-F001, ERR-F003)
- render NeedsYouSection unconditionally
- mount NeedsYouSection into NewHome
- apply IT2 code review findings (2 rounds)
- apply 3 rounds of code-review findings
- align CockpitErrorResponseSchema shape, declare API error schemas, guard SSE JSON.stringify
- address review-code findings
- dedupe invalid stage keys in set_auto_approve (#680)
- variant dropdown mouse-click selection steals focus from editor
- apply R2 review fixes — syntax, null guards, type safety, SAST pipeline
- apply code review round 1+2 revisions
- expose effective_auto_approve to Web UI
- exponential backoff + attempt cap for title placeholder polling
- chat column shrinkable + aside min-width when review open
- add Suspense + Show fallbacks to prevent blank main on session switch
- coordinate resumeScroll with virtualizer scrollToEnd
- replace OPENCODE watermark with octopus wordmark, eliminate CLS, fix tab truncation
- mount LocalProvider in ResolvedDraftRoute tree
- mount SyncProvider in ResolvedDraftRoute tree
- eliminate new-session reload flicker and open draft tab
- highlight tab icons on hover/selected
- regenerate SDK to include stages_registry_meta in Config type
- refetch session info as fallback when SSE title update is missed
- replay session.status on event stream subscribe
- self-heal failed MCP servers instead of permanent exit
- pin active session caches against trim-driven eviction
- align file tab icon baseline with review tab via items-end
- share fileTree state, restore aria-expanded, gate tooltip on aria-haspopup
- review toggle tooltip, whole-panel control, tab-content gap
- align review tabs to bottom of strip to eliminate gap with content
- match review panel tab strip height to session header (48px → 40px)
- move review panel toolbar to far right of tab strip
- resolve visual storybook flakiness from thundering-herd compile
- redirect playwright MCP output out of project root
- hide desktop sidebar below xl breakpoint to restore narrow-screen content area
- navigate to full route in openParent to avoid double-mount
- render single Titlebar on /:dir/session route
- strengthen primary button :disabled affordance
- apply review-code round 2 revisions
- apply review-code round 1 revisions
- L-shaped titlebar + session layout right column to top
- round 1 review findings — null guard, camelCase var, design signature alignment
- rename TEST-C0-054 → TEST-C0-055 to resolve collision (round 5)
- round 4 review findings — registry.loaded source field, test label renumbering
- round 3 review findings — writable() strips stages_registry_meta, realign test labels, add TEST-C0-043/045
- round 2 review findings — stages_registry_meta placement, log fields, readonly removal, missing tests
- use getAllStages for meta and normalize calling_context
- drive forced scrollTop assignment even when distance<2 to fix jump-to-latest no-op
- scope current tab visibility to current project directories
- capture project.worktree in local const to prevent TypeError on last tab close
- keep post-close tab navigation within the closed tab's project
- add WebKit system dependencies to e2e-suite workflow
- prevent phantom tab on pinned close by sharing just-closed suppression
- remove artificial width caps causing model/variant selector overlap
- prevent phantom parent tab when closing pinned child tab
- stop aborting previous session's run on session switch/unmount
- address code review findings (round 1+2)
- session switch skeleton, timeout, abort, deferred diff/todo
- prevent phantom tab when closing pinned root tab
- prevent phantom tab on pinned close by keeping guard through close-to-navigate window
- pin footer above scrollable body in auto-approve modal
- auto-approve dialog padding, master-switch hierarchy, section grouping
- image-interpret empty result — wrong model + silent error swallowing
- resolve 7 actionable tech-debt items
- address code review round 4 findings
- redesign auto-approve dialog into dual mode + scope selector
- WebP lossless parsing, stub text removal, file I/O error handling, lint fix
- wire applyCapabilityOverrides + guard mimeToModality + robustness improvements
- remove ugly focus outline on Server/MCP popover buttons
- widen Plugins popover to 520px for content visibility
- popup floating container, overflow scroll, remove SyncHealth, add separators
- bump V2 scroll-to-bottom button z-index above scrollbar thumb (100→110)
- inactive text use muted color (#aeaeae)
- inactive text = faint (no opacity dimming)
- increase inactive text opacity to 96%
- increase inactive text opacity to 92%
- remove bold from active, increase inactive to 85% opacity
- suppress session switch during tab drag via dragSuppress + suppressNavigation
- remove italic, increase inactive opacity to 75%
- use aria-current instead of data-active + italic for unpinned
- add real CSS color rules for titlebar tab active/inactive distinction
- bump scroll-to-bottom button z-index above scrollbar thumb (60→110)
- change new-session worktree default to main + ensure create sends body
- dim inactive titlebar tab text for clearer active/inactive contrast
- replace titlebar scrollIntoView with manual scrollLeft
- replace scrollIntoView with manual scrollTop in sidebar
- change sidebar scrollToSession from smooth to instant scroll
- guard scrollIntoView with visibility check + add overflow-y-hidden to nav
- tech debt cleanup — 6 items (#477 #538 #520 #540 #577 #578)
- run_with_retry stale rc, cache ordering, bun install retry
- remove spurious italic on tab titles + map DnD visible indices to store indices
- suppress auto-add re-creation of just-closed session tab
- compaction part wrapper shrinks to content width instead of stretching
- handle Chinese compaction headings + remove title overflow clipping
- add top padding to message timeline virtualizer
- use block:nearest in tab scrollIntoView to prevent 1-2px vertical shift
- extract goal in compaction subtitle, suppress redundant compact tool block
- render compaction block in main app timeline
- inject vision capability guidance into system prompt
- render compaction as a command-block, remove centered divider
- prevent cross-process temp dir deletion in preload sweep
- address code review round 1 findings
- capability gate skips visual-review for vision subagents
- resolve model param from JSON-stringified object
- hide timeline content during virtualizer remeasure on session switch
- default store.changes to turn mode
- reset changes to turn mode on session switch
- use session-level diff as default review source
- warn when requested role is missing to expose silent model override fallback
- refresh VCS diff on session switch
- tabHref emits full path for active-server tabs to stop remount
- git status/diff work on bare repos via GIT_WORK_TREE
- use short session path for active-server tabs to avoid route-tree reload
- include directory in session URLs to enable sidebar rendering
- detect vcs=git for bare repos where --show-toplevel fails
- prevent stale crash on session navigation
- tolerate absent directory in workspaceStorage
- resolve lint warnings in pin-hide test files after rebase
- update home-session-search.test.ts for server search refactor + verification artifacts
- code review round 1 revisions — CSS class, regex u flag, Spinner ARIA, reportSearchError, test assertions
- code review round 1 revisions
- guard pathKey against falsy input (undefined/null/empty)
- tabHref always uses SHORT URL, remove SHORT→FULL redirect
- remove legacy session URL scheme + decouple newLayoutDesigns from URL
- address code review round 2 findings (COR-R2-001, DGN-F001, TST-F001, TST-F003)
- address code review round 1 findings (ERR-F001, COR-F002/F004, DGN-F002, A11Y-F001/F002, DOC-F002)
- three compaction bugs — divider display when queued, HTTP blocking, message ordering
- skip navigation on double-click's second click to prevent page refresh
- resolve real session status so busy spinner shows
- prevent focus-outside from dismissing model selector popover
- scope titlebar session tabs to the current project only
- let Tab key focus tree when no suggestions active in V2 directory picker
- 3 R3 regressions (focus, double toast)
- add missing dialog.directory i18n keys to 15 locales
- gate sidebar width transition on !state.sizing to prevent drag lag
- add tabIndex to FileTree container for keyboard access
- useGlobalSync returns noop fallback instead of throwing when provider is unmounted
- add missing dialog.directory i18n keys to Traditional Chinese (zht.ts)
- scroll-to-bottom button not scrolling on click
- filter undefined items from SolidJS store proxy before Map construction
- remove dev-only HelpButton placeholder ? from bottom-right corner
- subtask click not opening child session in cross-server routes
- native directory picker silently swallows errors leaving caller dangling
- tab accent color missing after async color assignment
- directory picker box not filling dialog content width
- always show message model info and action buttons
- guard VirtualTimelineRow against undefined timeline row
- sidebar border gap at titlebar + spinner uses session color
- right-angle TL corner, sidebar visual collapse + hover peek, taller titlebar/tabs
- use alpha-dark-30 for dialog overlay scrim
- address code review findings COR-F001/F002, DGN-F001/F007, A11Y-F001/F002, DOC-F004, TRC-F002/F003
- active tab accent line flickers on hover
- address R2-R4 review findings
- type mock functions in preview tests
- use alpha-dark-70 for dialog overlay scrim
- forward onContentRendered to fix virtualizer blank gaps
- 补全 CompactionPart 类型契约并 i18n 化 ui compaction 文案
- pass language as prop to avoid HMR context crash in timeline rows
- use alpha-dark-80 for dialog overlay scrim
- compaction divider reflects pending vs completed state
- reconnect scroll-up history loading trigger in MessageTimeline
- use process.getuid?.() for optional call typing
- install ripgrep+tmux, skip root-incompatible permission tests
- repair orphaned assistant messages on DB load
- restore intentional visibleTabs filter overwritten by #446
- tab title sync via reactive SessionCache and show all tabs
- add directory to SessionTab to eliminate redirect chain on tab navigation
- create titlebar tab on legacy session route via active-server fallback
- align sidebar panel width with 50px rail so scrollbar sits flush to edge
- include currentTab in visibleTabs for child sessions
- match current tab by URL path instead of broken matchRoute
- eliminate collapsed-sidebar seam, widen rail to 50px
- hug sidebar scrollbar to panel right border
- show all tabs when no current session, use tabKey identity for current match
- correct source file paths in home page verification tests
- show all tabs in strip instead of pinned||current filter
- align session-list scrollbar with message list and reserve busy-indicator title slot
- reduce excessive left/right padding around titlebar buttons
- wrap percentage in parentheses
- use tabKey comparison in tab visibility filter
- use Web Vitals session-window CLS algorithm in DebugBar
- reduce excessive whitespace around share page vertical bar
- add missing i18n keys for V2 directory picker nav buttons
- align sidebar scrollbar with panel right edge
- prevent duplicate messages in session timeline
- navigation buttons pushed off-screen by TextInputV2 flex:none
- replace V1 DialogSelectDirectory with useDirectoryPicker in LegacyHome
- dark mode CSS selector, image attachment robustness, visual-review delegation rule
- eliminate MCP oauth test flakiness with explicit timeout + global state cleanup
- import v2-theme.css so CSS variables actually load
- define all missing --v2-* CSS custom property tokens
- darken dialog overlay scrim and fix incomplete open-project dialog
- prevent infinite scroll stall + use scroll container as root
- handle URL objects in unsupportedParts image saving
- handle ENOENT in FileSystem.writeJson by delegating to writeWithDirs
- update question tool test for stageless-prompt behavior
- stageless questions prompt in whitelist mode
- persist unsupported-model media to disk so visual-review can read it
- new session creates a tab but does not navigate to it
- Home session click navigation + reactive Layout passthrough
- titlebar uses params.serverKey instead of params.dir for server key resolution
- skip stale command registrations during disposal
- prevent legacy autoselect from redirecting V2 homepage
- remove dead FSA branch from directory picker hook
- auto-populate projects from backend sessions on first visit
- remove broken FSA branch in directory picker policy
- address code review findings (ERR, SEC, A11Y)
- enable dev health check + show connection-error state on home
- provider connect dialog hangs on global.dispose
- V2 session route tab navigation — two-route approach
- sync tab title via session.updated SSE event
- use router navigate() for tab switching, guard session resolution before bootstrap
- update stale preloadMarkdown tests after V1 home restoration (#381)
- address 4/7 cosmetic findings in code-mode.ts (TD-004 #358)
- restore V1 home page with centered logo and recent projects
- isolate readiness + OAuth tests, simplify retry helper
- isolate readiness.test.ts to prevent fs module co-location interference
- use set +e in retry function to handle subshell set -e interference
- resolve test:parallel exit code 1 from flaky timing tests
- align V2 home sidebar layout with opencode
- skip health check for unregistered workspace remote targets
- resolve 4 tech-debt items (TD-005/004/006 multi-server-proxy, TD-001 port-codemode)
- log warning on model override fallback in Task tool
- add recentlyClosed to ServerProjectState store init and tests
- add ClosedTab store params to createTabsMethods test callers
- code review round 2 — COR-F002 pool shadowing, ERR-F001 throw, PERF-F001 body leak, DOC comments
- code review round 1 — 9 fixes, 18 waived
- restore useDirectoryPicker dispatch in Layout.chooseProject
- restore codemode-core files lost during rebase (merge commit flattened)
- code review rounds 2-3 — rename filterPermissions, add MCP Context.getUnsafe comment, onExit for after-hook, null guards, Effect.ignore, improved error messages
- code review round 1 — add switch default case, export filterByPermission, add 4 permission filter tests
- address round 2 code review findings
- wrap token-stage-ledger hooks in server() factory
- update DialogServerV2 source-verification test for DialogHeader/TitleGroup import
- document triggers field in customize-octopus skill
- add triggers to 4 undiscoverable skills
- broaden triggers so the skill actually loads
- add source-verification and edge case tests per TST-R2 findings
- pass through real command exports in mock to prevent cross-test leakage
- address 18 review-r1 findings — inflight dedup query check, A11Y labels/focus/escape, session search tests, ADR-0004, mock types, CSS cleanup, type exports
- hard-block merge-pr and auto-approve stageless questions
- surface auto-approve decision reason in question prompts
- resolve 10-dimension process-audit findings
- use useFile().tree context API names (state/expand/collapse)
- clear namespace gate and prettier on file-tree-v2 tests
- address round 1 code review findings
- cover bare-root paths in external_directory allowlist
- question tool walks parent session chain for auto_approve override
- use mklink /J instead of ln -s for .artifacts junction on Windows
- address code review findings (4 fixed, 5 waived)
Reverted
- progressive delayed/timeout hint in session Suspense fallback (#2172)
- undo centered chat column delineation (reverts PR #1172, merge 7289eec0)
- 回退 PR #996 与 #1003,恢复变更项列表 box 边框
Documentation
- 退役 08-07/08-15 runner 标签 + 容量 4+4→6+6 的记录与回滚语义更新
- headless-session-ops 增补配额墙恢复配方
- close review R2 minors — OSError path, size<prefixlen semantics, selftest +2 cases
- harden spec parsing + real-path selftest (review R1)
- ceremony-budget 分支 dispatch 失败归因(既有硬编码 main ref,非镜像问题)——验证路径改为合并后 main 上 dispatch
- docker 任务网络抢占 k8s 网段(172.28.0.0/16)runbook + 自检脚本
- versioning history 补记 bake rollout 2/2——三工作流迁移实测数据与破例说明
- README 版本史补 2026-08-29 条目(PR #3664)——bake 落地、扩容与 cap、零杀滚动重启语义
- AGENTS.md 如实化 k8s dev 集群描述(单节点池,pool=dev 标签已移除)
- 去除 regen 命令模板占位符残留 (#3618)
- /experimental HTTP 前缀使用规范与转正 SOP (#3618)
- 面板唤醒注释对齐截图仅激活时唤醒
- per-reviewer findings overlap retro artifacts (#2996 step 1)
- reviewer 模型×轮次×成本 Phase 0 原始数据、分析脚本与台账回填
- Windows 检出 app 全量单测两类环境假失败(URL pathname ENOENT / CRLF 正则锚点)的判别法与定向测试姿势
- enumerate timeline event source in head comment(#3472)
- TD/STD-F004 record .octopus/runs/** edit-grant residual risk as accepted trade-off (#1988 exception)
- TD/DUP-F009 oversize signal naming alias note (canonical: dag.size_derivation.oversize_signals)
- TD/DUP-F006 single canonical WAIVED-{id} pointer to review-revision-prompt.md in review-code SKILL
- TD/FM-F002 document shared stage:review rationale (review-artifact + review-code, Pattern 7.5)
- TD/DUP-F005 consolidate Kanban column-lifecycle note to single shared reference in gitea-write-patterns.md Pattern 7.5
- retire 7 dead blocks to rules-history archive + slim yaml banners (#3326)
- #2291 item 15 — document all compact tool rejection reasons
- headless health-check recipe uses progress heartbeat + dual-sample verdict (#3215 fix dir 3)
- PR 合并 405 双因处方 + token 卫生 + docker exec -i SQL 红线
- gitea-rest wiki 读取形态修正(#3218 证据)+ UAT 残留映射清理记录
- AC3 方案 B 落地 + AC4 存量迁移执行记录(2026-08-23,#3204)
- TD-003 dual-key order declaration + TD-005 permission.reply relationship annotation (#2558, #2560)
- make plan_assignments snippet idempotent (review DBT-F001)
- clarify ws name vs owner org in legacy table (review DOC-F001)
- bind agent tenant org mapping, record verification + legacy assessment
- stale codegraph marker recovery guidance (#3136 review finding #1)
- R1 措辞修正 — 现节点池即 dev 用途,扩容而非隔离(refs #3148)
- feasibility spike plan + report (refs #3144)
- zcode-bot token 已重签 + 服务器 CLI 自签配方
- zcode-bot token 失效记录 + Sudo 审批旁路
- annotate server-side-only systemd units + big-bug routing transitional note (TD-391/TD-388, #3082)
- Kind/Process split + big-bug relabel rule (#3061 phase 0)
- close DAG transmission gaps in shared entry surfaces (#3061 P1 residue)
- review-code R1 revision (comment model-field ordering invariant)
- local-workstation quirks runbook — Windows worktree symlink stubs, Gitea API domain-fronting recipe (SNI filter + Host routing), PR merge routine under branch protection
- worker final-report persistence convention (#2847, retro-2696 AI#2)
- BF/FT filing requires dedup search (open+closed) before new tickets + max+1 numbering
- status-sync deploys via systemd user timer, not crontab — fix drifted docs and track units (#2868)
- claim #2868 (status-sync deployment drift)
- dbHooks pairing requirement for dbScope opt-in (TD-327 review R1 WARN) (#2798)
- DAG pipeline promotion to default route (pilot-owner ruling)
- headless post-launch runbook + compaction identity-verify rule (#2459)
- record ci.yml dated-label PR CI verification run 9046 (#2437)
- verify archive-at-close points at runs-bundle schema + local validation
- align bugfix pipeline publish targets with Size tier rule
- record e2e-suite dated-label dispatch verification run 8841 (#2437)
- record checklist-merge-gate dated-label verification run 8708 (#2437)
- record status-sync dated-label verification run 8544 (#2437)
- screenshot filenames must live in .playwright-mcp/ — bare relative names leak root PNGs the gitignore backstop hides forever
- 对齐 .gitea/README.md 与实际 workflow 配置
- a11y 已恢复绿 — 移除过时的 '#1847 修复前预期红' 描述
- evidence lives in worktree .playwright-mcp/ + octopus screenshots UI — zero repo bloat
- evidence publishing ladder — commit to branch, ban /tmp citations
- ?directory= stays on creator's workspace — never a worktree (sidebar visibility + #2297 carve-out)
- strict-append seed template lines at column 0 (review R1 STY-F001/DGN-F002)
- add no-self-merge/no-self-close clause to Decision boundary (#2386)
- add decision boundary for headless workers (#2378)
- D3 候选票筛选记录入库留档(22 张 Kind/Epic 全量核验,0 达标,缺口 3)
- default to independent session in current workspace, no worktree
- add dispatch convention — directory = code location
- reference AGENTS.md by section title, not line number (#2218)
- default ?directory= to current session's directory for in-session launches
- restore upload timeout rationale comment
- note backend hard guard in headless-session-launch Step 0 (#1989)
- add rationale comment to drop-time-compacting migration (review-code R1 DOC-F001)
- document M2 breaking change for existing configs
- mark review=3 max_rounds as provisional pending retrospective validation (#1969)
- retrospective action items #4/#5 — measure-before-assume rationalization + Gitea approval timing (#1931 lesson)
- fix re-push preemption wording in e2e-suite concurrency comment
- broaden single-test-root rule to per-package convention (#1821 AC4)
- add single-test-directory rule + drop src/ from test:parallel scan (#1711)
- add one-file-per-component naming convention (#1712)
- register new gitea inline-comment tools in skill references
- document dev-fresh web app dev services (4096/4444) (#1743)
- drop environment-specific model table; derive model from current session
- fix model-verification snippet (no GET /model endpoint)
- add ticket-driven launch + current-model reuse, fix /message endpoint
- add headless-session-launch skill + rules wiki (#1695)
- pre-existing test failures must be filed as BF-NNN issues
- drop stale .artifacts reference (retired in #1529)
- archive TD-194/195 to Closed (already fixed), correct TD-190
- mark TD-186 RESOLVED (PRs #1503 + #1547, issue #1493)
- register TD-187 tech debt (sync overlay reads ACCEPTED_RISK)
- add test:changed to testing rules so agents adopt affected-test selection
- code-review DOC-F001/F002 inline comments
- register tech-debt TD-141~147 from verification
- register tech-debt TD-087~095 from chunk-01 verification
- update TD-023 status to partially-fixed (2340→1996 lines)
- correct Gitea registry TLS/HTTPS facts after eightarms.net migration
- roadmap-level worktree with sequential chunk PRs
- clarify --border-weak-base runtime source in test comments
- add SSE proxy manual verification #868
- web-ui-home-cockpit retrospective + process improvements
- fix misleading @gaps comment in titlebar-tab-nav header
- apply retrospective action items from 6-batch TD cleanup
- add connectionState JSDoc explaining SSE readyState mapping
Maintenance
- N-01 Tier 1 run 归档(task-ticket close 收集)
- N-01 决策核心补 NaN/不可解析时间戳路径覆盖(评审 TST-F001)
- archive Tier 1 bundle for #3758(FT-530 standalone-bugfix,PR #3765)
- regenerate task wire-schema snapshot for #3722 skills progressive-disclosure description
- archive Tier 1 bundle for #3749 (epic close)
- archive Tier 1 bundle for #3751 (merge-gate archive-presence)
- archive 3739-bf541-assert-fix bundle (BF-541/#3739, PR #3754)
- archive Tier 1 bundle for #3750 (merge-gate archive-presence)
- archive Tier 1 bundle for #3745 (merge-gate archive-presence)
- archive Tier 1 bundle for #3737 (merge-gate archive-presence)
- archive Tier 1 bundle for #3738 (merge-gate archive-presence)
- 归档 bundle(#3725)
- archive Tier 1 bundle for #3734 (merge-gate archive-presence)
- record audit r1-r3 artifacts in archive bundle
- archive Tier 1 bundle for #3722 (merge-gate archive-presence)
- 工单 #3720 归档工件包(merge-gate presence)
- 归档包 3668-claim-takeover(state=active, PR #3719)
- archive Tier 1 run bundle
- archive Tier 1 bundle (standalone, PR #3714)
- archive Tier 1 bundle for #3648 (merge-gate archive-presence)
- archive Tier 1 run bundle(#3700 事故衍生 ops 侧 run,证据链见工单评论)
- solid-jsx-loader 路径检查平台无关化——Windows 反斜杠失配致 helper.tsx 漏转译 (#3648)
- NODE_ENV=test 守卫改显式 stub,消除 ambient production 环境敏感红 (#3661)
- 工单 #3676 归档工件包(merge-gate presence)
- archive Tier 1 bundle for #3699 (merge-gate archive-presence)
- archive Tier 1 bundle (standalone, PR #3696 merged)
- harden layout-invariance guard — root-pinned flex literal + slice boundary guards
- archive Tier 1 bundle for #3644 (merge-gate archive-presence)
- archive Tier 1 bundle for #3628 (merge-gate archive-presence)
- archive Tier 1 bundle for #3627 (merge-gate archive-presence)
- source-verification EOL-normalize + exact catch-block extraction (#3644)
- 修复 question-queue 套件模块加载即红——mock 集对齐 #3636 网格依赖面 (#3674)
- archive Tier 1 bundle for #3667 (merge-gate archive-presence)
- 恢复 aptInstallPackages vacuity pin 至 e2e/a11y parity 测试
- update question snapshot for nonblocking question_live_gate note
- ci.yml 迁移 docker-linux-2026-08-29(#2430 bake 首次真正落地)
- 补齐条目模型与目录聚合的单测
- archive Tier 1 bundle for #3642 (merge-gate archive-presence)
- archive Tier 1 run bundle (#3615)
- N-02 run bundle archive-at-close 翻 archived (#3600)
- add Tier 1 run bundle for #3614 (merge-gate archive-presence)
- archive Tier 1 bundle for #3619 (merge-gate #3337)
- address review round-1 MINORs — mid-run listener assertion + shared SseSettings fixture
- task-n02 run bundle + 走查证据 wiki 落盘 (#3600)
- archive Tier 1 bundle for #3604 (merge-gate #3337)
- add Tier 1 run bundle for #3599 (merge-gate archive-presence)
- archive Tier 1 bundle for #3605 (merge-gate #3337)
- push 触发加 paths 过滤 — main 合并仅触达相关路径才校验,nightly 保留全量兜底 (#3605)
- archive Tier 1 bundle for #3603 (merge-gate #3337)
- Windows 本机 dev 启动脚本 + runbook §5
- archive 2 task bundles for #3532 (flip active->archived)
- harden preserve contract test per review (AC-3 red paths, line guard, cap mirror) (#3588)
- archive 4 task bundles for #3531 (flip active->archived)
- add Tier-1 run archive bundle for merge-gate (#3564, #3531 N-03)
- add Tier 1 run bundle for #3587 (merge-gate #3337 close-ref check)
- archive Tier 1 run bundle 3531-question-live-gate-task-n-04 (merge-gate #3337)
- 4 frozen test_ids for degradation telemetry (AC-1..AC-4)
- sync 重跑减负 + 容量决策 runbook(#3549 N-01/N-04)
- compaction 绝对上限 100K→150K (#3342)
- 触发矩阵三处收敛 + 队列趋势观测档(#3549 N-02/N-03/观测)
- archive bundle (fork PR Octopus/gitea#169 merged, issue closed) + gitea-rest wiki PATCH recipe note
- archive bundle (PR #3552 merged, a6d02637)
- archive bundle for Git Bash compat work
- archive bundle for CRLF source-assertion fix
- author run bundle referencing PR #3540
- archive bundle for N-03 implement stage
- add runs archive bundle
- 登记 runs bundle (active, implement 完成待 review)
- author run bundle referencing PR #3528
- 修正跳过无效最近项用例的推送顺序使其真正覆盖跳过分支
- 补充缺省模型回退链测试与优先级注释
- archive bundle for N-01 implement stage
- 登记 runs bundle (active, implement 完成待 review)
- 六处测试夹具补 app_endpoint_url 列(schema 新列类型完整性)
- 迁移链测试改为取 free-pool-lock 时戳之前的最新快照——新迁移不再破坏 fork-merge 断言
- archive Tier 1 run bundle (close #2585)
- archive Tier 1 run bundle (close #3405)
- apply code-review revisions
- 提交 run bundle(state=active,pre-PR)
- archive Tier 1 run bundle — review-code WARN converged after 2 rounds (#3094)
- bundle PR 号修正(3494→3493)
- archive Tier 1 run bundle (close #3492)
- 补 runs archive bundle(merge-gate presence 检查)
- 补 runs archive bundle(merge-gate presence 检查)
- archive Tier 1 run bundle (close #3462)
- bundle PR 号修正(3486→3487)
- archive Tier 1 run bundle (close #3485)
- finalize run bundle close-out (#3480 via PR #3482)
- lock HEAD/symbolic-row exclusion in audit_h2 selftest (#3472)
- archive Tier 1 run bundle (close #3455)
- archive Tier 1 run bundles (dag + task N-01, close #3454)
- archive Tier 1 run bundle (close #3468)
- archive Tier 1 run bundle (close #3450)
- archive Tier 1 run bundle(#3461 事故衍生 ad-hoc run)
- archive Tier 1 run bundle(#3459 事故处置 ad-hoc run,artifacts 留痕见 issue/PR)
- archive Tier 1 run bundle (close #3459)
- archive Tier 1 run bundle (close #3457)
- archive Tier 1 run bundle
- archive Tier 1 run bundle (close #3445)
- eliminate cross-file mock pollution in bare bun test (54 fail/12 err -> 0/0)
- archive Tier 1 run bundle for #3447
- pin pre-abort short-circuit immediacy in proxy timeout test (#3447)
- archive Tier 1 run bundle (close #3426)
- archive Tier 1 run bundle (close #3411)
- 归档 Tier 1 run bundle(1 工件,随船)(#3443)
- 归档 Tier 1 run bundle(1 工件,随船)(#3441)
- 归档 Tier 1 run bundle(1 工件,随船)(#3439)
- 归档 Tier 1 run bundle(1 工件,随船)(#3437)
- 归档 Tier 1 run bundle(1 工件,随船)(#3434)
- archive Tier 1 run bundle (close #3418)
- N-05 bundle close_commit_sha → merge sha 40d9e44f5
- N-05 run archive bundle (close #3347)
- restore SyncEvent projectors after reset in sdk-wire lifecycle test
- archive Tier 1 run bundle (refs #3427)
- 归档 Tier 1 run bundle(1 工件,随船)(#3428)
- archive Tier 1 run bundle (close #3419)
- update question wire-schema snapshot for Option.preview
- 归档 Tier 1 run bundle(1 工件,随船)(#3423)
- archive Tier 1 run bundle (close #3407)
- archive Tier 1 run bundle (close #2296)
- archive Tier 1 run bundle (close #3257)
- archive Tier 1 run bundle (close #2688)
- archive Tier 1 run bundle (close #3259)
- archive Tier 1 run bundle (close #2845)
- N-04 bundle close_commit_sha → merge sha 2adea20d3
- N-04 archive bundle (meta.ticket 3346, 22 artifacts, closes #3346)
- regenerate builtin-data.gen.ts after main merge (TD-256)
- N-03 bundle close_commit_sha → merge sha ab81113995
- archive Tier 1 run bundle (close #3095)
- N-03 archive bundle (meta.ticket 3345, 45 artifacts, closes #3345)
- archive Tier 1 run bundle (close #2934)
- Tier 1 run bundle 归档 (#3390)
- 归档 Tier 1 run bundle(1 工件,随船)(#3379)
- 归档 Tier 1 run bundle(2 工件,随船)(#3380)
- archive Tier 1 run bundle (close #3378)
- archive Tier 1 run bundle (close #3384)
- archive Tier 1 run bundle (close #3383)
- archive Tier 1 run bundle (close #3376)
- archive Tier 1 run bundles for #3387/#3388
- 归档 Tier 1 run bundle(1 工件,随船)(#3378)
- archive Tier 1 run bundle (close #2762)
- archive Tier 1 run bundle (close #3318)
- archive Tier 1 run bundle for #3357
- archive epic run bundle (3 artifacts, close #3342)
- archive Tier 1 run bundle (1 artifact, close #3386) (#3382)
- restore union archive bundle (51 artifacts — findings JSONs preserved, notes merged)
- N-02 archive bundle (meta.ticket 3344, 27 artifacts, sha16 manifest)
- archive Tier 1 run bundles (N-01+N-02 review runs, close #3351)
- archive Tier 1 run bundle (19 artifacts, close #3352)
- archive Tier 1 run bundle (13 artifacts, close #3351)
- archive Tier 1 run bundle (51 artifacts, close #3344)
- archive Tier 1 run bundle (#3362)
- assert fallback timer delay contract (review TST-F001)
- archive Tier 1 run bundle (6 artifacts, close 5c8e87bd) (#3322)
- archive Tier 1 run bundle (7 artifacts, close 5433e729) (#3328)
- poll for compaction marker finalization before post-compact turn (CI race — forked summary loop had not set tail_start_id at assertion time on fast runners) (#3328)
- archive Tier 1 run bundle (18 artifacts, close #3358, merge b2d188fae)
- archive Tier 1 run bundle (5 artifacts, close 4509bd84) (#3327)
- archive Tier 1 run bundle for task N-01 (#3343)
- claim marker (empty commit, session sess_468be4a0) (#3327)
- archive Tier 1 run bundle (17 artifacts, close 0df44479) (#3326)
- claim marker (#3338)
- archive Tier 1 run bundles (audit-2026-08-24 + compaction-mixed-threshold)
- archive Tier 1 run 3294-appeal-phase1-task-n-04 (N-04 verify PASS close)
- archive Tier 1 run 3294-appeal-phase1-task-n-03 (N-03 verify PASS close)
- archive Tier 1 run 3294-appeal-phase1-task-n-02 (N-02 verify PASS close)
- remove duplicate resetForm test (N-02 review round 2)
- archive Tier 1 run 3294-appeal-phase1-task-N-01 (N-01 verify PASS close)
- claim branch carrier (#3292, claim-first #2297)
- claim branch carrier (#3326, claim-first)
- archive Epic self-serve-billing Tier1 run(DAG 全节点完成,#3291 closed)
- archive task-N-03 Tier1 run bundle(review-code r1 lightweight PASS + verify PASS)
- 端到端即时抬升——paid→plan_assignments→provision 并发即时生效(#3300 N-03)
- archive task-N-04 Tier1 run bundle(review-code r2 PASS + verify PASS)
- archive task-N-02 Tier1 run bundle(review-code r2 PASS + verify PASS)
- archive task-N-01 Tier1 run bundle(review-code r2 PASS + verify PASS)
- claim branch carrier (#3291, claim-first #2297)
- archive run bundle (M-01 verify PASS)
- archive Tier 1 run bundle (#3289, PR #3302)
- claim branch carrier (#3294, claim-first #2297)
- claim branch carrier (#3293, claim-first #2297)
- claim branch for TD-433 (reorient DAG matching fix)
- archive run bundle
- pin uncounted branches and document error label semantics
- claim #3286 workflow branch
- archive Tier 1 run bundle (#3264, PR #3282)
- archive Tier 1 run bundle (#3263, PR #3277)
- cover partID x before combination in cleanup (#3263)
- archive Tier 1 run bundle (PR #3276)
- env-gated agent-launch e2e spec for bound/unbound repos
- claim ticket 3264 (empty claim commit)
- claim ticket 3263 (empty claim commit)
- archive Tier 1 run bundle (#3262, PR #3273)
- archive Tier 1 run bundle (review round 1 PASS)
- claim ticket #3261 (empty claim commit)
- flip filing.sprint-mode back to false — exec campaign #3126 close-out
- archive Tier 1 run bundle (#3254)
- archive Tier 1 run bundle for new-session-page (#3238)
- compress new-session.test.tsx under the 200-line cap (#3238)
- tag drag-guard describe with work-item id (#3239)
- pin drag-guard presence so removal fails the tests (#3239)
- differentiate drag-guard assertions per handler (#3239)
- wire script dev-fresh tests into check job (TD-314, #2681)
- claim #2655 (W7)
- claim #2304 (W7)
- claim workflow branch (TD-307, W6 campaign)
- claim #2717 (W7)
- claim #2681 (W6)
- archive Tier-1 run bundle (#3246)
- in-process WAL-contention close() guard replaces quarantined worker (TD-346/FT-069, #2907)
- claim #2854 (W6)
- claim #2907 (W6)
- claim #2922 (W6)
- claim branch for #3238 (DAG new-session-page N-01, serial into N-02 #3239)
- claim #2511 (W6)
- claim #3223 (W6)
- link #2431 FT evidence to frozen-clock + elapsed-first fix (traceability)
- session-cap 测试微清理 — 移除不可达 throw 守卫 + let msgs 拆双 const (#2864 #2865 #2866)
- claim — keep-mergeable org-mismatch loud failure
- claim FT-075 ticket #3197
- archive Tier 1 run bundle (verify PASS, PR #3216)
- archive Tier 1 run bundle bugfix-3204 (post-merge record)
- anchor source-verification on pipelined updateMessage form
- claim #3204 (session ses_fd35f9508ffeNwp8NmuZeonP65)
- root-fix bun svg-loader JSX family via preload plugin
- claim ticket #3131 (session worktree)
- claim w2-tdbatch-2467 (TD batch #2540-#2547)
- archive Tier 1 run bundle
- SV reactivity guards x12 + AC-4 verdict test + @smoke tag restore
- claim ticket (session workflow start)
- archive Tier 1 run bundle
- apply retro action items (rename-boundary/residual-guard/harness-WAIVED/stray-artifact checklists) + scaffold mirrors + fix ci-run-stats-lib type annotation
- claim ticket (session workflow start)
- archive Tier 1 run bundle
- claim ticket (session workflow start)
- fix archive bundle index shape (artifacts array)
- archive Tier 1 run bundle
- claim ticket (session workflow start)
- archive Tier 1 run bundle
- archive Tier 1 run bundle
- archive Tier 1 run bundle uat-3173 (post-merge record)
- archive Tier1 run bundle for #3169 (org-migration-cleanup)
- cover whitespace-only HOME fallback + tighten PTY wait predicates
- archive tier-1 run bundle (#3138)
- archive tier-1 run bundle (verify PASS iter-1)
- 修复 4 个 Windows 预存失败(fileURLToPath / CRLF 归一 / file URL fixture)
- make the hasMore=false stall assertion non-vacuous (R3 TST-F005)
- flip filing.sprint-mode=true for exec campaign window (#3126)
- archive Tier 1 run bundle (review-code PASS round 2, PR #3115 merged c52e0d040)
- archive tier-1 run bundle (verify PASS iter-1)
- claim #3072 — phase 3 legacy retirement (owner ruling 2026-08-21)
- archive run bundle (verify PASS, TD-395/396)
- pin filtered-state fill guard, isolate deficit suite collapse state
- relax api.perf wall-clock budgets for shared-runner contention (FT-074) (#3043)
- archive Tier 1 run bundle (verify PASS, 207 artifacts)
- archive Tier 1 run bundle (review-code PASS, PR #3088)
- re-sync review-artifact SKILL.md scaffold twin (BF-078, #3087)
- claim #3061 — TD-388 Kind/Feature→DAG redirect + TD-390 gate_trim keep_gates guard
- archive Tier 1 run bundle (verify PASS, issue closing)
- re-sync twins after #3067 merge (pipeline-gate/review-pipeline-phases/workflow-routing.schema/analyze-dag+review-artifact SKILL.md) --no-verify
- reference-transaction ref-update audit hook + husky extra-shim bootstrap
- archive Tier 1 run bundle (verify PASS, issue closing)
- archive Tier 1 run bundle (verify PASS)
- claim #3054 (probe concurrency + dropCount + percentile observability)
- archive Tier 1 run bundle (verify PASS, issue closing)
- archive Tier 1 run workspace (verify PASS)
- close review round-2 residual minors
- archive Tier 1 run bundle (task N-07) (#3011)
- archive Tier 1 run bundle (verify PASS)
- claim #3029 (tool attachment source referencing)
- claim session.diff dedup bugfix (session worktree)
- retrigger mergeability (empty)
- correct close_commit_sha to landed bundle commit
- archive Tier 1 run bundle (2731-sse-source-slimming)
- claim #2790 (scratch worktree lifecycle recovery)
- drop gitea-mcp from audit-process tool-skill list (line added by #2963 merge)
- unquarantine FT-039 /file/ resolution under per-file DB isolation (TD-351)
- slim gitea-rest skill to conventions+swagger on-demand lookup; retire gitea-mcp skill (redundant REST wrapper, 8-10k tokens resident cost)
- reset mocked clock after formatRelativeTime cross-midnight cases (TD-347)
- commit Tier 1 run archive bundle (converged r3 PASS, 0 B/M/m)
- quarantine flaky FT-039 /file/ resolution test
- add boundary probes for empty array / additionalProperties / added_cycle (review TST-F001/F002)
- pin dag.route.preflight schema negative probes as regression test (#2940)
- claim #2940 — preflight schema regression test
- correct close_commit_sha to landed bundle commit
- archive Tier 1 run bundle (dag-breadth-2905)
- disable ModelsDev eager fetch to fix compaction 5s timeouts
- claim #2905 — DAG pipeline breadth-exploration mechanisms (P1)
- oauth-browser mock 泄漏改真实 SDK 子类自卸载(BF-060/063 同款修法)
- oauth-auto-connect mock 泄漏改真实 SDK 子类自卸载(BF-060 同款修法)
- archive Tier 1 run bundle (verify PASS) (#2750)
- archive Tier 1 run bundle (verify PASS) (#2779)
- WI-003 leftover wire tests (depend on WI-004 slim fields)
- archive Tier 1 run bundle
- claim branch — ci.yml check job browser system deps
- backfill close_commit_sha (e8ebe327eb5ba0a80976e78be7b9ba825f171db6)
- archive Tier 1 run bundle (verify PASS)
- backfill close_commit_sha (efa0e225b56960749b392d73e91bfd9c5689d418)
- archive Tier 1 run bundle (verify PASS)
- archive Tier 1 run bundles (#2813/#2814 merged, validate 83/83)
- archive Tier 1 run bundle (verify PASS) (#2832)
- archive Tier 1 run bundle (verify PASS) (#2832)
- retrigger checks (bundle/bench starved behind runner queue)
- rewrite keep-mergeable hardening block for server-cron shape
- archive Tier 1 run workspace bundle (TD-327) (#2798)
- archive Tier 1 run bundle (verify PASS) (#2411)
- push-to-main runs incremental test:changed to cut single-runner saturation (#2814)
- archive Tier 1 run bundle (verify PASS) (#2580)
- archive Tier 1 run workspace bundle (BF-049) (#2485)
- archive Tier 1 run workspace bundle (#2483)
- pin the R filter letter with an in-runs rename (BF-048) (#2483)
- pin rename/modify filter paths in runs guard tests (BF-048) (#2483)
- archive Tier 1 run workspace bundle (#2403)
- archive Tier 1 run workspace bundle (#2712)
- cite TD-327 in FT-051 root-cause comment (#2712)
- stabilize revert-compact under load (FT-051) (#2712)
- archive Tier 1 run bundle (verify PASS) (#2746)
- retrigger CI (FT-054 flaky hit on full-load shard)
- afterAll 补显式 240s 超时 — bun 默认 ~10s hook 超时击杀满载 rm 重试 (FT-050) (#2711)
- deflake drift-sampler test (TST-F001) + pin ring-window boundary jitter (COR-F001)
- archive tier 1 run bundle (review-code R2 PASS + verify PASS)
- archive tier 1 run bundle (review-code PASS + verify PASS)
- review r1 修订 — afterAll 泄漏修复 + 预清 rm 有界 (FT-050) (#2711)
- re-estimate M-01 recovery budget under shard load (#2678)
- address review round 1 MINORs (#2519)
- stabilize sse-replay-status under load (FT-040) (#2519)
- stabilize zombie-reaper harness under load (FT-050) (#2711)
- archive Tier 1 run workspace bundle (#2519)
- archive tier 1 run artifacts (#2721)
- review r2 修订 — CAS-miss resolve-null 路径覆盖 (#2743)
- review r1 修订 — TST 覆盖缺口 ×3 + DBT 计数语义 (#2743)
- address review round 1 MINORs (#2519)
- claim FT-052 orphaned-assistant-repair stabilization (#2721)
- stabilize sse-replay-status under load (FT-040) (#2519)
- archive review-code run (round 2 PASS converged)
- stabilize messages-pagination under load (FT-045) (#2626)
- isolate intra-file ops-window interference (FT-049, deterministic) (#2674)
- archive Tier 1 run bundle (verify PASS) (#2654)
- repo-archive bundle validation gate + repair bugfix-2690 short sha (BF-058, #2715)
- claim — audit.json schema baseline (empty claim commit)
- fix review findings — perf config globalSetup path, per-attempt context, diagnostics (#2654)
- stabilize cold-boot banner wait (FT-046) (#2654)
- archive Tier 1 run workspace (verify PASS) (#2676)
- isolate startWorkspaceSyncing load race (FT-048) (#2670)
- archive Tier 1 run workspace bundle (#2657)
- correct semantic-wait bounds in FT-047 comment (#2657)
- stabilize stderr-forwarding window test under load (FT-047) (#2657)
- archive Tier 1 run bundle (14 artifacts, review-code 2 rounds + verify PASS)
- archive Tier 1 run bundle (verify PASS) (#2515)
- archive Tier 1 run bundle (verify PASS) (#2514)
- archive Tier 1 run workspace bundle (#2523)
- address review findings — hoist imports, fix mock attribution (#2514)
- behavioral single-invocation invariant for sessionItemCache (#2514)
- claim ticket — ReadyHooks cross-world adoption fix
- red regression for published map close/shutdown cleanup (#2523)
- archive tier-1 run bundle (PASS converged, 3/3 rounds)
- claim bugfix session (#2676 cold-start hang + sidebar silent fallback)
- fix archive bundle close_commit_sha (#2675)
- archive Tier 1 run workspace (#2675)
- archive Tier 1 run bundle (verify PASS) (#2513)
- review STY-F001 — defensive killPid helper 对齐 dead-child 约定 (#2506)
- archive Tier 1 run workspace bundle (#2521)
- 运行时 HTTP add/connect 入口的监控收养与 kill-recovery 覆盖 (TD-281) (#2506)
- behavioral pathKey normalization gate for session-list visibility (#2513)
- address review round 1 MINORs (#2521)
- archive Tier 1 run bundle (verify PASS) (#2512)
- e2e behavioral dedup under main+peek dual mount (#2512)
- AC-2 90s 恢复预算双场景显式建模 — connect 握手挂起边界声明 (TD-282) (#2505)
- claim #2579 — runner docker network GC race (empty claim commit)
- archive run bundle (verify PASS) (#2588)
- archive Tier 1 run workspace bundle (#2522)
- archive Tier 1 run bundle for task N-03 (15 artifacts, sha digests)
- migrate SAST Semgrep runner to docker-linux-2026-08-15
- retrigger CI (runner image restored)
- always-on invariant guard step — close the PR-green/main-red blind spot
- retrigger CI (phantom failure on 13898d43, jobs never started)
- archive Tier 1 run bundle for task N-02 (15 artifacts, sha digests)
- archive tier-1 run bundle (#2470)
- Tier 1 final archive — task n03/n04/n05 bundles + epic close-out (Refs #2430)
- activate token-stage-ledger project plugin
- migrate ci.yml to dated runner label docker-linux-2026-08-15 (#2437)
- claim #2000 — CI runner health investigation (empty claim commit)
- normalize verify line endings (prettier, live + mirror)
- complete review-code mirror sync (byte-identical copy from live)
- prettier token-telemetry (live + mirror, byte-identical)
- complete implement mirror sync (byte-identical copy from live)
- sync scaffold-template mirrors with live .octopus (verify/implement/review-code/token-telemetry)
- add ops-window integration test for M-01 milestone
- claim N-04b live dead-child reconnect fix (#2586)
- claim branch (empty commit) (#2470)
- archive Tier 1 run workspace (review round 1 bundle)
- archive Tier 1 run workspace (10-artifact digest bundle)
- migrate e2e-suite.yml to dated runner label docker-linux-2026-08-15 (#2437)
- Tier 1 run archive bundle (23 artifacts) — verify PASS (Refs #2454)
- raise merge-gate and bench timeout headroom for contention windows (#2572)
- archive Tier-1 run bundle (n03) (#2469)
- cover noReply promptAsync exemption under queue mode (#2469)
- archive Tier-1 run bundles (n01+n02) (#2472)
- archive Tier 1 run bundle for task N-01 (12 artifacts, sha digests)
- migrate checklist-merge-gate.yml to dated runner label docker-linux-2026-08-15 (#2437)
- archive Tier-1 run bundles for DAG pilot slugs (#2477)
- claim ticket — stacked on n01 fc50166f (#2472)
- archive Tier 1 run bundle for task N-02 close (28 artifacts)
- archive Tier 1 run workspace (25-artifact digest bundle)
- migrate status-sync.yml to dated runner label docker-linux-2026-08-15 (#2437)
- clear whole session table in color-assigner setup
- raise AC-040 budget to 1000ms (contention-tolerant)
- claim ticket (empty commit)
- archive Tier 1 run bundle for task N-01 close (62 artifacts)
- archive Tier-1 run bundle (15 artifacts, review-code 2 rounds)
- drive lifecycle through real prompt() path (AC-2) (#2467)
- archive Tier-1 run bundle (61 artifacts, review-code 5 rounds)
- archive Tier 1 task artifacts (29 files, sha256 manifest)
- re-commit project row in createSession fixture to survive mid-loop DB wipe
- pin interactive gate polarity at both sidebar panel mount points
- untrack Tier-1 active-run artifacts (BF-048)
- claim workflow branch for #2433
- claim ticket #2458 (branch bootstrap)
- claim workflow branch for #2434
- claim sidebar session defects DAG workflow branch
- drop worker agent default model override so it follows parent session model
- LW round6 fixes — leak-proof boolean assert, vacuous-green guard, E2E_PERF=1 gate + docs
- PTY readiness probe before echo sampling; E2E_PERF gate in remote config
- perf spec token login + BASE_URL nav; LW round5 fixes (prettier, comment, cred-safe assert msg)
- backfill close_commit_sha
- archive Tier 1 run workspace (22 artifacts)
- waitFor group visibility instead of instant isVisible
- expand loop over first dirs + E2E_DEBUG-gated testMatch
- archive run 2421 (verify PASS, merged a597a56b)
- harden workflows — merge-gate timeouts, drop dev branch, playwright port, archive backfill
- cover the /ws proxy header-strip branch (LW PR #2439 COR-F001)
- claim workflow branch for #2430
- claim ticket #2421 (branch bootstrap)
- add E2E_VIEWER_TOKEN cookie-injection login to N-06 spec
- backfill archive close_commit_sha
- archive Tier 1 run bundle (review r1-r3 + verify iter-1)
- archive Tier 1 run workspace (2-round review, verify PASS)
- move screenshots to gitignored .playwright-mcp/ — viewable via octopus screenshots UI, no repo bloat
- commit E2E browser verification screenshots
- refresh models.dev api.json snapshot (177→185 providers, 5939→6320 models)
- workspace viewer production e2e acceptance spec + perf benchmark
- archive Tier-1 run workspace
- equalize oauth-auto-connect authenticate() timeout 15s→30s
- review round-1 — 收紧 assistantTurns 精确断言 + oxlint 头 + ManagedRuntime dispose
- 补齐 summarize 端点服务端测试(#2309 已合并)
- 补齐压缩核心路径测试覆盖
- claim ticket — BF-043 content-embed drift fix
- make initGitRepo resilient to git init race
- raise per-test timeout 30s->60s
- commit project row before Session.create to fix FK flake
- make module-scope disposal hooks fiber-leak-tolerant (#2154)
- claim ticket — bugfix compaction guidance text
- add POST /summarize endpoint server test (reject non-latest, dedup signal, busy fork)
- archive Tier 1 run 2286-session-info-metrics
- apply review fixes lost in #2271 post-merge worktree cleanup (#2273)
- dockerized regression harness for zombie reaper (#2271)
- complete TD-002 (#2258) concurrent upload tests + TD-003 (#2259) real worktree-GC test (#2270)
- a11y 改 nightly/dispatch + ci.yml 增加 docs paths-ignore (#2268)
- record archive close_commit_sha
- archive tier-1 run (verify PASS)
- add config.test.ts ensureGitignore REQ-F-006 coverage
- archive Tier 1 run workspace bundle (10 artifacts, verify PASS)
- archive Tier 1 run workspace bundle
- un-quarantine FT-015/016/017 with mock-based harness
- archive Tier 1 run workspace for BF-003 review
- tighten e2e-suite.yml trigger regression guards (#2232)
- guard e2e-suite.yml trigger policy regression (#2232)
- archive Tier-1 run workspace bundle
- quarantine flaky LSP workspaceSymbol permission test (FT-017, #2219)
- archive Tier 1 run workspace bundle
- archive Tier 1 run workspace (31 artifacts, verify PASS)
- quarantine flaky file-upload-word cases (FT-014, #2129, TD-234)
- archive Tier 1 review-findings bundle
- quarantine flaky LSP cursor-details test (FT-015, #2141)
- archive Tier 1 run workspace
- address lightweight review findings on switch-v2 SV tests
- rewrite switch-v2 Boundary Conditions as source-verification tests
- archive Tier 1 run workspace for #2160 (#2177)
- Tier 1 run archive — 2159-settings-a11y
- drop stray probe.txt from reviewer permission probe
- anchor reconnect-refetch SV regex on post-wait call site (#2140)
- bring 8 non-src logic tests into CI (#1839)
- isolate session-color + drop flaky RSS assertion (#2053, #2064)
- process-isolate code-mode + plugin-lifecycle (#2089, #2092) (#2099)
- remove stale pin-to-tab spec (feature retired) (#2096)
- archive Tier 1 run bundle at close (#1988)
- regenerate builtin-data overlay after rebase
- add session_guard config schema tests (#1989)
- archive Tier 1 run bundle at close (#1988)
- backfill close_commit_sha in 2031 archive bundle
- archive Tier 1 run workspace for 2031-generic-kickoff
- archive Tier 1 run workspace at verify PASS
- correct stale comment in COR-F002 test
- archive tier-1 run workspace (#2040)
- type-safe HttpBody stream access in signal-undefined test (#2040)
- resync sidebar e2e specs to v2 sidebar + flag-seed legacy titlebar (#2018)
- archive Tier 1 run bundle (review findings + manifest)
- apply review-code round 1 findings (vacuous-regex and SV-boundary hardening)
- re-sync stale app source-verification suites (39 fail to 0)
- pin colocated-test-file exclusion in v2 utility registration scan
- retire publish.yml release pipeline, document manual release process (#2003)
- anchor loadMore step regression to function bodies (review R1)
- verify post-receive after Gitea restart (#1981)
- trigger mergeable recompute (post disk-fix #1981)
- trigger mergeable recompute
- Explorer 子代理超时 10→30 分钟
- cover signal?.aborted race-closure branch (TST-F001)
- address code review round 1 (TST+DOC)
- trigger Gitea merge-base recalculation after rebase
- isolate 3 cross-talk-sensitive suites in test:parallel (#1711)
- docm warn-dispatch regression coverage (#1799)
- trim redundant test families + clean low-value assertions (#1713) (#1809)
- hoist httpapi-worktree.test.ts server layer into shared runtime
- fix tautological cap assertion in subscription test
- layer PR-incremental vs main/nightly full test gating (#1759)
- convert wordmark-v2 render tests to source-verification
- embed issue id in parity describe name
- annotate parity guard with issue id
- scope parity live-universe to git-tracked files
- scaffold-template parity guard + sync 30 drifted twins
- remove probe workflows, verification complete (#1740)
- rewrite publish-cli.test.ts to exercise real SkillsPublishCommand dispatch and visibility-fail
- align debug-metrics + unified-shell source-verification with current wiring (#1734 #1735)
- rewrite publish-cli.test.ts to exercise real SkillsPublishCommand (#1708)
- remove tautological assertions from publish-help.test (#1708)
- remove tautological describe blocks from publish-coverage.test (#1708)
- remove tautological route-matching block from jwt.test (#1708)
- delete fake sync store test (real coverage in sync-worktree.test.tsx) (#1708)
- delete fake session handler test (real coverage in auto-approval.test.ts) (#1708)
- revert TEST_SHARDS 5→3 in check job (CI obs: 5/5 shards failed, 386s vs 208s, fiber timeouts)
- raise TEST_SHARDS 3→5 in check job (below 7-way fiber-starvation cliff)
- close round-2 review gap — status-POST fail-closed coverage
- pin actions, extract hardcoded values, secure secrets
- add process-doc invariants for BF-NNN/FT-NNN filing phases + verify SKILL parity
- adapt TD-201 breaker tests to upstream poll floor
- fill TD-197~201 coverage gaps (#1629)
- add missing client-side DoD tests for SSE replay
- remove stale .github/ workflows + fix README drift (#1596)
- assert poll loop starts on init (#1607)
- register tech debt TD-196~201 from verify
- update tech-debt register (TD-005 + M4-M8 deferred)
- retire .artifacts/ symlink mechanism
- add real-PG GROUP BY integration + 1M-row P95 load test
- add regression test for disposeInstance timeout guard (#1460)
- register tech debt TD-188~195 from iteration-2 verification
- add badge/degradation/consistency source-verification suites
- add AC-2/AC-3/AC-3b/AC-5a/AC-5b acceptance criteria tests
- add guard-rule-injection.sh static analysis guard (REQ-NF-005)
- close TD-150, link TD-186 issue #1493
- close TD-152/153 (live PG verified), update TD-148/150 audit
- fix imprecise AC-8 error assertion — filter({ hasValue }) → toHaveValue
- add pull-diagnostics freshness gate + future-mtime skip-branch e2e tests
- widen compact() source window for prettier-formatted body
- convert REQ-BUGFIX-003 source-scan tests to behavioral via log-capture helper
- raise per-test timeout to 30s for 4 task-tool integration tests
- add titlebar-mount DOM assertion to AC-4/5/6/7
- register TD-170~185 from review-code + verification (16 tech-debt items: 2 UNVERIFIABLE, 14 ACCEPTED_RISK)
- fix verify round-1 failures (AC-04/35/42/45) + register tech debt
- pin shrink-branch resets (lastTriggerSize and fillLoadPending)
- pin reopen-before-stop branch ordering with fill-branch-local anchors
- match prettier-reformatted loadMore chain in fill-trigger assertion
- add DB error → 500 envelope integration test
- close TD-149/151/154/155/157, file issues #1440-#1444
- apply retrospective improvements (standalone-bugfix review carve-out, SINCE_DAYS=30 telemetry default)
- register TD-148~157 tech debt from verify
- add WI-010 NFR validation suite
- add WI-009 unit + integration tests
- verification PASS — 68/68 DoD, 5 tech debt items registered
- add explicit per-test timeouts, restore mtime-only isolation test, renumber mtime gate to gate 2
- register chunk-06 tech debt (TD-058..TD-086)
- register TD-052~057 tech debt from verification
- triage tech debt register — close 15 stale items, register TD-040~043
- register tech debt TD-020~035 in project root register
- update classifyRoute source-verification path to titlebar-tauri.ts
- add maintainability source-verification (REQ-NF-007)
- add persistedBatch + preload plugin verification tests
- migrate Gitea address to eightarms.net
- strengthen source-verification coverage + doc (#1315)
- update stale tmux guards to setsid model
- register tech debt TD-006..TD-019
- add regression tests for keybind conflicts + validation + collapsible UI
- make sdkFor try/catch SV assertion prettier-stable
- add 16 spec coverage gaps for #1259
- add CardV2 cross-chunk integration tests for TD-003 (#1067)
- add auth tests + resolve verify FAILs
- restore SAST + OWASP coverage on Gitea Actions
- decouple docs/site from GitHub branding
- prevent root junk accumulation
- remove GitHub Action integration
- further soften dark-mode text to #c0c0c0
- further soften dark-mode text to #d0d0d0
- soften dark-mode text brightness
- add bridge verification tests + fix assertions
- apply 3 retrospective action items
- fix pre-existing TooltipV2/toast typecheck errors on main
- remove @opencode-ai namespace residue from foundation
- 启用 main_sync 自动同步(gitea_pull__merge 后 read-tree)
- remove BUGFIX-PROBE instrumentation before merge
- add missing WI-05 DateGroupCountLabel DoD tests
- isolate backend tmux server, add dev-fresh modes
- isolate worktree dev ports, add worktree-cleanup
- unblock 'kill' command in bash_unblock_commands
- formalize lightweight review mode, concurrent-merge rebase, and scope-estimate validation
- add regression smoke negative tests #846 #847
- cover CockpitHome render + state + ErrorBoundary #848-#853 #860
- add proxy config verification #867 #869 #870
- cover zone isolation #861 #863
- source-verification tests for cockpit-home + home-cockpit-layout (TST-F007)
- cover registerReset/resetModuleState isolation mechanism (#655)
- add benchmark API unit tests (api, fixture, perf) (#653)
- fix multiline-format assertions in session-composer-state regression tests (#784)
- fix source-verification assertion for prettier-formatted onAction
- add performance benchmarks P-001~P-005
- WI-012 perf benchmarks
- WI-009 BE activity stream comprehensive coverage
- stability, perf, resilience, a11y
- cleanup 41 long-stale source-verification tests (#691)
- close 4 chunk-03 test-coverage TD (#757-760)
- add source-verification + bench + a11y + deps drift tests
- add package.json i18n dependency assertion (#686)
- convert i18n DoD to source-verification (#685)
- convert a11y DoD to source-verification (#684)
- uniquify TEST-C0-053 across 3 files (#677)
- reorder validateStages after applyStageRegistryToConfig (#678)
- tighten retro-driven template + checklist rigor
- add regression test for hamburger removal (TRC-F002)
- add regression test for desktop sidebar responsive hide
- apply 4 action items from auto-approve retrospective
- add AutoApproveIndicator source-verification tests
- WI-008 integration tests — full pipeline, config gate, wiring verification
- add prior-art search + fix-linkage checkpoints to bugfix checklist
- add Firefox and WebKit system dependencies
- fix node-gyp timeout and missing Playwright browser deps
- add Context Hygiene section to iteration-plan template
- add full test suite — hook unit tests, component source-verification, ARIA, integration
- integration/SSE/a11y/performance test suites + 64-session edge cases
- remove stale FSA dispatch tests — code already removed
- fix flaky Docker-runner test failures
- NFR0.3 SSE reactive timing test + verification report
- add metadata and preview hook tests
- retry with --add-host fix for container networking
- switch all workflows to Docker-isolated runners (docker-linux)
- trim auto_approve stages to review-code and verify
- add 16 multi-server integration tests covering deferred criteria (closes #362)
- reorganize project docs and update PR template
- close all 50 tech debt items via source-verification + diff + accepted-risk closures
- add missing coverage tests for TD-001/003/010/013/014
- add 39 source-verification tests for file-tree-v2
234 uncategorized commit(s)
Downloads
-
v0.17.0 Stable
released this
2026-09-11 11:38:42 +08:00 | 2 commits to main since this releasev0.17.0 (MINOR) — 2026-09-11
958 non-merge commits since v0.16.0 (123 feat / 344 fix / 90 test / 54 docs / 18 refactor / 6 perf).
Headline themes: desktop macOS + auto-update chain, browser evidence chain (#4486), prompt/tool diet (#4489/#4503/#4524), TTFT + event-loop stall treatment (#4311), per-agent tool/MCP gating, skill distribution (#4296), CI verdict reuse + merge waves.Changes since v0.16.0
Full commit-level changelog (958 commits since v0.16.0)
Added
- retro §2.9 浏览器类接入——会话结果 tally + 提案行候选 + 边界负例 + dry-run
- Tier 2 引用通道——DoD 新条目类型 + BROWSER:{pack-ref} 校验器 + dogfood 正负例
- 证据包落 Tier 1——pack 写入器 + browser-evidence 行注册 + 非阻塞写 + 回放基线 BENCH
- 审查面板 markdown 预览——智能缺省 + 源文档/预览切换,复用消息渲染管线
- browser 环境可用性探测——三层二进制来源 + #4393 同语义模式解析 + 缺失降级归因
- browser 安全底线——URL allowlist 导航边界强制 + 证据数据凭据脱敏
- agent 级 tools_exclude——operator 工具对 builder 隐藏(挂载面排除,#4511)
- 评审面板 diff 视图行级定位——diff 命中分支的 :line 引用
- 文件链接行级定位——:line 引用滚动+高亮
- #4489 注入瘦身切片——default.txt 去重精简(8.9K→6.9K)+ skills 列举首句截断(CJK 加权 240)+ triggers 关键词上行
- per-agent MCP 工具白名单(#4488)——mcp..agents 配置
- /file/resolve 简写路径多基准解析——消息文件链接 File not found 兜底
- mac --arch=arm64|x64|universal——universal 双切片 pty 打包 + workflow arch 输入
- 工作区外文件读取授权机制——extra_read_roots 白名单 + allow_any_path 能力开关 + UI 完全授权切换
- darwin 应用菜单装配——原生 role 骨架 + Open Project 走冻结 deeplink(零新通道)+ 更新对话框流 + Help 链接修复
- 子任务派发同步/异步决策约定——依赖链前台、独立并行批、background 限「主会话继续他事」
- pr-merge --wave 自动等绿合并 + 合并波拥堵 runbook(Closes #4464)
- mac feed 发布路径(latest-mac.yml+zip+dmg)+ dispatch-only mac 工作流 + runner 运维手册
- mac 打包地基——icns/entitlements 资产 + build.ts 平台参数化 + OCTOPUS_SIGN_MAC 签名公证门控
- 品牌字标按 locale 切换(zh→八爪鱼/en→Octopus)+ 修复未生效字号至 48px
- home 品牌区改版——上留白减 1/3、Mark 放大、八爪鱼/Octopus 双语字标
- ceremony-budget 一等化吞吐质量指标——p95 周期列 + 非绿率 + supersede 取消计数(#4425 iter-2)
- bench PR face opt-in via run-bench label (advisory channel)
- remove builtin-integrity.yml — duplicate of ci.yml check invariant guard
- 消息文件引用链接化——点击进审查面板/编辑器 tab
- Windows 签名 GA 预铺——local signtool 模式 + publisherName/verify 原子翻转(#4331 签名决策收口)
- queue background-result injections until the parent turn ends
- async background default for pipeline roles + exactly-once result delivery
- U3 通道唯一性验收——OCTOPUS_TEST_UPDATE_* 测试缝 + 打包态 e2e 断言 + beta 灰度 runbook(#4331)
- SKILL.md frontmatter validator + contribution CI sample repo
- enforce plugin-guard on pull/cache write path for public sources
- deploy drift visibility — health config_valid/code_head/tree_head/head_drift + ConfigInvalidError remediation hints
- 子会话间隙分类指标运行时化(事件+端点+一致性 harness)
- catalog contract + skills search/install commands (N-02, #4363)
- precondition-gate known-failure waivers (TD-931)
- electron-updater 接线——update:check/update:install 通道 + desktopPlatform 实现(Refs #4331)
- V2 contract — gate ref pinning, token_file auth, visible duplicate warning (N-01, #4362)
- Thinking row streams live reasoning tail (reasoningPreview)
- GLM-5.2+ reasoning_effort variants (low/high/max) + low-effort floor for internal small calls
- feed 改挂公开镜像仓 octopus-release——匿名可取件(#4331 决策①)
- wire reconcileAtPassEnd into CLI pass end (refs #4346)
- matrix-sourced scope-fix hints in question L2 / kanban / overlay clients
- explicit gitea degradation warnings at startup (readiness health threading)
- capability matrix registry + degradation warning lines
- out-of-queue merge reconcile — pure fn + pass-end fail-open wiring (refs #4346)
- gitea-api.sh session UA octopus-agent/ with manual fallback (refs #4345)
- E-1 U1 更新 feed 链路——移动 tag 发布作业 + publish-feed 脚本
- gitea auth wizard for kickoff phase 0
- 判定复用接入 ci.yml——门控组合/记录/失效(DAG N-02 / #4284)
- ci-verdict 判定复用 client(DAG N-01 / #4283)
- 侧边栏会话行悬浮时状态点与置顶按钮并排显示,状态不再被置顶切换遮挡
- 项目范围下拉支持多选 + sidebar 系文案 zh/zht 补齐
- Windows 非客户区右键桥接——Electron 形态标题右键菜单生效
- 协调员会话角色——审计可查面+决策规程+双活演练(#4066)
- 侧边栏标题条项目范围下拉——标题即状态,范围与文字过滤组合
- 桌面端标题右键菜单——复制标题/重命名(受控 MenuV2,不回挖窗口拖动区)
- 回收 sweeper 哑件②——租约过期→释放预扣→通知重派(单事务)+ PATCH lease 续租 guarded UPDATE + 竞态零误回收(Closes #4064)
- 池闹钟哑件③——工单到达事件入口(X-Agent-Token)+ alarmPoolByRepo 确定性唤醒(prompt_async 通道复用、缩零告警、幂等)(N-18 #4065)
- 分配提交 API 哑件①——work_order_assignments + 原子提交 + 触点⑤(Closes #4063)
- 会话 idle 图标改项目色迷你头像,移除行尾项目文字标签,标题条同步同一图标语言
- fast-lane executor — dual-green auto-release with audit trail (Closes #3977)
- 池级 API 五操作 + org 鉴权 + N-07 联动预检 + TD-829 DB 侧收割(N-15 #4062)
- pod_pools 模型 + desired reconciler(N-14 #4061)
- 代金券系统——券表/兑换码哈希/guarded 单兑/admin 批发/注册赠额同路径(Closes #4060)
- Home 页隐藏 v2 侧栏开关——路由门控(nav 在 home 已整体卸载,toggle 无物可切)
- billing 页改版——余额瀑布/充值入口/燃速横幅 + 402 渲染位充值链接(Closes #4057)
- v2 标题条导航簇——侧栏开关 + 桌面后退/前进 + 汉堡菜单退役
- 充值订单(mock)+ 提醒五触点 + 订阅链退役(Closes #4056)
- patrol-driver re-arm driver for scheduled session patrol (DAG N-02, #4160)
- merge-coordinator doc-exempt 判绿链路集成(DAG N-02,TD-810,Closes #4145)
- 窗口拖拽区扩展——侧边栏 nav/审查面板条/文件树条 desktop-drag-region + no-drag 逃生门([role=separator]/.desktop-no-drag)
- doc-exempt pure-function module (DAG N-01, TD-810 / #4144)
- 准入门替换——余额门权威化(no-account 拒+门槛 gross 口径)+ 全局准入门(FREE_POOL_CAPACITY 改名 GLOBAL_ADMISSION_CAPACITY)+ 账户风控参数(并发/资源上限 config 化)+ 退役链六项拆除(free-pool 三件套/MCP tier 门/plan-catalog/idleDeleteDays,grep 零命中);唤醒三入口(proxy/lifecycle/billing-restore)同门 (Closes #4055)
- pass summary skip-reason census line (TD-802, #4134)
- /billing platform token panel (usage/budget/balance)
- 资源自定义 API + 容量预检——spec|resources 双通道、isValidResourceRequest 拆两道枚举门、resize(滚动重启/PVC 只涨不缩)、QUOTA_EXCEEDED 与 INSUFFICIENT_CAPACITY 分码、贵配置估价入余额门 (Closes #4054)
- 平台 LLM 网关 env 注入 + entrypoint boot 前 provider baseURL 生成 (llm-gw-p1 #2932 N-06)
- budget enforcement — 5min snapshot cache, pre-forward 429 + Retry-After: 300
- internal per-org usage-snapshot endpoint (N-04)
- 欠费生命周期——阈值穿越幂等预警(高水位基准)+燃速预测(盖戳行口径)+归零拒绝新供给不杀运行+30天锁定保PVC到期释放(Closes #4053)
- 段切分器——服务端权威信号→计费段→幂等落账(N-05 #4052)
- auto-rerun wedge-dead runs (#4034 retro item 4)
- N-07 Windows NSIS 打包——build:desktop 单一入口 + packaged sidecar 解析 + packaged.spec 冒烟(Refs #3934)
- usage metering batched ingest (dual-protocol extraction, 30s/50 dual threshold, X-Usage-Token retry+drop, SIGTERM flush)
- workspace-token JWT auth middleware (N-02 #4088)
- :8090 端口访问控制 — NetworkPolicy 放行 + 防火墙 runbook/脚本 + 强化 unit
- holds 预扣生命周期服务——估价×系数准入建扣(N-04 #4051)
- N-01 网关骨架 + OpenAI-compatible 单上游代理
- 账本核心——burnWaterfall 分桶瀑布/creditCash 幂等/effectiveBalance 唯一口径/hold 三态 (Closes #4049)
- rate_versions 迁移+种子价 + 费率服务 priceAt/estimate/tierPrice fail-closed (Closes #4050)
- worktree-guard salvage-first orphan exit + heartbeat orphan dimension (#3651)
- N-06 多服务器语义回归——multi-server e2e + 壳内路由两根因修复
- 账本族四表迁移 + workspaces 计费改造 (Closes #4048)
- add fast-lane-assert change-surface assertor (Closes #3976)
- app-ws host parse + per-port daemon query (#4033 WI-2)
- gate 等待超时语义重构——软窗+退避延长轮+硬上限 pending 收尾 (Refs #3982)
- per-port app entry derivation + daemon route (#4033 WI-1)
- add fast-lane mechanical-change classifier (Closes #3975)
- N-05 titlebar/desktop 形态收敛——os 探测 + Electron 拖拽区 + win32 WCO(Closes #3932)
- N-04 深链接 octopus:// + 单实例锁——捕获/队列/deeplink:navigate 推送 + 渲染侧 queue/live 双路 + 越界载荷忽略(Refs #3931)
- audit evidence + dry-run stats export(N-03)(#3968)
- N-03 Platform 实装——window-api-surface 白名单双向 fail-closed(TD-695)+ 原生选择器/通知/重启/overlay 通道 + desktop Platform 镜像 web 语义(Closes #3930)
- merge-coordinator Risk/Low 资格过滤 + kill-switch + dry-run(N-02,Closes #3967)
- wrapSSE chunk 间隔观测日志(review-code 2 轮 PASS)
- risk-classifier 风险分级器 + Risk/* label 治理(N-01)
- N-02 sidecar 嵌入——utilityProcess 加载 Node bundle + sidecar:* 通道 + 健康连接 + 崩溃重启(Closes #3929)
- prompt_async delay_sec 定时自唤醒 + bash 长睡告警(#3937 A/C/D)
- N-01 桌面壳骨架与渲染嵌入
- web×home×v2 收起 v2 标题栏——mounted-collapse(命令注册与 portal 挂载保持,Refs #3920)
- owner 铸造/撤销长寿命令牌通道——POST/DELETE /api/workspaces/:id/api-tokens + /ws 代理 jti 撤销检查(TD-687/#3898)
- per-workspace keepalive 免睡属性 + 推进器 pod 重启自启(TD-675b/#3893)
- workspace SA token automount off (TD-676 sandbox hardening)
- workspace checkout auto-advancer (ws-main-sync)
- batch-compose --convergent — regenerable-file batches
- land-batch skill — batch PR landing + doc adaptations
- batch-compose — deterministic N-branch batch composer
- remove deprecated /experimental/* route aliases (#3635 sweep)
- release Phase 1 依赖审计 TD 分层攒批——机械 bump 并单票(#3846)
- 会话首开改为文件优先布局
- merge 协调器 CLI 接线 + systemd 单元 + cron 包装(N-04 仓库侧)
- merge 协调器错误路径处置 + 队列留痕(N-03 冲突/API 失败出队续行、事件评论 4 字段、漂移全量重建)+ 单测
- merge 协调器执行器(N-02 合并动作 + base 同步续合 + 非队首保活)+ 单测
- merge 协调器执行器(N-02 合并动作 + base 同步续合 + 非队首保活)+ 单测
Changed
- skills verbose 清单 XML→单行 bullet(name+首句+triggers 同行)
- system prompt 面 batch-2——persona 去重 + AGENTS 骨架化 + 规则语义保全压缩 + skills 清单去 location
- #4503 内置工具定义瘦身——静态面 54.6KB→33.9KB,builder 前缀 38,228→32,964(-13.8%)
- LLM 首 token 延迟——system 前缀字节稳定化(gate/todo 提醒迁尾部 user 消息)、工具输出近因截断(keepRecent=4/2000)、instruction stat 缓存+远程 TTL、sse 日志补 ttftMs
- bound page() limit-0 default and hydrate() IN batches (REQ-F-004)
- gate WAL checkpoints at open/close to kill 5s stalls (REQ-F-003)
- collapse TimelineRowMap twin to timeline-row.ts + short-circuit heading extraction
- review-code round-1 revisions (TRC-F001 convergence gate, COR-F001 default branch, SEC-F001 stat-absent warn, DOC-F001/F002, STY-F001/F002 split, branch-coverage tests)
- S6 publish-credentials delegates file read + 0600 validation to gitea/credentials readTokenFile (chain + PublishError messages preserved)
- S5 gitea-client readToken + 401/403 classification delegate to gitea/credentials (messages preserved, checkPermissions:false keeps legacy no-perm-check)
- S4 epic-tracker + merge-gate private token readers → gitea/credentials (env now honored)
- S3 compaction listCandidates inline token read → gitea/credentials readToken (env now honored, GITEA_TOKEN_PATH const deleted)
- S2 delete pipeline/kanban/token.ts — kanban family + checklist-watcher + gitea-fallback + compaction import seam migrate to gitea/credentials
- S1 add gitea/credentials module (env>file token, 0600 enforcement, classifyAuthFailure, checkHealth) + unit tests
- 菜单 IPC 死链清理——runDesktopMenuAction/zoom 通道退役
- showNavigation 设置整体退役——导航簇后续清理
- replace jose with node:crypto (infra #4113)
- 行数预算收尾 -- 窗口加载/分页标注/pinned 计数入轴, 注释压缩 (TD-648)
- 抽出 range 状态机轴 sidebar-range-state(per-group range 查询/缓存 GC/inflight 去重, TD-648)
- 抽出 badge 解析轴 sidebar-badge-source(目录 catalog/汇总/fan-out 映射/徽标解析, TD-648)
- 抽出分组渲染轴 sidebar-group-rendering(展开集/目录合并/稳定行标识, TD-648)
- filteredSessionsForRows 具名导出 + pinned header count memo 化(N-02 AC-5, CODE-F102)
- N-02 执行器评审修订(round-1 10 项 MINOR:transport 拆分/异常包裹/三态 detail/测试补面)
- N-02 执行器评审修订(round-1 10 项 MINOR:transport 拆分/异常包裹/三态 detail/测试补面)
Fixed
- ambiguous file-ref toast offers clickable candidates instead of a dead error tab (#4534)
- 恢复 compact.md 的 #3588 契约锚点——BF #4530(sysface-diet 6bb8fcf4f 压缩删除机制名,main 基线契约测试红;语义保全不动,104<137 行)
- 评审R1修复——1 BLOCKER + 2 MAJOR + 9 MINOR 全落地
- 评审R1修复——1 BLOCKER + 5 MAJOR + 6 MINOR 全落地
- 终结候选技能提醒自我维持循环——折入仅限纯批准词 + declined 短路 + 触发词去通用化(#4525)
- 评审R1修复——14 项 FIX(2 MAJOR + 12 MINOR)全落地
- 内嵌 userinfo 凭据 URL 泛文本脱敏 + M-01 集成门测试
- 评审R1修复——归因受控化 + chromium 判定对齐 CI glob + 单读重构 + "0" 特殊值 + 空串回退统一
- 评审R1修复——头域检测键集扩至透传集、不可解析URL占位回显、__proto__写入保护、updateGlobal browser归一化
- 链接化扩展白名单——JSON 家族 + 消歧序修复(js/c/h 前缀遮蔽)
- 实例级 /event SSE 首帧后即断流——总线订阅延迟解析丢失实例上下文(Closes #4475)
- 文件树开关关闭时隐藏会话头切换按钮——fileTreeColumnShown 四处门控统一
- electron-builder 26 schema——publisherName 迁入 win.signtoolOptions,修本地打包必挂
- checks 未绿且 head 落后时先 update 再等绿(Gitea 405 先报 checks 掩盖落后;红陈旧 head 可被 main 侧修复治愈)
- 405 第三变体「checks 尚未绿」改等待当前 head(rc-8 路径)而非中止 + 测试等待预算放宽
- fork 判定放行裸分支名 head label(本实例同仓 PR 无 owner 前缀)——只拒异 owner 前缀
- 聊天页后台子任务 busy 指示——status-bar 新增 BackgroundTaskIndicator 复用 subtree-active 派生计数与 aria(Closes #4465)
- regen src/gen——spec 3 路由(file/content、gap-metrics、prompt_async)落地未 regen 的基线红(Closes #4469)
- 消息文件链接指向工作区外绝对路径时诚实报错——escapesRoot 点击守卫,不再错切成工作区相对路径产生误导性 File not found
- /file/content 对不存在的文本文件返回 404——空标签页修复
- home 品牌字标对比度达标——容器 opacity 降级到 Mark,文字换 muted token(Closes #4446)
- 大仓库 open-project 分钟级卡首屏——插件 SDK 安装等待移出实例引导关键路径 + 先入项目视图后台恢复会话 + Splash 进度反馈(Refs #4445)
- 深层会话路由冷启动崩溃——virtualRow 瞬时 undefined 守卫(#4444)
- 文件引用/截图链接加 rel=external——退出 solid-router 全局锚点拦截
- 模型选择器默认可见性兜底——56天新鲜期直通 + 供应商非空回退
- bootstrap cookie 生存期对齐 JWT 剩余寿命 + /ws/ 认证面回归锁定(#4434)
- deep-route reload wedge + dev blank shell 根治
- drain wait-failure settles exactly the dequeued entry (COR-F701) (#4384)
- 侧边栏会话行置顶 chip 不透明化——悬浮可见性修复
- review round-1 — single classification authority, batch window, no finalizer drain restart
- GLM-5.2 small-call floor disables thinking (low remaps to high); review-code R1 fixes
- test:changed 自选变更测试文件——新增测试不可见致 push fail-closed 误红(run 24050)
- sidecar sv 断言 needle 拆分——规避 bun 1.3.14 --shard 懒转译对 import() 字面量的解析内联(TD-964/#4380)
- merge-coordinator waitMergeable 陈旧 false 二次确认(stable-false)
- flake-retry jobs 补 #1593 fork 守卫
- review round-1 — 3 MAJOR + 10 MINOR dispositions
- electron-updater 具名导入在打包态 ESM main 双形态皆坏——默认导入互操作(#4331 U3 演练发现)
- round-1 review revision — strict catalog repo rule, install-time plugin-guard, evidence containment, single-sourced name rules
- constrain catalog baseUrl with frozen predicate via shared constants (TD-942)
- review round-1 — 有界状态、跨通道顺序竞态与仓库纪律(COR-F001/PERF-F001 等 12 findings)
- round-1 review findings — visibility probe, error kinds, baseUrl threading, fail-closed pairing
- converge slug charset to ^[a-z0-9][a-z0-9-]*$ at the chain head (#4349)
- reword comment to drop credentials-path literal (verify REG-1)
- identity-injection preserve cap 8→12 — worker role union exceeded cap
- review-code r1 — resolve-time gate guard, trustedHosts trust boundary, freeze default, duplicate-warning precision
- pin 覆盖层 pointer-events 互斥门控(COR-F001)+ 测试互斥断言加固(TST-F001)
- kickoff 默认 skills 远端改为确认式写入并支持 --skills-remote 覆盖 (#4370)
- 侧栏置顶按钮悬停零位移覆盖层 + 右键菜单取消置顶失效
- round-1 评审修订(TST-F001 覆盖缺口等)
- route /file/{ses}/{id} read-backs by session directory (paste preview 404)
- rewrite dead docs guidance in builder agents_md (same fix, second copy)
- rewrite dead docs guidance — local injected sources first, WebFetch only against public docs surface
- record/invalidate ride VERDICT_LEDGER_TOKEN (403 fix)
- publish-feed 跨仓建 release 省略 target_commitish(#4331)
- derive verdict keys from git-trees API (#4280 fix)
- 模型可见性 store 提为模块级共享单例(跨实例同步)
- 改全局配置/provider 连接后失效各作用域 provider 查询
- reconcile window truncation marker + recentclose sort (refs #4346)
- nullish-safe reconcile containment (refs #4346)
- publish-feed 自检适配私有仓——匿名 404 回退带权探测(#4331 U1)
- 标题条移除 min-height 反缩放——zoom<1 桌面端中轴线与分隔线恢复与面板条共轴 (Ref #4258)
- verify regression (token-path mention) + consume TD-920
- review round 1 findings (COR-F001 DGN-F001 SEC-F001 PERF-F001 STY-F001 TST-F001)
- review round 1 findings (COR-F001 DGN-F001 DBT-F001 COR-F002 COR-F003 COR-F004 STY-F001 TST-F001 TST-F002)
- review-code round-2 disposition — drop jobs[0] fallback (SEC-F005), cover non-NDJSON branch (TST-F005), assert source label (TST-F006), mergeRunLogFaces comment union-vs-first-match (DOC-F006)
- review-code R1 revisions — dual-log sync-head wiring (COR-F001), fetch timeout, shape guards, test/doc/sty minors
- helper survives own bookkeeping failures; suite split under 200-line cap
- queue ages from first_seen state; running counts in_progress
- watchdog 死-runner 臂——定期沉降 runner 已消失的 generating 僵尸会话 (#4308)
- review-code r1 修复 — 补齐 7 处 unresolved-coords 分支测试、mover 预检不重试、AC2 收敛门 + disposition 表补全
- review R1 findings — invalidate contract conformance (drop --channel, whole-key failure() oracle, timeout 45), SEC-F002 taint guard (client-editing PRs never reuse/write verdicts), PERF-F001 parallel probe + parallel key derivation, TST-F002/F003 record conjuncts (regression outcome, syncprobe), TST-F001/F004/F005 test bindings, STY-F001/F002 style, DOC-F001/F002/F003 comments+docs (AGENTS.md, CI.md)
- 消除 Gitea 坐标硬编码默认——共享解析模块 + 未配置显式失败并带修复指导(无默认仓库)
- review R1 findings — lookup channel validation + unknown-flag rejection, injectable fetch timeout (+test), cross-channel miss test, non-https token warning, prod-base/single-file header notes, MIN/MS_PER_DAY constants, test dedupe
- 删除 Test 步骤残留孤儿 echo+fi(round2 DELTA-F001 BLOCKER,run 块 bash -n 2→0)
- run_pkg 步骤置空镜像 env 恢复 core 语义测试,install 默认 --frozen-lockfile,审计守卫修 rc-124 假绿窗并校验重试旋钮
- --hot 版本守卫对齐死 pin(1.3.14)也告警并指向 --restart-backend fallback,漂移文案按 active/pin 相对方向分支,测试改用动态 pin/active 锚定断言
- push 守卫 pathspec 收窄到选择器可映射的 .ts/.tsx 代码路径、app/ui 套件门加正向回显(R2 REG-F001/COR-F001)
- live-search-path 守卫扩 PATTERN 等价形态(SET [SESSION]/set_config、词边界防 RESET 误报、跨行)+ 扫描错误 fail-closed(exit 2 indeterminate)+ 空集 vacuous-pass 防护
- 已读会话误报未读——补全 watcher 会话通道、持久化按 key 单调合并、跨 tab storage 重合并、移除 1000 条截断改为配额降级
- shield npm-family CI egress — mirror install traffic, bounded retry for audit guards
- PR 门禁 pathspec 改为 :(top) 锚定——app/ui 单测门禁自 #2403 起在所有 PR 上静默跳过(#4183)
- src 同居 live 测试迁 options=-csearch_path + reaper AC-3 真交错测试 (Closes #4262, Closes #4259)
- bun packageManager pin 1.3.13→1.3.14 (Linux/WSL2 deterministic segfault)
- r2 三项——trace 真消费 fast 参(NEW-1 安慰剂真修)+ fake limit 切片与两行夹具(NEW-2 截断可证伪)+ limit 严格十进制(NEW-4)
- TOKEN 显式赋值(set -u 下 unbound——iter-6 修订笔误真修)
- review-code r1 全收——TRC-1 孪生/SEC-3 回环绑定/SEC-4 token 能力如实/PERF-1 limit 封顶 + 8 MINOR
- 主连接池经 options=-csearch_path 钉 schema(池化新连接不带会话级 SET,#4205 同款)
- 夹具路由 param 百分号解码(%2F repoId——与真网关面同构)
- 夹具补迁移前置老形状基表(organizations/workspaces/memberships/notifications)
- 302 Location 防 scheme-relative 离源重定向(review r1 SEC-F001)
- sidecar 自声明升级禁用标记,/global/upgrade 识别 sidecar 拒绝(#4257)
- TitleSlot 复用共享三值 RouteType(typecheck 修复) (Ref #4258)
- 路由分类会话白名单化——非会话页不再幻影预留树宽,内容移到标题条下方 (Closes #4258)
- 窄窗列溢出时 WCO caption 避让锚定可见右缘
- ws_token 交换 302 Location 指向公网浏览器路径,修 per-port 宿主路径翻倍 404
- review-code r1 修订——毒行围堵(逐行单事务+分块+stuck 事件)+ PATCH 路由矩阵 + 续租状态话术 + @work-item 断链修复 + validateLeaseMinutes 去重 + fake 严格化 + runbook 观测面
- sweep 扫描轮内独立降级——清扫失败不阻塞池收敛(租约域与副本收敛解耦,N-15 scanner 集成回归修复)
- sweeper where 裸模板参数绑 ISO 字符串(绕过 postgres.js Date Bind)+ fake 比较折算毫秒
- 标题条窗口拖动整体失效真因两连——main 去 paint 包含 + 标题 Tooltip 改 asChild
- 发丝线改由条容器绘制——横贯沟槽与手柄区直抵窗口右缘 (Ref #4245)
- r2 INFO 收尾——proposal 封顶改 UTF-8 字节计长(Buffer.byteLength)+ runbook 表格 prettier 对齐
- review-code r1 修订——胜者无关 live 断言/int4 上限/proposal 封顶/in-flight 409 语义/lease 缺省去重/org 账户解析复用/边界与角色负例/env 表测/runbook 补面
- address review round-1 findings S-01..S-05
- review round-1 修订——BLOCKER 入口字面量化+网关豁免+e2e 证明、null 投递器/超时/body 消费、限流 30/min、fail-loud fake、alarm-wake 拆分(N-18 #4065)
- watchdog defer refreshes activity map so settled tools get a post-defer grace window
- isUniqueViolation 沿 cause 链下探——drizzle 把 23505 包进 DrizzleQueryError.cause(live 实证)
- 侧边栏展开搜索宽度收敛至 max-w-56,焦点环降为 1px 静音边框
- 会话标题按平台分语义——桌面端为窗口拖动把手,kebab 补"复制标题"
- round-1 review — label-id resolution, merge-base before-ref, awaiting-contexts disclosure, tail-anchored marker scan, stage vocab, adapter/CLI test coverage
- 审查标签条发丝线横贯 caption 沟槽直抵窗口右缘 (Ref #4225)
- review round-1 修订——session-verify 单一实现(DGN-F001)、sessionNav 验签化+裸解码删除(SEC-F001)、per-request 记忆化(PERF-F001)、catch/Bearer 优先回归 ×2、陈旧注释 ×4(#4220)
- review round-1 revision — rewrap Tier A boundary bullet to ≤100 cols (Closes #3979)
- #4220 会话自证签名——网关同源凭证序替换裸解码 Bearer(org 门/admin 门/审计归属 + 回归 7 用例)
- 归档 bundle 补全 40 位 commit sha(schema 校验)
- review round-2 收口——SEC/COR-F007 建池竞态 org 绑定复查+回归测试、DGN-F005 归因读入 try、COR-F002 异常留痕(N-15 #4062)
- 状态条终端按钮移入左簇 + 左右簇间距收紧 (Ref #4218)
- 审查标签条 gutter 列感知——文件树打开时不再幻影预留 138px (Ref #4218)
- review round-1 修订——SEC 会话验签/建池归属/单池收敛/COUNT 聚合/谓词补面(N-15 #4062)
- review round-1 修订——test7 props 锚定判别 remove() overlay 清除/控制台恢复/按URL定位持久化条目/overlay 不变量注释 (Refs #4072)
- question-preview 面板改 overlay 并解除 shell 裁剪,消除 hover 抖动
- 约束态标题栏同步种子测量,消除面板开启时的过期宽度帧 (Closes #4139)
- 恢复侧边栏子会话嵌套显示——sessionItemProps 加回 showChild
- round-2 收敛后微修——决胜键/软失败会计/抽取/事件标签(WI: N-14)
- review round-1 findings — claim-then-act 重构 + 守护按池限定(WI: N-14)
- server.add 会话内存携带 Basic Auth 凭据——持久化仍剥离(SEC-F001 不变)(Refs #4072)
- review findings 补 scaffold-template 双胞胎(TD-256 gate,#4060)
- Logo 锁定稿光学居中 + emblem 对齐 cap 中心 + textLength 防跨平台漂移 (Ref #4201)
- v2 标题条非会话底色统一 bg-base + 删除硬编码 octopus 占位 (Ref #4201)
- titlebarRight 幻影预留加 home 门——断层/拖拽死区根因 (Ref #4201)
- cross-spawn-spawner kill 强升分支 destroy stdio 后再 SIGKILL——解除 close 永不触发的无界阻塞 (#4203)
- 兑换 flip 的 redeemed_at 改绑 ISO 字符串——裸 sql`` 插值 Date 过不了 postgres.js Bind(live 实证 ERR_INVALID_ARG_TYPE)
- unified-shell 3 断言随 #4193 nav 源面更新(pb-6→h-[calc(100%-1.5rem)] 意图等价,内容锚定)+ builtin-data.gen.ts 还原 main 字节
- COR-F005 — keep filter drops blanket /e2e/ reject, Playwright suffix rule suffices (Refs #4109)
- review round-1 findings — e2e keep-filter, guard reachability, keep-predicate tests (Refs #4109)
- 轻审 R1 加固 titlebar 断言
- SelectV2 弹层 portal 加 top-layer 标记(#4027 #4028)
- review-code round-1 全收——DO 块锁封竞态 + 摘除标记 + ledger FORWARD PATH 注释反转 + 测试加固 8 项(N-11 #4058)
- review-code round-1 全收——DO 块锁封竞态 + 摘除标记 + ledger FORWARD PATH 注释反转 + 测试加固 8 项(N-11 #4058)
- 状态栏左簇死区热修——nav 拖拽盒止于页脚带上方,app-region 矩形不再覆盖 Portal 页脚 (Refs #4155)
- 迁移演练发现双修——snapshot 谱系剥遗留实体 + recharge 清壳 DO 块化(N-11 #4058)
- 迁移快照 DAG 线性化——修复 drizzle-kit 1.0-beta 非交换预检拒跑 db:migrate(Refs #4058)
- source-verification 断言改内容锚定——修 main push CI 残余 2 红(Closes #4167)
- review round-1 修订——档位门槛本地消费/毫值域校验/同源守卫/分类器 + 六面测试见证(Closes #4057)
- review round-1 修订——收银台双通道/原子开桶/触点去重/有效期冻结 + 八处测试见证(Closes #4056)
- 审查面板工具条空白——aside min-width 预留文件树宽度
- address round-1 review — edge tests, bounded fetch, comment precision
- readCiYmlText bare-repo fallback via FETCH_HEAD
- DropdownMenuV2 行菜单 portal 提升至 DialogV2 overlay 之上(#4074)
- ServerHealthIndicator 健康态可访问名——role=img + 本地化 aria-label(#4075)
- test:changed 作用域纳入 packages/desktop + 覆盖守卫 (Closes #4109)
- Windows 缩放快捷键对称化——before-input-event 接管四和弦 + webview-zoom 信号 + 菜单 zoom 三接线(Closes #4164)
- name doc-exempt in enqueue/merge trails (R1 COR-F001/DOC-F001), resolver negative-branch tests (TST-F001), wrap over-width log lines (STY-F001)
- disable implicit npm audit submission in Npm.reify
- llm-gw M-01 429 语义经 SNAPSHOT_TOKEN_BUDGET_PER_MONTH 过渡源保全(快照预算随套餐退役的跨 epic 焊点)+ runtime-env kube 桩去重 (Refs #4055)
- runtime-env kube fake 三方法去重(main 已带同款桩,服务端合并产生重复键)(Refs #4055)
- register doc-exempt tests in CI run list + correct parser-shape JSDoc (review-code r1)
- 文件树标题条 WCO caption 遮挡——strip gutter 预留 + Electron-Windows 移除关闭 × + caption oracle 去盲(挂载竞态/env 直测)
- 4055 bundle 对齐 runs-bundle.schema(meta/index/working_notes)(Refs #4055)
- 评审 round-1——running+旧锁戳不进唤醒门(COR-F001)+ running 不受门影响用例(TST-F001)(Refs #4055)
- FK-safe system-mint audit — api_token.minted now carries workspace_id NULL + details.workspaceId (session-lifecycle convention); the column-bound birth audit armed the NEXT cycle's recycle/hard-delete/purge 23503→409 (COR-F301-R3), plus steady-state birth-audit regression test (TST-F301-R3, red-verified: pre-fix shape assertion fails) (llm-gw-p1 #2932 N-06)
- defer gateway token mint audit to post-daemon — pre-daemon audit row's NO-ACTION workspace FK blocked the stopped-slot recycle delete (23503→409), regressing stopped-row re-provision from 201 (llm-gw-p1 #2932 N-06)
- Shanghai month caliber + verified org gate (review r1)
- 评审 round-1 修订——shell WCO gutter 门控 v2(COR-F001 防双重预留)+ 真机 WCO e2e oracle 迁移右边界(TST-F001)+ 钉子加固
- precise parity comment (review r3 TST-F001)
- Windows WCO 标题条工具条窗外几何——移除 titlebar 视口绝对宽度改 shell 包装层 gutter 预留 + e2e 右边界 oracle(Closes #4132)
- resize 补丁先行/行写殿后——部分失败下同三元组重入恒收敛(round-1 COR-F001)+ 收敛性回归 (#4054)
- per-session delayed-wake replacement semantics (#4069)
- M-08 夹具修正——billing_owner_id 载荷是 owner 实体身份(经 accounts_owner_key 解析账户),非 accounts.id (#4041 M-08)
- oxlint 清零——fake thenable 块级豁免(segmenter 同款)+ 锁窗口断言非空断言化去可选链(CI check 门禁)(Closes #4053)
- round-2 裁决落地——归零自动锁改 insert-if-absent(宽限一次性:仍为零到期不续锁,防永不充值白保 PVC;显式 lockAccount 保留重锁通道);lockDays 入参防线;溢出注记如实;snapshot tables 块字母序;live 证伪补齐(仍为零不续锁 + 充值不解锁)(Closes #4053)
- 评审修订 round-1——DBT-F001 snapshot 补全实体链(9列/2PK/2FK/2CHECK);DGN-F001 锁周期 episode 语义(回正清已释放行、二周期重锁);DBT-F002/COR-F001 首评负余额钳 0;PERF-F002 值未变跳过重写;A11Y-F001/F002 用户级名词+锁定到期时刻+充值语义如实;COR-F004 forecast 钳 0;DGN-F005/STY-F003 RECHARGE_URL 单源;STY/DOC/TRC 批量(Closes #4053)
- lockStatus 时刻断言改按 getTime 比较(裸查询字符串时间戳 vs drizzle Date)(Closes #4053)
- releaseIfExpired 裸模板 Date 参数转 ISO(N-05 同款坑)+ live 基线流修正(评估器自开户轮询——先立 watermark 再燃烧)(Closes #4053)
- live 夹具 organizations 非空时间列补值(Closes #4053)
- 轻量评审修订——CrossingLatch 改喂派生谓词(M02-F001,闩锁与阈值推导直接同源)
- 集成夹具算术修正——r2 档 S 三元组 CS=160 毫/时(100+20+40),非 200(#4041 M-02)
- drop root status key
- bundle meta.state=archived, drop base_sha, full close sha
- bundle meta.state=archived, drop base_sha, full close sha
- round-2 修订——真分歧回归格点 + 注释算术勘误(N-05 #4052)
- 回滚测试夹具 id 用合法 hex(uuid 列 22P02)(N-05 #4052)
- review round-1 修订——proration 整数先行 + 重叠 fail-fast + uuid 守卫 + 失败回滚/整除格点/乱序补钉(N-05 #4052)
- live AC-1/AC-3 字面期望计入 r2 改价行(段起始价语义的正确账:31/38/Σ−174)(N-05 #4052)
- live 改价行插入参数 Date→ISO 串(postgres@3.4.7 模板序列化限制)(N-05 #4052)
- N-07 review R2 修订——stage.ts 拆分(188 行达标)+ 歧义诊断出 catch + entryPath 注入(测试脱离未跟踪产物)+ EBUSY 重试(Refs #3934)
- one-shot 405 behind-base recovery (#4034 retro item 3)
- N-07 review R1 修订——签名门 GHA 上提(SEC-F001)+ win-unpacked 文案(DOC-F001)+ 超时/pdb 剔除/严格模式/分支测试/icon 拆分(Refs #3934)
- review-code r1 revisions (claim strictness, key cache, exp required)
- review round-1 修订——退化输入 fail-fast 归因 + 等值边界/查价透传测试 + seed 参数化(N-04 #4051)
- openEstimatedHold 走 openHoldInTx(补 open 标记行 + 免嵌套 savepoint)
- risk-step wording — label follows classifier verdict, not a Low default
- review-code round 1+2 revisions
- NOW 于迁移落种子后捕获(模块级求值早于 effective_from 几毫秒→版本洞)(#4041 M-01)
- 轻量评审修订——NOW 运行相对时(M01-F001 墙钟炸弹)+ 低于估价结算分支(M01-F003)(#4041 M-01)
- 集成夹具算术修正(125×9.6=1200 毫)(#4041 M-01)
- DOC round-2 补正——NULLS LAST 入注、credit id 惯例交叉注记、消息尾部与重放注释(前次声称未落项)(#4049)
- TST round-2 硬化——现金殿后守卫静态钉 + runInTx fail-closed 用例 (#4049)
- openHold/releaseHold 零额标记行落地(前次提交因格式漂移未吃进)+ 复算测试按 ref 收敛 (#4049)
- round-1 修订——creditCash 确定性 id+ON CONFLICT 并发幂等、守卫败者统一 INSUFFICIENT、hold/release 零额标记行、runInTx fail-closed、余额快照单事务、双连接真并发/重放/标记行 live (#4049)
- live 顺序测试烧 160 触现金殿后(断言算错修正)(#4049)
- live 段补 N-01 迁移前置旧形状(ALTER/DROP 依赖)(#4049)
- tier-prices 测试超时 30s——服务器冷启动态导入 ~8s 一次性成本(PERF-F001 佐证)(#4050)
- N-01 workspaces 5 列补进测试夹具(PR #4070 回归修复,CI turbo 缓存曾跳过未变更包)
- TST round-2 硬化——UnknownTierError 与 RateUnavailableError 不相交断言(防继承回归重开毒丸)(#4050)
- round-1 修订——UnknownTierError 独立类(防重试毒丸)、schema 属性 snake_case 对齐、迁移回滚注记 (#4050)
- 查询算子钉修正——StringChunk.value 为 string[](实测形状)(#4050)
- TST round-1 修订——await 未知档位断言 + 查询算子/方向静态钉(lte/desc 回归 CI 可见)(#4050)
- RESTRICT 断言改约束名(版本稳定,COR-R2-F001 硬化;DBT-F101 双重实证否决后收尾)(#4048)
- DOC round-2 文字修正——N-09 工单号 #4056、退役读者清单核准 (#4048)
- 预期失败断言改 try/catch——await expect(pg 查询).rejects 在 bun test 1.3.14 挂起(探针三段定位)(#4048)
- live 段实测修订——PG18 伪 CHECK 过滤 + 预期失败语句 unsafe 通道(postgres:18 实跑发现)(#4048)
- 评审修订 round-1——live 守卫段执行修复、测试迁 tests/ 根、RESTRICT 账本 FK、回滚对称、@deprecated 退役标记、快照前向钉 (#4048)
- N-06 review round-1 修复——13 MINOR 全清 + INFO 处置
- wire daemonClient into proxy routes + structured daemon-error mapping (#4033 WI-R1)
- index.slug must equal meta.slug in bundle
- full-length close_commit_sha in bundle (schema hex40/64)
- review round-1 revision — per-field direction dedupe (field:name), empty-files diff-malformed guard, regression tests (Closes #3976)
- drop stale 'expected RED now' prefixes from #4034 regression titles (review DOC-F001)
- make interrupted-finish guard atomic with the write (review COR-F001)
- address review round-1 MINORs (file-wide 30s caps, clamp comment + tests)
- settle signal deaths immediately, surface >=128 exits via shell_metadata (#4034 fix B)
- persist finish="interrupted" on swept/recovered assistant drafts (#4034 fix A)
- retry #2154 race-hit provideInstance runs on fresh fibers (BF-546)
- review round-2 revision — opts-in-try never-throws literal, import order, parity regex hardening (Closes #3975)
- review round-1 revision — null-opts guard, reason rename, ci parity test (Closes #3975)
- staleness-watchdog turn-scan guard + active-child defer
- N-05 review-code round-1 修订——3 MAJOR + 全部 MINOR 处置(Refs #3932)
- read reviews via main token, classify approvals-405 permanent, paginate label list (#3955 TD-763/TD-764 follow-up)
- range-aware /session envelope + empty /file list in mock backend (#4022)
- R2 修订——错误页驻留时 warm 链接入队(COR-F008)+ spawnSecondInstance url 可选(TST2-F001)+ types 注释对齐与 describe serial(STY-F007/F008)+ gen.ts 还原基线(Refs #3931)
- R1 评审修订——队列冲刷重臂至 app-origin did-finish-load + 主进程信任边界结构过滤 + 网络/遍历路径拒绝 + 忽略日志先于 isLocal 门 + e2e 原子断言(Refs #3931)
- de-flake FT-534 victims (fixture, lint.perf, review-status, publish-cli) (#4017)
- parameterize provideInstance #2154 bound for spawn-heavy snapshot tests (FT-529) (#4015)
- bump Npm.add reify test timeout to 30s (#4008)
- stabilize ws-prototype WI-003a echo waits under load (FT-058, #2767)
- test:changed 四索引 win32 分隔符归一(Closes #3914) (#4000)
- R2 micro-revision (#3968)
- QuestionPrompt/Session 常驻 presence ping,修复 question live-gate 误降级(Closes #3913) (#4004)
- R1 review findings (#3968)
- R3-F001 shell.spec 陈旧注释清理(beforeAll/hookTimeout 语义已由 globalSetup 取代)(Refs #3930)
- review-code R2 微修收敛——COR-R2-F001 focus 读销毁守卫 + COR-R2-F002 titlebar 去重 undefined 初始化 + TST-F009 restart 探针 expect.poll + TST-F010 导航围栏 e2e 行为探针 + STY-F001/F008 双文件瘦身(renderer-error-page.ts / platform-coercion.ts 抽取)+ DOC-F005/F007/F008 README 围栏段落与措辞 + 附带发现:Playwright 1.61 无 hookTimeout 键——冷构建挪 e2e/global-setup.ts(无超时预算),三 spec beforeAll 退役(Refs #3930)
- #3114 zero-window 用例钉死中月时钟,消除月初 thisMonth 区间空窗的日历性红测 (#3995)
- review-code R1 修订——3 MAJOR 全修(SEC-F001 will-navigate 守卫+sidecar 重放 origin 门;TST-F001 restart 上下文标记探针;COR-F001 notify click destroyed 守卫)+ 择要 MINOR(SEC-F002 载荷运行时校验、PERF-F001 overlay 模式去重、TST-F003 e2e 补 show-item-in-folder、TST-F004 pickerFilters 锚、STY 导航策略抽 navigation-policy.ts/类型导出复用/措辞统一、DOC README 陈旧句、COR dialog 挂父 destroyed 守卫、TST-F002 bare 空白归一)(Refs #3930)
- sv 锚点容 prettier 换行(openDirectory/createDirectory 数组折行)
- N-02 round-2 微修订(STY-F007 executor-http 200 行上限 + TST-F004 sweep stand-down 回归网)
- N-02 round-1 评审修订(SEC/PERF/DOC/STY/TST,9 MINOR 全处置)
- shell/prompt.ts usage-note 术语与 long-sleep guard 对齐 (#3974)
- v2 token 桥补注册 --color-v2-background-bg-button-neutral——sidecar-status.tsx 引入首个 app 工具类使用但 colors.css 手维块缺项(v2-colors.css 虽有、渲染无恙,规范注册面红);push-CI tailwind-registration 红转绿
- R3 微修收敛——SEC-F006 注释实修(iter-3 声称已修但静默未落盘,TRC-F005 勘误)+ PERF-F009 回归锚 + TST-F015 断言域收口 + TRC-F006 措辞
- 关闭 round-2 残余窗口(补偿 DELETE、降级回滚、分页边界测试)
- review-code R2 修订——PERF-F007 MAJOR(deadline 先于 probing 守卫 + 单探测 5s 超时)+ R2 全部可行 MINOR
- 修复评审 round-1 发现(fail-closed 变更窗口 + marker 作者绑定)
- review-code R1 修订——12 MAJOR 全处置(COR-F001/2/3 竞态·shim 挂起·凭证时序;A11Y 三项通告/token/滚动;TRC/TST 超时变体新 e2e)+ 择要 MINOR
- TooltipV2 嵌套交互触发器导致 composer 成对节点 + 点击全灭(Closes #3729) (#3961)
- rebuild 3808 archive bundle to schema-compliant artifacts (Schemas red)
- audit-20260901 终报 7 项 Accepted Risk TD 顺带修——并行批次集成(Closes #3952) (#3953)
- TRC-F001 收口——fxp-guard-alert.test.ts 接入 ci.yml Gitea scripts 单测枚举(review-code R2 遗留 MAJOR)
- review-code R1 修订——exit-1 通道加固(redirect manual + issue-number 校验)、verdict 映射仿真锁定、annotation 属性语法、token 步级化、CI.md 清单
- review round-1 revision — single-flight provision + orphan cleanup (#3690)
- wake self-heal + creating timeout (#3690)
- review-code round-1 修订(7 MAJOR 全处置)
- process-audit 三轮收敛——语料自洽性修复 + 派生物再生 (#3939)
- 恢复 js-yaml 三线钉版 3.15.2/4.3.2/5.4.1 + CI 门禁 + renovate 跟进(#3829)
- patch @solidjs/start exports 补 types 条件——修复 alpha.3 升级后 typecheck 全红(#3926)
- free-pool 两个 sweep 接入付费即转正豁免——paidOrgIds 集合跳过(Closes #3917)
- /wsa/ app-port proxy 转发浏览器 Host——buildUpstreamRequest keepHost 选项 + NetworkPolicy 8336 收编(Closes #3915)
- test:changed 补 .gitea/ 逃逸导入映射盲区(#3907)
- TUI permission 渲染时打 presencePing
- ws-sync 偷锁 unlink 前 re-read-compare;control-plane auto-sleep schema pin 测试语义对齐
- ws-sync supervisor target resolution — WS_SYNC_DIR / WORKSPACE_INIT_REPOS ladder replaces process.cwd() (Closes #3908)
- round-1 verdict — git-corroborated zombie close (F1), retry state re-check (F2), probe coverage (F3)
- round-2 遗留收尾——rebase main 后 snapshot 重锚 57c278d8 + audit union 合并 39 员 + prettier 生效配置合规
- round-1 review — F1 tunnel revocation registry, F4 admin-scoped owner gate, F5/F6 boundary tests, F3 lineage evidence
- 新建会话草稿权限档位绑定并序列化进创建请求(TD-681/#3899)
- sweep empty-diff passenger PRs to terminal state
- round-1 评审修复——supervisor 锁身份/TOCTOU/退避/shutdown 接线 + keepalive DB 错误显形(TD-675b/#3893,PR #3901)
- presence 生产写入方三面接入 + 宽限窗 interrupt 泄漏 + degrade 原子化 + Part B 调用点测试(TD-685/#3892)
- rule-budget 语料行尾归一——CRLF 检出按 LF 计,消除本地假 OVER(TD-680/#3894)
- 无头会话权限墙——ask 宽限窗降级 deny-with-remediation(presence 接入)+ 兄弟 worktree 新鲜边界豁免(TD-685/#3892)
- buildWorkspaceDeployment 兜底 XDG_DATA_HOME——manifest 层钉数据目录到工作区卷(TD-682/#3889)
- zai-coding-plan chunkTimeout 30s→90s 按 zai 实测校准(TD-677/#3880)
- wire throwaway indexes into the mkdtemp session dir
- review round-1 — fail-closed conflict attribution, mkdtemp indexes, doc corrections
- pin storybook-solidjs-vite back to 10.5.2 — 10.7.x solid-version detection fails under bun isolated workspaces
- review round-1 — CI-wire tests, transport DI, branch guard, doc corrections
- review round-1 MINOR fixes — e2e multi-ref, trade-off pin, comment refresh
- deploy 默认不装 systemd 单元 + INSTALLED_FROM 账本 (TD-671 / #3864)
- resolveUpdates fans row updates out to every close ref
- switch-v2/checkbox-v2 基准重定向到设置对话框真实挂载——data-slot 修正 + auto-approve 注册表 seed(#3841 part B)
- coordinator sync 在途 CI 守卫 + LF-safe 部署 (TD-671 / #3864)
- adaptive settle window for >150ms click cadence
- bump GHSA-flagged deps — shell-quote/svgo/find-my-way/ip-address/sharp + @solidjs/start alpha.3
- worktree-postmerge-sync 归档 bundle 匹配容忍 issue 号前缀(TD-680,#3859)
- settle-trail timeline renders to kill rapid sidebar-switch jank
- select-v2/menu-v2 基准重定向到真实挂载路径——设置对话框冷开 + 会话头 kebab 打开态(#3841 part B)
- pin workerd 1.20260820.1 (flag-compatible, older runtime for runner env)
- tabs-v2/timeline-v2 mount benchmark 重定向到 session 视图——smoke 同款 mock 引导 + 无条件标记(#3841 part B)
- pin workerd 1.20251118.0 override (runner-env prerender ECONNREFUSED with 1.20260825)
- dialog-v2 mount benchmark 重定向——经 server-select 对话框打开态测量(#3841 part B)
- sdk gate dir → packages/sdk/js; skip unwritable-lock-root tests for root
- mount benchmark 空样本假绿改判失败 + highlight-paint 断言前置保留诊断(#3841 part B)
- e2e 夜间门两层语义——perf job 降级 advisory(#3841)
- round-2 review revisions — exclusion set, gate hardening, doc truthing (#3787 review r2)
- harden builtin-rewrite set + add web-build CI tripwire (#3787 review r1)
- replace expired pkg.pr.new @solidjs/start pin with registry 2.0.0-alpha.0
- normalize bare builtins + enable nodejs_compat for astro 6 worker (#3787)
- settings footer shows the server version in the web build
- map the workspace-base channel pin to prod
- readiness probe always anchors on the workspace server port
- drop duplicate undici override key from merge resolution (#3782)
- bump astro 5.18.2->6.4.8 stack for GHSA-2pvr-wf23-7pc7 +2 (#3787)
- raise nanoid to 3.3.18 — clears BOTH ticket advisories (#3789)
- bump socket.io-parser 4.2.6 -> 4.2.7 (GHSA-2m8v-j782-fhvr, #3790)
- bump nanoid 3.3.16 via bun.lock-only re-resolution (GHSA-28wg-ghj8-5hjv, #3789)
- pin postcss 8.5.26 via root override (GHSA-6g55-p6wh-862q +3, #3788)
- makeGit 双通道拆分 — head 探测/sync 守卫永不防抖,keeper duty 保留 #3549 防抖(演练 15:5x 自锁 TD 关闭:协调器自身同步后 recently-synced→skip 活锁)
- 405 一律按瞬态拒并处理 — merge() 全量 405→behind-base 族(带 body 摘要)+ pass 内 3×15s 有界重试,耗尽入 skip 族;单元超时 300→600s(#3769 e2e:16:41 405 body 非 behind-base、2 分钟后同 PR 合并成功)
- rewrite fork-guard to satisfy #2814 pin (BF-542, #3741)
- add fork-guard if to changes job (BF-542, #3741)
- pin h3 2.0.1-rc.29 via root overrides (#3786)
- guard optional VITE_OCTOPUS_CHANNEL under vite 7.3 strict env types (#3782)
- bump js-yaml per-major 3.15.2/4.3.2/5.4.1 (GHSA-52cp-r559-cp3m +4, #3785)
- bump brace-expansion 5.0.9 + 2.1.4, scoped override for glob chains (GHSA-mh99-v99m-4gvg +2, #3783)
- waitMergeable 记录新鲜度门 — GitRunner.sync 返回推送 sha,PR 记录未反映推送前不信 mergeable(16:00/16:05 两次 405 均为静态 main 下的过期记录竞态,#3769 e2e 演练发现)
- pin fast-uri 3.1.5 via root overrides (#3784)
- bump vite 7.1.4→7.3.6 via catalog + blanket override (#3782)
- pin @modelcontextprotocol/sdk 1.27.1 via root override (#3781)
- /wsa/ app-port proxy end-to-end fixes
- merge behind-base(405 本实例语义)分类为 skip 重探而非出队(e2e 演练发现)
- pin undici 8.10.0 via root overrides (#3780)
- N-04 round-1 修订(token 读取入 try/slug 两段校验/消毒 i 旗测试/cron 注释对齐)
- verify fast-xml-parser 5.10.1 on AWS XML chain + audit guard (review R1) (#3777)
- bump seroval override 1.5.0 -> 1.5.3 (GHSA-mv8w-475r-vwqw)
- pin fast-xml-parser 5.10.1 via root override (#3777)
- bump tar 7.5.17 → 7.5.22 via overrides (#3779)
- N-03 评审修订(trail 原因消毒/keeperRest 终态派生/disposeFaultedHead 抽取/测试补面)
- behavioral tests + dialog focus return (review R1)
- test:changed 选择缺口——契约面变更选中快照/契约测试
- N-02 归档 close_commit_sha 补全 40 位(Schemas 门 pattern)
- 待答问题状态栏入口改原位浮层——切页拆掉会话上下文(#3636 follow-up)
- 会话目录未匹配任何项目时侧边栏整栏空白 — 面板门控 when={project()} 改 hasProjects(),空态卡直挂 fallback
- wire workspace_sessions lifecycle write side (#3659)
Reverted
- rules 走 live-only allowlist 豁免,撤回多余的孪生新增
- 撤回非客户区右键桥接——HTCAPTION 右键在三重探针下均不可观测
Documentation
- zai 缓存 runbook 补 #4524 实测——persona 误标修正、26,827 累计 -30.3%、bullet 清单信号保全、CRLF 注记
- zai 缓存 runbook 补 #4511 挂载面实测——32,471 累计 -15.1%、wire ID 陷阱、/tool 面级 A/B 探针、退化路径优于原工具
- zai 缓存 runbook 补 Layer 0 基线(2026-09-10)——前缀 38.5K 两天+20%、覆盖 94.7%、reasoning 占生成 73%、10min 空闲未清缓存(TTL 观测修正)
- 工作站 quirks 补 §8——bun daemon 缓存 wedge 空转(定位/修复配方/桌面属主防误杀/强杀冷转译余波/端口冲突伪象)
- zai 缓存 runbook 补长会话实测——20 轮 90% 覆盖,空闲 8min TTL 全清,截断回退 6.6% 一步自愈
- README 中英文工作流描述同步至 DAG 管线
- zai 显式缓存键立项否决——prompt_cache_key 被双端点忽略,隐式前缀缓存实测 94% 覆盖
- runbook §8 签名落地——0.16.2 已上 feed、signtool 路径与 SimplySign 在线两条操作先决条件
- tighten AGENTS.md additions for explorer/tool rule-injection caps
- a11y enforcement note reflects coordinator retirement
- PR 准入收紧——交付推送前本地验证 + worker 回报 branch= 转正(TD-678 / #4425)
- AGENTS.md 合并队列段改为人工通道叙述(修 explorer 规则预算超支)+ Gitea merge-check 楔子 runbook
- AGENTS.md #4358 增量收回预算内(explorer/tool 超限 69B,main 潜伏红)
- AGENTS.md 增加 octopus 生产服务器访问指引(本机 octopus-server.md)
- TD-566 棘轮收缩 —— explorer/tool 注入语料降回 cap 下(compact/routing 冗余收紧 + 孪生同步)
- audit 清单 readiness 项数与 kickoff 五阶段口径对齐 (#4369)
- verify 报告与立案归档(TD-927/928/929, BF-556 #4376)
- 对齐 scaffold 行为与 readiness 项数描述 (#4369)
- review-code 终报与轮次产物归档
- bugfix-report 自检报告
- impl-notes 落档
- AGENTS.md 收回 #4353 增量至预算内——push 攒批正文迁 docs/
- repro-notes 根因笔记
- merge observability 部署与排障——UA 归因 + 队外 reconcile 预演 (refs #4332)
- CI push batching convention (ci-run-stats 14d, supersede waste)
- 智能体标签页按仓库白名单——机制/种子/回滚/验证 + e2e 冒烟自服务化
- L1 rules 超预算——live-PG 教训移 wiki rules/testing-detail
- refresh ci.yml line anchors shifted by N-02 wiring
- turbo 远端缓存服务端选型 + systemd unit/config 模板 + runbook(N-01/#4281,slug 4279-turbo-remote-cache)
- PR 合并自动化章节对齐 merge-coordinator 现状(keeper timer 已退役)
- triage cancelled jobs as error state after gitea #173 (#4238)
- CI 伪 failure 分诊 runbook + AGENTS required-checks 注记
- generalize Tier A audit-batch into universal mechanical-change batching rule (Closes #3979)
- batch-delta R1 findings 收尾(#4160, PR #4170)
- §7 排查行补 ④ status 预取失败(DOC-F001 R1→R2)
- auto-merge runbook doc-exempt 条款同步(§1/§2/§7 + §8 指针)
- 评审 round-3 修复——DOC 2 MAJOR(Token 面板过渡注释/文案 + idle-delete 时态 ×4)+ metrics 帮助文本 global_full + workspaces.sql/error-codes 时态 + STY 破折号统一 (Refs #4055)
- sync auto-merge status note to production reality (TD-801)
- Run D 回填 + workflow 还原 main 版 + 结论定稿 (Refs #3983)
- Run B/C 回填 + Run D 超时失配注入 (Refs #3983)
- Run A 时间线回填——拥堵跨越+自愈实证 (Refs #3983)
- N-02 实弹拥堵演练物料 + gate env 瞬态压缩注入 (Refs #3983)
- disambiguate approvals-only api-failed vs behind-base in header comment (review COR-F002)
- add approvals-405 failure-mode row to troubleshooting table
- N-04 R2 review fix COR-R2-01 (guard bot login resolution)
- N-04 R1 review fixes RO-1..RO-4 (env names, botAuthor binding, halt wording, kill-switch precedence)
- auto-merge carve-out note + ops runbook + unit switch docs
- PR 准入补齐「双绿并入再开下一张」与 PR 准入门控项(Closes #3881) (#3990)
- TD-682 存量收敛注记——daemon 写路径不回滚手工 env + models URL 同源评估(#3889) (#3987)
- PR admission discipline L0 — sessions push branches only, orchestrator opens PRs serially (TD-678/#3881)
- land-batch applicability boundary (topology A/B) + measurement revision per #3731 addendum 39347
- 本地伪失败四则——rule-budget CRLF 膨胀 / lint-compact-preserve pathname / worktree 最小 node_modules / 僵尸 preview 端口
- sync AGENTS.md CI section + .gitea/CI.md with path-gate reality
- .gitea/README.md 改名 CI.md——Gitea 上游 #38532 令 .gitea/README.md 优先于根 README 渲染仓库主页
Maintenance
- Tier 1 run archive bundle (19 artifacts)
- archive Tier 1 bundle for #4496 (merge-gate archive-presence)
- archive Tier 1 bundle for #4495 (merge-gate archive-presence)
- archive Tier 1 bundle for #4499 (merge-gate archive-presence)
- archive Tier 1 bundle for #4498 (merge-gate archive-presence)
- archive Tier 1 bundle for #4497 (merge-gate archive-presence)
- 技能清单排序断言适配 bullet 形态(XML 标签→name)
- archive M-01 milestone bundle(verify PASS 37/37+17/17, #4486)
- archive Tier 1 bundle for #4311 (merge-gate archive-presence)
- archive Tier 1 bundle for #4311 (merge-gate archive-presence)
- archive Tier 1 bundle for #4517 (merge-gate archive-presence)
- archive Tier 1 bundle for #4517 (merge-gate archive-presence)
- archive Tier 1 bundle (#4517)
- archive homepage-4501-task-n02 bundle (#4507)
- octopus.jsonc 补 Windows worktree 外部目录放行
- archive Tier 1 bundle (#4322)
- compaction.max_context_tokens 150000 -> 200000
- octopus.jsonc 默认模型 zai-coding-plan/glm-5.2 → glm-5.3
- archive Tier 1 bundle (#4321)
- archive Tier 1 bundle for #4465 (merge-gate archive-presence)
- 归档 run bundle——#4455/#4456 close 引用过 merge-gate presence 检查
- 归档 run bundle(verify PASS 6/6,#4370 #4369,PR #4386)
- 源码校验统一 LF 规范化——Windows CRLF 检出不再必挂(Fixes #4456)
- a11y 扫描渲染就绪门 + wordmark 等待 locale 容错(Fixes #4455)
- 品牌字标字号 34px→30px(用户反馈再微调)
- 品牌字标字号 40px→34px(用户反馈再微调)
- 品牌字标字号 48px→40px(用户反馈微调)
- re-raise synchronize after gitea service restart (12:33 CST) — events from 09:25 onward appear lost with the old process
- empty commit to raise synchronize event (PR #4428 opened event dispatched no workflow runs)
- drop stale keep-mergeable.yml from ci-run-stats WORKFLOWS; document a11y enforcement gap
- re-trigger CI — gitea hook queue stall probe (refs #4425)
- 归档 run bundle(iter-1 verify PASS 7/7,#4412,PR #4414)
- 启动轮询更新 toast e2e + menu 注释刷新 + runbook e2e 运行器改 node
- sidecar.ts blob rewrite marker — force checkout to refresh stale CI workspace file (racy-checkout incident, no semantic change)
- archive review/verify run bundle (R2 converged + verify PASS)
- retrigger mergeable recompute (orchestrator, empty commit, no content change)
- archive review/verify run bundle (R2 converged + verify PASS)
- archive Tier 1 bundle for #4361 (merge-gate archive-presence)
- archive Tier 1 run bundle (ticket #4378, pr #4385)
- add @ai-artifact headers to N-01 new files (POST-24)
- archive Tier 1 bundle for #4350 (merge-gate archive-presence)
- docker-flake signature narrow-gate auto-retry (TD-923, #4350)
- archive Tier 1 bundle for #4380 (merge-gate archive-presence)
- archive Tier 1 bundle for #4349 (merge-gate archive-presence)
- archive Tier 1 run bundle (review-code + verify)
- archive Tier 1 bundle for #4379 (merge-gate archive-presence)
- remove archived Tier 1 workspace (twin gate cleanup)
- archive Tier 1 bundle for #4357 (merge-gate archive-presence)
- archive Tier 1 bundle for #4346 (merge-gate archive-presence)
- archive Tier 1 bundle for #4345 (merge-gate archive-presence)
- archive Tier 1 bundle for #4294 (merge-gate archive-presence)
- 模型可见性跨实例同步回归测试(先 FAIL)
- register gitea-degradation-warnings in process-isolated list (sorted, count 35)
- run reconcile-outofqueue + merge-coordinator tests in scripts suite (refs #4346)
- archive Tier 1 bundle for #4329 (merge-gate archive-presence)
- N-08 加固断言升级至双作业形态(#4331 U1)
- archive Tier 1 bundle for #4327 (merge-gate archive-presence)
- archive Tier 1 bundle for #4326 (merge-gate archive-presence)
- archive Tier 1 bundle for #4292 (merge-gate archive-presence)
- review round-1 fixes — shared control fixture, one-line backgrounds, empty-green pinning (#4329)
- 刷新 4066 Tier 1 bundle——补 review 3 轮终判与 7 工件索引(merge 携带版缺 verdict)
- bot+mixed-diff never mechanical — lock classify verdicts (#4329)
- archive Tier 1 bundle for #4066 (merge-gate archive-presence)
- archive task-n-03 run bundle (#4285)
- archive Tier 1 bundle for #4293 (merge-gate archive-presence)
- regenerate N-02 archive bundle after premature-archive recovery (#4284)
- archive Tier 1 bundle for #4310 (merge-gate archive-presence)
- wire ci-queue-age behavioral suite into CI (round-1 TST-F001)
- archive Tier 1 bundle for #4284 (merge-gate archive-presence)
- archive Tier 1 bundle for #4283 (merge-gate archive-presence)
- archive Tier 1 bundle for #4280 (merge-gate archive-presence)
- boundary cases for queue-age helper
- 边界回归测试——waiting-question/archived/无消息/持久化失败/活跃竞速/pending 尾巴七类边界 (#4308)
- k8s CI burst runner manifests 与 runbook(阶段 1 备料)
- close bundles for #4279/#4281/#4282 (merge-gate #3337 presence)
- archive Tier 1 bundle for #4295 (merge-gate archive-presence)
- round-1 review 修订——宇宙对称(tracked-only)、schema 解析诊断名、冗余声明注释
- scaffold 契约不变量测试——Gitea 耦合 skills/schemas 完整性守护 (#4295)
- sync push-guard pin to narrowed .ts/.tsx pathspec (ci-run-stats.test.ts, missed in iter-2)
- full 40-hex SHAs in bundle meta
- archive bundle (ticket #4205)
- live 测试迁移 options=-csearch_path= 连接启动参数
- wire turbo remote cache (default-off) + hardening tests
- 未读徽标回归测试补边界守卫
- 补齐 #4257 三态回归覆盖——sidecar env 自声明 sv 锚点 + 普通服务器显式升级路径
- 冻结频道清单钉子改空白容忍并纳入 titlebar:nc-right-click
- full 40-hex SHAs in bundle meta
- full 40-hex SHAs in bundle meta
- 演练后端夹具移入 control-plane tests/(bun 隔离 linker 依赖解析)+ 引用路径同步
- archive bundle (ticket #4163)
- archive bundle (ticket #4190)
- archive Tier 1 bundle for #4257 (merge-gate archive-presence)
- archive Tier 1 bundle for #4258 (merge-gate archive-presence)
- bundle index.slug 对齐 meta.slug(校验 452/452)
- archive Tier 1 bundle for #4064——r2 收敛 PASS(iter-9),live 11/11,close_commit=e883222ec
- r2 复验 FAIL 收口——condFilter 不可解析分支真回 null(strict UPDATE 守卫激活;iter-8 只改了类型注解是安慰剂)
- r2 修订——assignments fake condFilter 回 null(strict UPDATE 守卫激活;select 面保持宽松回退)+ cross-org 403 补 PERMISSION_DENIED 码断言
- live 原子性证伪后中和 stuck 行——回滚保留行不被正路径 sweep 二次命中
- live INSERT 的 Date 模板参数改绑 ISO 字符串(postgres.js Bind 不收 Date,N-13 live 同款)
- live beforeAll 放宽钩子超时——十迁移链冷容器可超 bun 缺省 5s(N-16 同款风险面)
- merge origin/main (keep PR mergeable)
- archive standalone-bugfix bundle for #4245 (merge-gate archive-presence)
- re-trigger workflows after gitea restart
- trigger synchronize (server-side update push did not fire workflows)
- refresh Tier 1 bundle for #4063——r2 收敛 PASS + live 6/6 复验,close_commit=f5019bfbe
- archive Tier 1 bundle for #4063 (merge-gate archive-presence)
- Tier 1 runs bundle (11 artifacts, validated)
- archive Tier 1 bundle for #3977 (merge-gate archive-presence)
- archive Tier 1 bundle for #4228 (merge-gate archive-presence)
- archive Tier 1 bundle for #4065 (merge-gate archive-presence)
- live 索引断言改钉三要素(PG 规范化谓词为 ::text 强转,不逐字匹配)
- live 部分索引断言改正则(PG 给字面量加 ::character varying 后缀)
- archive Tier 1 bundle for PR #4212 (merge-gate archive-presence)
- archive standalone-bugfix bundle for #4225 (merge-gate archive-presence)
- 补 showChild 注释与 SessionItem 扩散点第三源码门控
- archive Tier 1 bundle for #4220 (merge-gate archive-presence)
- archive Tier-1 run bundle review-throughput-task-n-05 (ticket 3979, PR #4221)
- archive standalone-bugfix bundle for #4218 (merge-gate archive-presence)
- archive Tier 1 bundle for #4062 (merge-gate archive-presence)
- live 段纳入 pool-harvest-index 迁移(真 SQL 覆盖面补齐)(N-15 #4062)
- live authz 容量门用例修正——建池走宽门、扩容请求走紧门(N-15 #4062)
- archive Tier 1 bundle for #4139 (merge-gate archive-presence)
- 回退 e2e 仅注释刷新——test:changed 会把被改 spec 选进 bun test 而挂起;注释刷新移入 TD (Refs #4072)
- archive Tier 1 bundle for #4028 (merge-gate archive-presence)
- archive Tier 1 bundle for #4027 (merge-gate archive-presence)
- prune tracked Tier-1 run leftovers + scaffold twins (bundle 4060 archived) (Refs #4060)
- archive Tier 1 bundle for #4167 (merge-gate archive-presence)
- archive Tier 1 bundle for #4061 (merge-gate archive-presence)
- archive Tier 1 bundle for #4203 (27 artifacts, schema-validated; merge-gate archive-presence) (#4203)
- live 两池金丝雀 updated_at 显式对齐(WI: N-14)
- 补 kill-on-already-exited 边界测试——自然退出 + 孙进程持管道后再 handle.kill(TST-F001, #4203)
- 修复陈旧 Octopus menu 选择器——元素已不存在致 e2e 必红,换 header button 命中同一 no-drag 规则 (Ref #4201)
- cross-spawn-spawner #4203 边界回归——优雅 SIGTERM 路径不受扰 + 强升场景加强(SIGTERM 免疫子进程)+ 自然退出 close 语义锁定 (#4203)
- archive standalone-bugfix bundle for #4201 (merge-gate archive-presence)
- review findings 归档显式入库(runs/** gitignore,add -f;#4060)
- N-13 review 归档(r1 全收/r2 PASS)+ Tier 1 bundle + 复合限流键行为反证(#4060)
- n13 live signup e2e 断言改按 org 作用域(并发测试先行落批后的计数污染)
- live 段 schema 钉连接启动参数
- M-05 冻结路由表加性纳入 POST /api/billing/vouchers/redeem(N-13 #4060 规划内新面)
- review round1 修订 — story 标题去计数并新增 InsideModalDialog 源校验;e2e 键盘前置断言(trigger=System + emulateMedia light)+ 选项名双语容错 + describe 补工单号 (#4027 #4028)
- archive Tier 1 bundles for #4074/#4075 (merge-gate archive-presence; merge-coordinator takeover, author session dormant 11h+)
- archive Tier 1 bundle for #4109 (merge-gate archive-presence)
- N-11 review findings 归档 + Tier 1 bundle 收录 review 工件(#4058)
- round-2 NEW-F001——拒绝后账本计数断言改 APPLIED_PREFIX(清最后残留魔数,N-11 #4058)
- archive Tier 1 bundle for #4058 (merge-gate archive-presence)
- N-11 演练回归锚点——applied-prefix 迁移路径 live 三用例 + 清壳谱系 mock-first 断言(N-11 #4058)
- M-05 里程碑集成——充值→扣减→欠费锁→充值解锁全程可复算 + 组件净减账(Refs #4041)
- archive Tier 1 bundle for #4057 (merge-gate archive-presence)
- titlebar-active-highlight idle 钉子容忍单行选择器——修复 main push 全量红的最后一处
- fix Tier 1 bundle schema conformance (root keys only meta/index/working_notes)
- archive Tier 1 bundle for #4056 (merge-gate archive-presence)
- review round-2 收口——五处见证补齐 + CP_MODE 归一 + runbook 历史横幅(Closes #4056)
- 修复三处过期源码钉子——#4177 min-width 注释窗口 + #4151 遗留两处预存红
- archive Tier-1 run bundles for #4140/#4100 (merge-gate presence)
- archive Tier 1 bundle for #4175 (merge-gate archive-presence)
- 轻审 TST 四项修复——燃速取 floor-vs-round 可证伪(200h/25k/eff5k→1.67 天)+ 宽限一次性分支驱动(仍为零到期不续锁)+ 触点②唤醒门载荷 CI 见证(unit lifecycle 08b)+ fire-once 推后时刻重评 (Refs #4041)
- archive Tier 1 bundle for #4146 (merge-gate archive-presence)
- archive Tier 1 bundle for #4146 (merge-gate archive-presence)
- rig memberships 五列齐备(requireMembership 全列下拉,缺 id 即 42703)(Refs #4041)
- M-04 里程碑焊点——欠费×充值提醒集成(归零→拒新→充值→解锁闭环 + 锁周期两环)+ 四触点实接(供给/唤醒被拒载荷统一、阈值穿越×充值重焊、燃速整数先行、共用输入面完备)+ 派单桩位形状 (Refs #4041)
- archive Tier 1 bundle for #4160 (merge-gate archive-presence)
- archive Tier 1 bundle for #4160 (merge-gate archive-presence)
- 归档 bundle 增补 round-3 评审工件(10 findings + synthesis,16→27 artifacts)(Refs #4055)
- archive Tier 1 bundle for #4164 (merge-gate archive-presence)
- archive Tier 1 bundle for #4161 (merge-gate archive-presence)
- round-1 findings 处置——SEC 日志消毒/PERF 同值跳写/STY kebab 化/TST 越界+NumLock 用例/TRC relaunch 持久化 e2e/DOC 注释与通道清单修正
- archive Tier 1 run bundle (verify PASS, 35 artifacts)
- archive Tier 1 bundle for #4159 (merge-gate archive-presence)
- archive Tier 1 bundle for #4159 (merge-gate archive-presence)
- archive Tier 1 run bundle (gen-run-bundle #3604)
- registry tripwire anchors audit:false offline contract (review r1)
- cross-reference #4100/#4140 in titlebar regex comment (TRC-F001)
- archive Tier 1 bundle for #4151 (merge-gate archive-presence)
- retrigger CI(registry audit 端点恢复后重试)(Refs #4055)
- 容忍 JSX 属性折行的 source-verification 正则(fixes #4140 #4100)
- archive Tier 1 bundle for #4144 (merge-gate archive-presence)
- archive Tier 1 bundle for #4147 (merge-gate archive-presence)
- Tier 1 bundle 归档 #4055(merge-gate archive-presence)(Refs #4055)
- retrigger merge-gate after checklist tick (Refs #4055)
- live resize 行挂计费 org(权威化后无账户 org 403)(Refs #4055)
- N-07 live 块 unbilled 断言按权威化更新(403 no-account)(Refs #4055)
- archive Tier 1 bundle for #4134 (merge-gate archive-presence)
- bundle meta.state=archived, close sha f01c6333
- Tier 1 archive bundle v1 (pr 4136)
- set JWT_SECRET in #3112 enforced-mode hooks (review r2 fold)
- cover dry-run rest census producers + derive fixtures (TD-802, #4134)
- archive Tier 1 bundle for #4132 (merge-gate archive-presence)
- 费率洞 DELETE 的顺序依赖注释(轻审 TST-N001 FIXED)(Refs #4041)
- M-03 里程碑焊点——供给准入链全链集成(资源校验→余额门→容量预检→供给落行)+ 退役链核销清单(free-pool 三件套/MCP tier 门/plan-catalog/idleDeleteDays,N-08 拆除基线)(Refs #4041)
- bundle head -> aaf8730a (dep-swap, review r3 PASS)
- archive claim-session bundle for #4054 (merge-gate archive-presence)
- 边界表哨兵行移除(round-1 TST-F001——合法锚点表外独立断言)(#4054)
- live 旧形状补齐 pre-N-01 全列集(ws-health/keepalive 等——drizzle 全行 select 需要)(#4054)
- live 旧形状补 free-pool-gate 迁移列 locked_at/expires_at(供给管线读者前置)(#4054)
- live 夹具按 #42157 止血法重建空 plan_assignments(N-01 已 DROP、读者退役在 N-08/N-09)(#4054)
- N-07 live-PostgreSQL 承载——真迁移×预检(见底 403/足额 201/unbilled 旁路)+ 真行只涨不缩 (#4054)
- N-06 归档 bundle(PR #4128 open 状态披露,close_commit_sha=分支头 7b7825e8)(llm-gw-p1 #2932 N-06)
- archive bundle (pr 4127 backfilled)
- archive Tier 1 bundle for #4123 (merge-gate archive-presence)
- bundle meta.state=archived, close sha f9d4d480
- Tier 1 bundle + worker report (pr 4126)
- pin ci.yml paths-ignore against .octopus//.gitea/ re-entry
- M-08 焊点贯通——schema×费率契约集成 + 预检估价夹具(贵配置→estimate→余额门)(billing-v2 #4041 M-08)
- archive Tier 1 bundle for #3999(FT-533 standalone-bugfix,PR #4122)
- de-flake wedge family + image-store under full load (FT-533)
- archive Tier 1 bundle for #3935 (merge-gate archive-presence)
- Tier 1 bundle 归档(#4053 close-out,merge-gate archive-presence)
- archive Tier 1 bundle for #3947(FT-531 standalone-bugfix,PR #4119)
- de-flake mid-wait-sweep partial-acks drill (#3947)
- archive Tier 1 bundle for #3935 (merge-gate archive-presence)
- Tier 1 bundle + worker report (pr 4118)
- setup-bun 移除 Windows hoisted 特例——bun 1.3.14+hoisted 确定性自旋事故修复 + CI.md windows 池已知怪癖记录(Refs #3935)
- review R1 修复——CI.md windows runner 池登记 + desktop.yml 触发矩阵测试钉子(Refs #3935)
- windows NSIS 构建工作流——windows-amd64 host runner + build:desktop 产物上传(Refs #3935)
- M-02 焊点贯通——段流水驱动阈值/燃速状态机集成测试(复算口径与 N-05 幂等行一致)(billing-v2 #4041 M-02)
- archive Tier 1 bundle for #3934 (merge-gate archive-presence)
- archive Tier 1 bundle for #4052 (merge-gate archive-presence, N-05 #4052)
- archive Tier 1 bundle for #3934 (merge-gate archive-presence)
- run bundle head -> review-pass (rev 10246c854f049f2f66dd7b9a0d71e6e2f2a7783e)
- Tier 1 bundle + worker report (pr 4108)
- add run bundle llm-gw-n02.json (pr 4107)
- archive Tier 1 bundle for #4094
- archive Tier 1 bundle for #4051 (merge-gate archive-presence)
- revert unintended bun.lock churn from c2f037f05
- retro quick-wins — sanctioned step-4 exit, Risk label step, telemetry window filters
- refresh Tier 1 bundle after review revisions
- M-01 里程碑集成旅程 spec——DoD 全链 e2e + OpenAI 兼容 mock LLM(Refs #3925)
- archive Tier 1 bundle for #4087
- M-01 焊点双夹具贯通——估价→预扣路径 + 查价→落行路径 + 契约集成不变量 (billing-v2 #4041 M-01)
- archive Tier 1 bundle for #4049 (merge-gate archive-presence)
- archive Tier 1 bundle for #4050 (merge-gate archive-presence)
- 合并 main(N-01 已入)+ 迁移重生成重挂链头(prevIds=N-01 快照,分叉消解)+ 手工段恢复 (#4050)
- archive Tier 1 bundle for #4048 (merge-gate archive-presence)
- archive Tier 1 bundle for #3933 (merge-gate archive-presence)
- archive Tier 1 bundle for #3933 (merge-gate archive-presence)
- archive Tier 1 run bundle (26 artifacts, validated)
- round-2 INFO 抛光——restart 助手 locale 默认+失败自清理、注释措辞
- archive Tier 1 bundle for #4033 (merge-gate archive-presence)
- archive Tier 1 bundle for #3651 (merge-gate archive-presence)
- cover drift honest-null leg, in-range port boundaries, xfh keepHost (#4033 WI-R2)
- archive Tier 1 bundle for #3976 N-02 (3 artifacts, review-code self-gate PASS round 2, PR #4068)
- Tier 1 bundle 归档(#3954 close-out)
- archive Tier 1 bundles for #3991/#3948 qualitative closes (Refs #3991 #3948)
- network-policy port 8337 + per-port app entry runbook (#4033 WI-3)
- record PR #4042 in archive bundle meta (#3975)
- archive Tier 1 bundles for #3975 (merge-gate archive-presence)
- archive Tier 1 bundle (DoD 1-9 PASS, NFR data + AC-4b fallback evidence; PR #4040)
- backfill pr=4040 + after-sample-1 into N-01 bundle (Refs #3984)
- archive Tier 1 bundle for #3984 N-01 (17 artifacts, review-code round1 PASS self-gate)
- add bun-only-v1 cache step to octopus-schemas validate job (#3984 N-01)
- archive Tier 1 bundle for #3971 (merge-gate archive-presence)
- backfill pr=4039 into N-01 bundle (Refs #3982)
- archive Tier 1 bundle for #3982 (N-01 close-out, Refs #3982)
- archive Tier 1 bundle for merge-gate presence (Closes #3957)
- order-independent state-only child-arm pin (r2 TST-F101)
- archive Tier 1 bundle for #3932 (merge-gate archive-presence)
- freeze unified-groups suite clock to fixed mid-month (Closes #3957)
- archive Tier 1 bundle for #3955 (merge-gate archive-presence)
- archive Tier 1 bundle for #3932 (merge-gate archive-presence)
- N-05 round-2 收敛清理——STY/A11Y/DOC 三 MINOR + 双 INFO 处置(Refs #3932)
- archive Tier 1 bundle for #3955 (merge-gate archive-presence)
- repair 5 no-metrics perf channels (Closes #3998) (#4025)
- resolve BUN_BIN via process.execPath to fix posix_spawn ENOENT (Closes #3949) (#4024)
- archive Tier 1 bundle for #3931 (merge-gate archive-presence)
- archive Tier 1 bundle for #3931 (merge-gate archive-presence)
- skip rg/tmux-dependent suites on hosts missing the binaries (#4019)
- archive Tier 1 bundle for #3969 (merge-gate archive-presence)
- archive Tier 1 bundle for #3955 (merge-gate archive-presence)
- archive Tier 1 run bundle (verify PASS, #2767)
- re-archive N-03 bundle under #3968 (merge-gate archive-presence)
- archive Tier 1 bundle for #3955 (merge-gate archive-presence)
- falsifiable keeper-rest dedup fixture (#3968)
- archive Tier 1 bundle for #3930 (merge-gate archive-presence)
- quarantine route-gate-dispatch drills (FT-532) (#4001)
- archive Tier 1 bundle for #3930 (merge-gate archive-presence)
- archive Tier 1 bundle for #3967 (merge-gate archive-presence)
- archive Tier 1 bundle for #3929 (merge-gate archive-presence)
- archive Tier 1 bundle for #3966 (merge-gate archive-presence)
- archive Tier 1 bundle for #3929 (merge-gate presence)
- archive Tier 1 bundle for #3808 (merge-gate archive-presence)
- archive Tier 1 bundle for #3711 (merge-gate archive-presence)
- archive Tier 1 bundle for #3690 (merge-gate archive-presence)
- archive Tier 1 bundle for #3928 (merge-gate archive-presence)
- restore file-header continuation indent (STY-F101)
- archive Tier 1 bundle for #3928 (merge-gate archive-presence)
- fxp-guard 每周定时接线 audit-fxp-guard.sh——exit 1 去重工单 / exit 2 独立标注(Closes #3808)
- N-03 补齐 unified list 测试与 runbook (#3711)
- Tier 1 run bundle 归档(ticket 3841 / PR 3943)——merge gate presence 解锁
- archive Tier 1 bundle for #3849 (merge-gate archive-presence)
- review r1 修订——marker 顺序/门步 fail-open/工件锚定加固(#3841)
- 归档束 #3829
- e2e-suite 两层夜间语义红测守卫——perf advisory 不变量锁死(#3841)
- install 图禁止 pkg.pr.new 类按需预览 CDN 钉定——#3849 回归守卫
- archive Tier 1 bundle for #3925 (merge-gate archive-presence)
- archive Tier 1 bundle for #3926 (merge-gate archive-presence)
- fix task bundle slugs to lowercase-n (schema ^[a-z0-9-]*$)
- archive Tier 1 bundles for #3920 #3921 (task-run evidence)
- archive Tier 1 bundle for #3919 (merge-gate archive-presence)
- e2e/a11y warmup banner 依赖面同步更新——home 常驻元素 + fail-loud 可见性诊断(Refs #3921)
- archive Tier 1 bundle for #3915 (merge-gate presence)
- archive Tier 1 bundle for #3917 (merge-gate presence)
- run bundle 归档(#3898/TD-687,PR #3902)——round-1 FAIL F1-F8、round-2 F1/F4/F5/F6 RESOLVED、round-3 rebase 重锚+bundle+prettier 收尾;报告指针:PR #3902 评审对话 + workflow/session/td-687-api-token@bb6b5497
- fix bundle schema — fold top-level summary into working_notes (runs-bundle.schema additionalProperties=false)(TD-685/#3892)
- TD-681/#3899 run bundle 归档补录(archive-at-close)
- run bundle 归档(#3893/TD-675b,PR #3901)——AC1-4 全落地、round-1 F1-F5 修复 PASS、CI 计数/flake 修复;报告指针:PR #3901 评审对话 + workflow/session/td-675-keepalive@30e69ae7
- close run bundle for #3892 (merge-gate archive-presence, meta.ticket.number=3892)(TD-685/#3892)
- Tier 1 run bundle for #3871 (merge-gate archive-presence)
- ws-main-sync selftest 用例加 60s 超时 + 子进程 55s 硬杀——CI 慢 I/O 上 4 组 git clone 超 bun 默认 5s 被误杀(PR #3901 CI 5026ms flake;与锁语义改动无关,脚本本地 0.26s 绿)
- bump AuditEventType union 检测计数 34→35 并补 workspace.keepalive_changed 成员(TD-675b/#3893,PR #3901 CI)
- isolate sse-load-shedding(与 httpapi-sdk 同进程对交互使 sse-oversized 重连重放双 dropped-stub,base 8874329d 预存)(TD-685/#3892)
- isolate httpapi-global.test.ts (module-scope Log.init/GlobalBus mutation breaks sse-load-shedding co-run, pre-existing on base)(TD-685/#3892)
- archive Tier 1 bundle for #3873 (merge-gate archive-presence)
- align migrated timestamps/routing assertions with promoted /global contract
- archive Tier 1 bundle for #3859 (merge-gate archive-presence)
- archive bundle for #3635 (merge-gate presence)
- drop web-build.yml — workflow retired on main; workerd runner-env chase (iter-4/5) targeted this dead gate
- archive bundles for #3791-#3795 (merge-gate presence)
- drop dead e2e files, port i18n case to unit, path-gate the ui suite
- merge 4 duplicate test pairs + ui v2 source-verification suite pilot
- run 10 orphan workspace-package unit suites in ci.yml + fix 3 latent red suites
- archive-at-close bundle (#3337)
- fix workerd diagnostic path for isolated linker (#3787)
- archive Tier 1 bundle for #3834 (merge-gate archive-presence)
- archive-at-close bundle (#3337)
- add titlebar empty-string case, resolving TST-F004 comment/case asymmetry (review R2) (#3782)
- drop forced @cloudflare/vite-plugin override, ignore .wrangler state (#3787)
- archive Tier 1 bundle for #3824 (merge-gate archive-presence)
- add channel-badge behavioral regression tests (review R1 TRC-F001/F002, TST-F001/F002) (#3782)
- archive-at-close bundle (#3337)
- guard socket.io-parser floor pin in CI (review TST-F001/TRC-F001, #3790)
- archive-at-close bundle (#3337)
- archive-at-close bundle (#3337)
- archive-at-close bundle (#3337)
- archive-at-close bundle (#3337)
- archive-at-close bundle (#3337)
- archive-at-close bundle (#3337)
- archive-at-close bundle (#3337)
- revert builtin-data manifest rebuild churn (TRC-F001) (#3781)
- archive run bundle for #3741 (merge-gate presence)
- archive run bundle — round 1 WARN converged (archive-at-close #3337)
- merge-queue e2e 演练文件 B(同步续合 + 冲突演练锚点)
- merge-queue e2e 演练文件 A(串行合并,#3731/#3769)
- archive-at-close bundle (#3337)
- archive run bundle — round 1 PASS converged (archive-at-close #3337)
- archive Tier 1 bundle for #3779(TD-663 standalone-bugfix,PR #3803,archive-at-close #3337)
- N-03 Tier 1 run 归档(task-ticket close 收集)
- archive Tier 1 bundle for #3652 (merge-gate archive-presence)
- review-code R1 PASS archive bundle (#3710)
- N-02 结构测试 -- 行数/三轴导出/工厂行数/filteredSessionsForRows 壳层导出
- N-02 Tier 1 run 归档(task-ticket close 收集)
65 uncategorized commit(s)
Downloads
-
Desktop beta update feed Pre-Release
released this
2026-09-07 19:24:29 +08:00 | 2 commits to main since this releaseelectron-updater generic feed (channel
latest) — maintained bypackages/desktop/script/publish-feed.ts, see #4331 U1.
Both platforms accumulate in this one release; the line below describes the LAST publish only.- last publish: win (NSIS exe via latest.yml)
- version:
0.17.6 - build commit:
55ad06a1cab80f8ee7f93cee991a7d8b6f596f84 - published: 2026-09-15T12:51:50.321Z
The tag is created once and never moved; the build commit above is the source of truth for what shipped.
Downloads
-
v0.15.1 Stable
released this
2026-07-08 17:36:15 +08:00 | 10 commits to main since this releaseRelease v0.15.1
Downloads
-
v0.15.0 Stable
released this
2026-07-05 13:45:08 +08:00 | 10 commits to main since this releaseRelease v0.15.0
Downloads
-
v0.14.0 Stable
released this
2026-07-03 22:32:40 +08:00 | 11 commits to main since this releaseRelease v0.14.0
Downloads
-
v0.13.0 Stable
released this
2026-07-02 10:13:41 +08:00 | 11 commits to main since this releaseRelease v0.13.0
Downloads
-
v0.12.0 Stable
released this
2026-07-01 10:45:44 +08:00 | 13 commits to main since this releaseRelease v0.12.0
Downloads
-
v0.10.0 Stable
released this
2026-06-29 17:49:26 +08:00 | 13 commits to main since this releaseRelease v0.10.0
Downloads
-
v0.9.2 Stable
released this
2026-06-23 15:20:10 +08:00 | 13 commits to main since this releaseRelease v0.9.2
Downloads