diff --git a/docs/analysis/post-polish-module-inventory.md b/docs/analysis/post-polish-module-inventory.md index 6f687981..13282881 100644 --- a/docs/analysis/post-polish-module-inventory.md +++ b/docs/analysis/post-polish-module-inventory.md @@ -1,27 +1,28 @@ # Post-Polish Module Inventory (residual) -> last-updated: 2026-07-20 +> last-updated: 2026-07-21 > focus: residual hotspots after strangler peels + Visual QA polish +> status: Phase 79–80 **delivered** — table reflects post-#1341 state -## S.U.P.E.R Snapshot (residual) +## S.U.P.E.R Snapshot (post residual) | Module | S | U | P | E | R | Band | Residual | |---|---|---|---|---|---|---|---| | Hub overall | 🟢 | 🟢 | 🟡 | 🟡 | 🟡 | B+ | agentteam 仍浓 | | Edge handlers | 🟡 | 🟢 | 🟡 | 🟢 | 🟡 | B | handlers.go ~503 LOC(已从 ~2.3k 削薄) | | Edge lifecycle | 🟢 | 🟢 | 🟡 | 🟢 | 🟢 | A- | process_executor.go ~77 LOC 壳 | -| Shared hubClient | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 | A | Desktop/Web thin re-export | -| Mobile hubClient | 🔴 | 🟡 | 🟡 | 🟡 | 🔴 | C | **~685 LOC**,仍持有兼容/fixture 形状 | +| Shared hubClient | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 | A | Desktop/Web/Mobile thin over SSOT | +| Mobile hubClient | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 | A- | **~342 LOC** Proxy + SecureStore/fixture/WS glue (#1341) | | Shared workbench | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 | A- | AgentHubWorkbench.tsx ~108 LOC | | CI path-filter | 🟢 | — | 🟢 | 🟢 | 🟢 | A | unified `changes` | | Backend perf gates | 🟢 | — | 🟢 | 🟢 | 🟢 | A | `verify-backend-perf-leak-gates.ps1` **ok** | -| Docs plan/* | 🟡 | — | 🟡 | 🟡 | 🟡 | C+ | historical cleanup-baseline 指针仍写 Phase 61/82 | +| Docs plan/* | 🟢 | — | 🟢 | 🟢 | 🟢 | A | HISTORICAL banners; MASTER sole index (#1340) | -## LOC Residuals (prod only, 2026-07-20) +## LOC Residuals (prod only, 2026-07-21) | LOC | Path | Note | |---:|---|---| -| 685 | `app/mobile-rn/src/api/hubClient.ts` | 主前端残差;未 thin 到 shared | +| 342 | `app/mobile-rn/src/api/hubClient.ts` | thin shell; REST via shared Proxy | | 542 | `hub-server/.../agentteam/agent_team_approval.go` | 业务浓,非 god-file 紧急 | | 536 | `agent_team_run.go` | 同上 | | 503 | `edge-server/internal/api/handlers.go` | 已可接受;继续拆分收益递减 | @@ -34,16 +35,17 @@ | handlers.go ~2375 | ~503 | | process_executor.go ~2280 | ~77 | | AgentHubWorkbench ~1768 | ~108 | -| 三份完整 hubClient fork | Desktop/Web **thin**;Mobile **仍厚** | +| 三份完整 hubClient fork | Desktop/Web/**Mobile** **thin** over shared | ## Test Giants (not product surface) Largest files are mostly `*_test.go` / vitest (2.7k–3.2k lines). Cleanup optional for maintainability; not blocking product. -## Recommended Workstreams +## Recommended Workstreams (next — not residual program) -1. **Mobile hubClient thin + RN-safe contract** (P0 engineering residual) -2. **Docs authority hygiene** — archive or banner historical plan; fix MASTER/roadmap cross-links -3. **Security residual inventory** — only in-repo actionable items; deploy-only explicitly deferred -4. **API/OpenAPI hygiene** — optional P1 if route drift found +1. ~~Mobile hubClient thin + RN-safe contract~~ **done #1341** +2. ~~Docs authority hygiene~~ **done #1340** +3. **Security residual inventory** — only in-repo actionable items; deploy-only explicitly deferred +4. **API/OpenAPI hygiene** — optional P1 if route drift found 5. **Visual residual** — Empty multi-state / Type CJK — only if interactive methodology adopted +6. Roadmap P0: real E2E contract · chat flow Playwright reliability diff --git a/docs/analysis/post-polish-project-overview.md b/docs/analysis/post-polish-project-overview.md index c20c8164..e4dd7c99 100644 --- a/docs/analysis/post-polish-project-overview.md +++ b/docs/analysis/post-polish-project-overview.md @@ -1,21 +1,29 @@ # Post-Polish Project Overview -> last-updated: 2026-07-20 -> program: post-visual-polish engineering residual (SDD Phase 1) -> authority: does **not** replace `AGENTS.md` / `docs/architecture.md` / live `docs/progress/MASTER.md` -> prior program: Visual polish Phases 73–78 closed · gate **89 Ship** · tip `a0392dae`+ +> last-updated: 2026-07-21 +> program: post-visual-polish engineering residual — **delivered** (Phases 79–80 · #1340–#1342) +> authority: does **not** replace `AGENTS.md` / `docs/architecture.md` / live `docs/progress/MASTER.md` +> prior program: Visual polish Phases 73–78 closed · gate **89 Ship** -## Preliminary Direction (Phase 0) +## Outcome (2026-07-21) -**结论:不写 rewrite;在 Visual QA 89 收官后,做 knowledge-first + strangler 的工程残差清理。** +| Delivered | Result | +|---|---| +| Docs authority (Phase 79) | cleanup `docs/plan/*` HISTORICAL banners; MASTER sole index; perf-gate PASS noted · #1340 | +| Mobile hubClient thin (Phase 80) | Proxy over shared SSOT · ~737→~342 LOC · Hub-only boundary in AGENTS + mobile README · #1341 | +| Closeout | MASTER/roadmap phases closed · #1342 | + +## Preliminary Direction (Phase 0 snapshot — historical) + +**结论:不写 rewrite;在 Visual QA 89 收官后,做 knowledge-first + strangler 的工程残差清理。** — **已完成**。 -| 已完成 | 残余焦点 | +| 已完成 | 残余(程序启动时)→ 现状 | |---|---| -| Visual QA gate 89 · 7/9 维度满分 | Type/Motion/Empty 静态方法论天花板(非主线) | -| hubClient Desktop/Web thin re-export (#432/#433) | Mobile hubClient 仍 ~685 LOC 兼容层 | -| Edge handlers / ProcessExecutor / Workbench 已大幅削薄 | 巨型 **测试** 文件与 agentteam 浓度 | -| CI 统一 `changes` 路径筛选 | docs 中历史 plan 指针漂移 | -| Backend perf/leak gate 脚本 **绿** | 多数 High 安全项需 deploy/client 证据,非纯代码 | +| Visual QA gate 89 · 7/9 维度满分 | Type/Motion/Empty 静态方法论天花板(仍非主线) | +| hubClient Desktop/Web thin re-export (#432/#433) | Mobile hubClient **已 thin**(#1341) | +| Edge handlers / ProcessExecutor / Workbench 已大幅削薄 | 巨型 **测试** 文件与 agentteam 浓度(可选) | +| CI 统一 `changes` 路径筛选 | 历史 plan 指针漂移 **已修**(#1340) | +| Backend perf/leak gate 脚本 **绿** | 多数 High 安全项仍需 deploy/client 证据,非纯代码 | ## Current Architecture (stable) @@ -23,9 +31,9 @@ Desktop/Web/Mobile → shared workbench → Hub (control) → Edge (execution) → adapters ``` -- **Hub**: 身份、IM/同步、路由、审计、TeamRun -- **Edge**: lifecycle、adapters、store、workspace -- **Shared**: transcript、workbench、hubClient SSOT +- **Hub**: 身份、IM/同步、路由、审计、TeamRun +- **Edge**: lifecycle、adapters、store、workspace +- **Shared**: transcript、workbench、hubClient SSOT(Desktop/Web/Mobile thin shells) - **CI**: `checks.yml` 统一 `changes` job(desktop/web/shell/go) ## Entry / Build @@ -39,10 +47,10 @@ Desktop/Web/Mobile → shared workbench → Hub (control) → Edge (execution) ## Tracking Mode -**GITHUB_FULL**(`gh` + `repo` + `project` scopes 已具备)。 +**GITHUB_FULL**。当前无 open residual SPEC;下一步从 `docs/roadmap.md` P0/P1 选取。 -## Out of Scope for Next Program +## Still out of scope (unchanged) -- Big-bang rewrite / 全量 Mobile UI 重构 -- 需要 staging secret / live OIDC / packaged Desktop 证据的发布关闭 +- Big-bang rewrite / 全量 Mobile UI 重构 +- 需要 staging secret / live OIDC / packaged Desktop 证据的发布关闭 - 纯静态截图再冲 90+(方法论天花板) diff --git a/docs/analysis/post-polish-risk-assessment.md b/docs/analysis/post-polish-risk-assessment.md index cb059c12..4c98a301 100644 --- a/docs/analysis/post-polish-risk-assessment.md +++ b/docs/analysis/post-polish-risk-assessment.md @@ -1,14 +1,15 @@ # Post-Polish Risk Assessment -> last-updated: 2026-07-20 +> last-updated: 2026-07-21 > security SSOT remains `docs/governance/security-risk-register.md` +> residual program Phases 79–80: **closed** (#1340–#1342) ## 1. Executive Judgment -1. **Visual/product chrome is Ship-ready (gate 89).** Further glass/CSS polish is diminishing returns. -2. **Architecture peels already landed** (handlers/lifecycle/workbench/hubClient Desktop+Web). -3. **Highest actionable residual in-repo**: Mobile hubClient thickness + docs pointer drift. -4. **Highest product risk overall**: security items needing **deploy/client** evidence (OIDC, Desktop login, adapter logs) — not pure PR work. +1. **Visual/product chrome is Ship-ready (gate 89).** Further glass/CSS polish is diminishing returns. +2. **Architecture peels already landed** (handlers/lifecycle/workbench/hubClient Desktop+Web+**Mobile**). +3. **In-repo residual program (docs + mobile hubClient) delivered.** +4. **Highest product risk overall**: security items needing **deploy/client** evidence (OIDC, Desktop login, adapter logs) — not pure PR work. 5. **Backend perf gate script is green** — do not re-litigate as missing infrastructure. ## 2. Security Residual (actionability split) @@ -43,26 +44,26 @@ ## 4. Docs / Governance Residual -| Risk | Impact | Fix | +| Risk | Impact | Status | |---|---|---| -| `docs/plan/*` still labeled live Phase 61/82 | Agents resume wrong backlog | Strengthen HISTORICAL banner; MASTER is sole live index | -| Multiple residual analysis files pre-polish | Noise | Keep; add post-polish trio as current analysis SSOT for new program | +| `docs/plan/*` live Phase 61/82 pointers | Agents resume wrong backlog | **Fixed** #1340 HISTORICAL banners | +| Multiple residual analysis files pre-polish | Noise | Keep post-polish trio as closed-program analysis | | Visual rescores archived | OK | scorecard + rescore-17-final active | -## 5. Top 5 Concrete In-Repo SDD Tasks (proposed) +## 5. Top 5 In-Repo SDD Tasks — disposition -| # | Task | Effort | Super | Acceptance | -|---|---|---|---|---| -| T1 | Mobile hubClient thin re-export over `@agenthub/shared/hubClient` | L | R,P | No new REST methods on mobile; typecheck + existing mobile tests | -| T2 | RN-safe shared contract gate doc + verifier note | M | P,E | Boundary doc + script or package script documents hub-only | -| T3 | Docs hygiene: plan/* + analysis pointers aligned to MASTER post-polish | S | E | `verify-doc-ssot.ps1` green; no false Phase 61 claims as live | -| T4 | Optional: Desktop demo seed fail-closed for non-fixture dataMode | M | S | Unit tests; AH-SR-043 residual note | -| T5 | Optional: wire perf-gate script into workflow_dispatch job | S | E | Manual trigger job exists; not every PR | +| # | Task | Disposition | +|---|---|---| +| T1 | Mobile hubClient thin re-export | **Done** #1341 | +| T2 | RN Hub-only boundary note | **Done** #1341 (AGENTS + mobile README) | +| T3 | Docs hygiene plan/* + MASTER | **Done** #1340 / #1342 | +| T4 | Optional: Desktop demo seed fail-closed | **Open optional** (AH-SR-043 residual) | +| T5 | Optional: perf-gate workflow_dispatch | **Open optional** | ## 6. Explicit Out of Scope -- Live Hub OIDC / Desktop packaged signing evidence -- Production secret rotation -- Full Mobile UI redesign -- Static Visual QA gate chase past 89 without interactive methodology +- Live Hub OIDC / Desktop packaged signing evidence +- Production secret rotation +- Full Mobile UI redesign +- Static Visual QA gate chase past 89 without interactive methodology - Edge handlers further split unless a concrete API change needs it diff --git a/docs/plan/dependency-graph.md b/docs/plan/dependency-graph.md index 818ffacc..204c80d7 100644 --- a/docs/plan/dependency-graph.md +++ b/docs/plan/dependency-graph.md @@ -1,7 +1,7 @@ # Task Dependency Graph > **HISTORICAL — cleanup-baseline freeze (closed 2026-07-16 / PR #446).** -> **Not live backlog.** Live program SSOT: [../progress/MASTER.md](../progress/MASTER.md) (post-polish residual Phases 79–80). +> **Not live backlog.** Progress SSOT: [../progress/MASTER.md](../progress/MASTER.md) (post-polish residual Phases 79–80 **closed**). > Snapshot also under [../archives/cleanup-baseline/plan/](../archives/cleanup-baseline/plan/). ```mermaid diff --git a/docs/plan/milestones.md b/docs/plan/milestones.md index 66611a0b..7ef9b90e 100644 --- a/docs/plan/milestones.md +++ b/docs/plan/milestones.md @@ -2,7 +2,7 @@ > **HISTORICAL — cleanup-baseline freeze (closed 2026-07-16 / PR #446).** > **Not live backlog.** Do not resume these milestones as open work. -> Live program SSOT: [../progress/MASTER.md](../progress/MASTER.md) (post-polish residual Phases 79–80 · GH milestones 98–99). +> Progress SSOT: [../progress/MASTER.md](../progress/MASTER.md) (post-polish residual Phases 79–80 **closed** · GH milestones 98–99 closed). > Snapshot also under [../archives/cleanup-baseline/plan/](../archives/cleanup-baseline/plan/). | # | Milestone | Target Phase | Criteria | Status | @@ -32,5 +32,5 @@ ## Reality sync (2026-07-21) - Cleanup-baseline program Phases 1–7 closed: issues `#424`–`#451` via PR #446 (2026-07-16). -- Live tracker SSOT: `docs/progress/MASTER.md` + post-polish plan (Phases 79–80 · issues #1335–#1339). +- Progress SSOT: `docs/progress/MASTER.md` (post-polish residual Phases 79–80 closed · #1340–#1342). - Do not reopen `#447`–`#451` as open work. diff --git a/docs/plan/task-breakdown.md b/docs/plan/task-breakdown.md index 2ce0ef28..a81fda2e 100644 --- a/docs/plan/task-breakdown.md +++ b/docs/plan/task-breakdown.md @@ -2,12 +2,12 @@ > **HISTORICAL — cleanup-baseline freeze (closed 2026-07-16 / PR #446).** > **Not live backlog.** Do not resume Phases 1–7 or treat #424–#451 as open work. -> Live program SSOT: [../progress/MASTER.md](../progress/MASTER.md) (post-polish residual Phases 79–80 · issues #1335–#1339). +> Progress SSOT: [../progress/MASTER.md](../progress/MASTER.md) (post-polish residual Phases 79–80 **closed** · #1340–#1342). > Snapshot also under [../archives/cleanup-baseline/plan/](../archives/cleanup-baseline/plan/). > > last-updated: 2026-07-21 > program: knowledge-first strangler cleanup + lightweight wiki (non-SSOT) — **CLOSED** -> tracking: historical only; live tracking is GITHUB_FULL via MASTER + post-polish plan +> tracking: historical only; live tracking is GITHUB_FULL via MASTER > hard rule: **NO big-bang rewrite** > reality: Phases 1–7 complete (#424–#451 / PR #446). Do not list #447–#451 as open. diff --git a/docs/progress/MASTER.md b/docs/progress/MASTER.md index 103a5eef..644cb49d 100644 --- a/docs/progress/MASTER.md +++ b/docs/progress/MASTER.md @@ -6,15 +6,15 @@ > **Mode**: `GITHUB_FULL` > **Repo**: `TokenDanceLab/AgentHub` -## Live program (sole index) +## Progress index (no open residual program) | Item | Value | |---|---| -| Program | Post-Polish Residual Hardening | -| Analysis SSOT | [post-polish-project-overview](../analysis/post-polish-project-overview.md) · [module-inventory](../analysis/post-polish-module-inventory.md) · [risk-assessment](../analysis/post-polish-risk-assessment.md) | -| Plan SSOT | [task-breakdown](../plan/post-polish-task-breakdown.md) · [dependency-graph](../plan/post-polish-dependency-graph.md) · [milestones](../plan/post-polish-milestones.md) | -| Strategy | Strangler Fig — thin mobile hubClient + docs authority; **no** big-bang rewrite; **no** static Visual QA chase past 89 | -| Tracking | Issues **#1335–#1339** (closed) · GH milestones **98–99** (closed) · PRs **#1340** / **#1341** | +| Active SPEC | **None** — residual Phases 79–80 closed; pick next from [roadmap P0/P1](../roadmap.md) | +| Closed residual analysis | [post-polish-project-overview](../analysis/post-polish-project-overview.md) · [module-inventory](../analysis/post-polish-module-inventory.md) · [risk-assessment](../analysis/post-polish-risk-assessment.md) | +| Closed residual plan | [task-breakdown](../plan/post-polish-task-breakdown.md) · [dependency-graph](../plan/post-polish-dependency-graph.md) · [milestones](../plan/post-polish-milestones.md) | +| Strategy (delivered) | Strangler Fig — thin mobile hubClient + docs authority; **no** big-bang rewrite; **no** static Visual QA chase past 89 | +| Tracking | Issues **#1335–#1339** (closed) · GH milestones **98–99** (closed) · PRs **#1340** / **#1341** / **#1342** | ### Residual phases (closed 2026-07-21) @@ -40,7 +40,7 @@ Historical cleanup-baseline plan under `docs/plan/task-breakdown.md` (and siblin ## Product tip & Visual QA -**Product tip**: `7d70fc0a` (post #1340 + #1341) +**Product tip**: `df17bf7c` (post #1340 + #1341 + #1342) **Gate**: **89**/100 — 🟢🟢🟢 **SHIP** **Gate history**: 55 → 76 → 79 → 82 → 84 → 85 → 87 → 88 → **89** @@ -96,3 +96,4 @@ Optional future: wire script as `workflow_dispatch` only — not every PR (see r | 2026-07-20 | 🟢🟢🟢 **Ship 89** — polish Phases 73–78 closed; CI path-filter; docs rescore archive | | 2026-07-20 | SDD Phase 0–1: post-polish analysis trio committed | | 2026-07-21 | Residual program delivered: Phase 79 #1340 + Phase 80 #1341; milestones 98–99 closed; hubClient ~342 LOC | +| 2026-07-21 | Closeout #1342 + SSOT tip sync to `df17bf7c`; analysis inventory marked delivered | diff --git a/docs/roadmap.md b/docs/roadmap.md index ce8747b2..aa9526da 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -21,7 +21,7 @@ AgentHub 是 IM 形态的多 Agent 协作工作台。用户面对的是联系人 | Program | Status | Pointer | |---|---|---| -| Post-Polish Residual Hardening (Phases 79–80) | **closed** 2026-07-21 · #1340 #1341 | MASTER · [plan/post-polish-task-breakdown.md](plan/post-polish-task-breakdown.md) | +| Post-Polish Residual Hardening (Phases 79–80) | **closed** 2026-07-21 · #1340 #1341 #1342 | MASTER · [plan/post-polish-task-breakdown.md](plan/post-polish-task-breakdown.md) | | Visual polish (Phases 73–78) | closed 2026-07-20 · gate **89 Ship** | [analysis/visual-qa-scorecard.md](analysis/visual-qa-scorecard.md) | | Cleanup baseline (Phases 0–7) | closed 2026-07-16 / PR [#446](https://github.com/TokenDanceLab/AgentHub/pull/446) | [archives/cleanup-baseline/](archives/cleanup-baseline/) · historical `docs/plan/*` banners |