|
1 | 1 | # dev-rebased Surfacing Regression Fix |
2 | 2 |
|
3 | 3 | **Last Updated:** Jun 24, 2026 |
4 | | -**Status:** Active — in progress |
5 | | -**Branch:** `dev-rebased` |
| 4 | +**Status:** Phases 1–3 complete — Phase 4 handoff in progress (post-port verification pass done) |
| 5 | +**Branch:** `dev-rebased` (HEAD: `6c4d6b7`) |
6 | 6 | **Depends on:** Working tree clean at `d2307d9` (docs planning commit) |
7 | 7 | **Unblocks:** Gateway surfaces ~5 meta tools instead of 2228; hard-cut model restored; data-integrity regressions resolved; phase hand-off to `dev-rebased-post-port-completion.md` |
8 | 8 |
|
| 9 | +### Phase status |
| 10 | + |
| 11 | +| Phase | Status | Commit | |
| 12 | +| ----- | ------ | ------ | |
| 13 | +| 1 — Surfacing: list_* paths | ✅ Complete | `126fa2f` (list_tools pre-fix in `93e6bef`) | |
| 14 | +| 2 — Surfacing: call_* hard-cut guards | ✅ Complete | `b131a3f` | |
| 15 | +| 3 — Data integrity regressions | ✅ Complete | `6c4d6b7` | |
| 16 | +| 4 — Hand off to post-port completion | 🔄 In progress | See audit below | |
| 17 | + |
| 18 | +### Phase 6 verification (Jun 24, 2026) |
| 19 | + |
| 20 | +Automated gates on `6c4d6b7`: |
| 21 | + |
| 22 | +| Gate | Result | |
| 23 | +| ---- | ------ | |
| 24 | +| `pnpm validate` | ✅ pass (fmt, clippy, check, eslint, typecheck) | |
| 25 | +| `pnpm test:rust:unit` | ✅ 435 passed, 2 skipped | |
| 26 | +| `pnpm test:ts` | ✅ 334 passed | |
| 27 | + |
| 28 | +Surfacing code inspection: |
| 29 | + |
| 30 | +| Check | Result | |
| 31 | +| ----- | ------ | |
| 32 | +| `CORE_META_TOOLS` = 5 entries | ✅ `mod.rs` lines 82–88; asserted in `token_budget.rs` + `registry_advertises_core_tools_read_only_in_list` int test | |
| 33 | +| `list_as_tools()` filters to core only | ✅ `registry.rs:229` filters via `CORE_META_TOOLS.contains` | |
| 34 | +| `get_advertised_*` wired in handler | ✅ tools L746, prompts L1041/L1101, resources L1189/L1257 | |
| 35 | +| `call_tool` hard-cut guards | ✅ L844–937: advertised vs invokable check, `use_invoke_tool` / `bind_feature_set` errors, `list_inactive_discovery_tools` lookup | |
| 36 | +| `structured_content` passthrough | ✅ L1011 | |
| 37 | + |
9 | 38 | --- |
10 | 39 |
|
11 | 40 | ## Problem |
@@ -163,9 +192,27 @@ Three changes that could silently corrupt state or break user data: |
163 | 192 |
|
164 | 193 | After Phases 1–3 are confirmed working (desktop Tauri app loads, gateway serves ~5 meta tools, `pnpm validate` clean), pick up the remaining port work from the existing plan: |
165 | 194 |
|
166 | | -- [`dev-rebased-post-port-completion.md`](./dev-rebased-post-port-completion.md) **Phase 1** — audit + cherry-pick 10 `dev`-only commits (meta-tool / server-update fixes) |
167 | | -- [`dev-rebased-post-port-completion.md`](./dev-rebased-post-port-completion.md) **Phase 2** — `lib/api` `invoke` → `apiCall` migration (12 remaining files) |
168 | | -- [`dev-rebased-post-port-completion.md`](./dev-rebased-post-port-completion.md) **Phase 3** — feature-by-feature verification |
| 195 | +| Post-port phase | Status | Commit / notes | |
| 196 | +| --------------- | ------ | -------------- | |
| 197 | +| [`dev-rebased-post-port-completion.md`](./dev-rebased-post-port-completion.md) **Phase 1** — audit + cherry-pick 10 `dev`-only commits | ✅ Complete | `784cd41` | |
| 198 | +| **Phase 2** — `lib/api` `invoke` → `apiCall` migration (12 remaining files) | ✅ Complete | `9747c71`; grep confirms zero raw `invoke()` in `apps/desktop/src/lib/api/` | |
| 199 | +| **Phase 3** — feature-by-feature verification | 🔄 Automated pass done; manual QA open | Phase 6 verification pass (Jun 24); see manual checklist below | |
| 200 | + |
| 201 | +**Manual QA still required** (cannot automate in CI — from post-port Phase 3 checklist): |
| 202 | + |
| 203 | +- Dashboard: stat cards, health section, activity feed, quick links, gateway status bar |
| 204 | +- i18n: nav labels, renamed superapp vocab (`myServers`, `search`, `bundles`, `projects`, `clients`) |
| 205 | +- Spaces: CRUD, base dirs, switcher accent, panel counts |
| 206 | +- Servers: install/enable/auth/logs/clone/display name/source badge/update policy badges and notify/auto/pinned modes |
| 207 | +- Feature Sets: CRUD, tool add/remove, surfaced toggle, starter protection |
| 208 | +- Workspaces: folder→bundle binding, appearances, per-client scope |
| 209 | +- Clients: preset list, OAuth grant, access key copy, Connect IDE flow |
| 210 | +- Registry/Discover: catalog browse, install, search/filters |
| 211 | +- Builtin Servers: enable/disable per space, gateway tool list |
| 212 | +- Settings: gateway port, build stamp, pending updates, stale build banner, analytics toggle |
| 213 | +- Meta-tools (MCP client): bare-name invoke/schema, search synonyms + inactive preview, prefilled_params, display_name on deny, approval dialog, token budget |
| 214 | +- Web admin: SSE `:45819/events`, CF Access JWT on local dev, SPA 404 fallback |
| 215 | +- Surfacing smoke: fresh MCP session shows ~5 meta tools (not thousands); direct call to non-surfaced tool returns `use_invoke_tool` hint |
169 | 216 |
|
170 | 217 | **Outcome:** `dev-rebased` reaches full feature parity with `dev` tip. Web admin loads cleanly. All verification items in the post-port completion doc are checked off. |
171 | 218 |
|
|
0 commit comments