Skip to content

gut: close #2337 AC grep gaps — stale vi.mock + dangling gateway methods (#2413)#2448

Merged
alexey-pelykh merged 1 commit intomainfrom
gut/2413-close-2337-gaps
Apr 21, 2026
Merged

gut: close #2337 AC grep gaps — stale vi.mock + dangling gateway methods (#2413)#2448
alexey-pelykh merged 1 commit intomainfrom
gut/2413-close-2337-gaps

Conversation

@alexey-pelykh
Copy link
Copy Markdown

Summary

Closes the last AC grep gaps from #2337 after the provider/model cascade landed via #2350 / #2364 / #2373. Pure-deletion cleanup across 3 classes of survivors.

Changes

Gap A — stale test mock

Gap B — dangling gateway method entries (handlers removed in #2350)

  • src/gateway/method-scopes.ts: drop skills.bins from NODE_ROLE_METHODS, models.list from READ_SCOPE
  • src/gateway/server-methods-list.ts: drop models.list, skills.status, skills.bins, skills.install, skills.update

Gap C — active RPC call with no handler

  • src/node-host/runner.ts: delete the SkillBinsCache class, resolveSkillBinTrustEntries + resolveExecutablePathFromEnv helpers, the client.request("skills.bins", {}) RPC call (which was failing at node-host startup), and cascade-remove 3 orphaned imports
  • src/node-host/invoke.ts: drop _skillBins: SkillBinsProvider param from handleInvoke + import + re-export
  • src/node-host/invoke-types.ts: delete now-dead SkillBinsProvider + SkillBinTrustEntry types

Hygiene

  • .fork-boundary-mock-baseline 134 → 133: lock in the improvement from removing the dead model-catalog mock

Scope note: Issue body listed 4 files (test + 2 gateway + runner). Deleting SkillBinsCache cleanly cascades into invoke.ts + invoke-types.ts — 6 src files total, ~120 LoC of pure deletion + 4 insertions (collapsed signature/import formatting).

Verification

Both AC greps return zero matches on HEAD:

git grep "model-catalog\|modelSupportsVision\|loadModelCatalog" src/   # (zero)
git grep "models\.list\|skills\.bins\|skillsHandlers\|modelsHandlers" src/   # (zero)
  • pnpm check: passes (format, tsgo, lint, all gates green)
  • pnpm test: 7010 passed / 0 failed / 3 pre-existing skipped
  • scripts/check-no-zombie-imports.mjs: exit 0
  • scripts/check-throwing-stub-callers.mjs: 0 violations (this PR REMOVES one throwing-stub caller)
  • scripts/check-stub-debt.mjs: 12 == baseline; fork-boundary-mock 133 == new baseline
  • scripts/check-architecture-smells.mjs: 0 smells

Out-of-scope observations (noted for follow-up, not part of this PR)

  • method-scopes.ts still has skills.status (L66), skills.install (L123), skills.update (L124) — dangling scope classifications without advertised listings. Issue body explicitly scoped only lines 29 and 62; AC verification greps don't cover these. Benign (classify-without-advertise means dispatcher returns UNAVAILABLE anyway). Candidate for a separate minor cleanup.
  • docs/gateway/protocol.md and docs/tools/exec-approvals.md still reference skills.bins — stale docs, src/-only AC scope.
  • apps/macos/Sources/RemoteClaw/ has a separate Swift SkillBinsCache actor calling skills.bins — pre-existing dead Swift path (handler already removed in gut(providers): re-apply provider/model cascade after v2026.3.7 sync regression #2350), not introduced here. Separate issue worthwhile.

Part of #2337.

…ns RPC + dangling gateway methods (#2413)

Closes the final AC grep gaps from #2337 after the provider/model cascade
landed via #2350 / #2364 / #2373. Three classes of survivors removed:

- Stale `vi.mock("../agents/model-catalog.js", ...)` block in
  `remoteclaw-tools.session-status.test.ts` — mocks a module deleted in #2350
- Dangling gateway method-list entries for handlers removed in #2350 —
  `skills.bins`, `models.list` in method-scopes.ts; `models.list`,
  `skills.status`, `skills.bins`, `skills.install`, `skills.update` in
  server-methods-list.ts
- Active runtime call to `skills.bins` RPC in `node-host/runner.ts` that
  fails at node-host startup (handler was removed in #2350). Deletes the
  `SkillBinsCache` class, `resolveSkillBinTrustEntries` + `resolveExecutablePathFromEnv`
  helpers, the RPC call, and cascades the dead `SkillBinsProvider` /
  `SkillBinTrustEntry` types from `invoke-types.ts` + `invoke.ts` handler
  signature cleanup

Also bumps `.fork-boundary-mock-baseline` 134 → 133 to lock in the
improvement from removing the dead model-catalog mock.

Verification:
- `git grep "model-catalog\|modelSupportsVision\|loadModelCatalog" src/` → zero
- `git grep "models\.list\|skills\.bins\|skillsHandlers\|modelsHandlers" src/` → zero
- `pnpm check` passes, `pnpm test` passes (7010/7010), zombie-import gate passes

Part of #2337.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@alexey-pelykh alexey-pelykh enabled auto-merge (squash) April 21, 2026 08:07
@alexey-pelykh alexey-pelykh merged commit cd7900e into main Apr 21, 2026
15 checks passed
@alexey-pelykh alexey-pelykh deleted the gut/2413-close-2337-gaps branch April 21, 2026 08:13
alexey-pelykh added a commit that referenced this pull request Apr 24, 2026
…#2557)

Follow-up to #2524/#2535 (UI side). The skills marketplace is gutted
per CLAUDE.md § Fork Context; `autoAllowSkills` is dead — runtime no
longer reads it, UI no longer sends it. Strips the residual backend
schema field and user-facing docs surface.

- `src/gateway/protocol/schema/exec-approvals.ts`: drop `autoAllowSkills`
  from `ExecApprovalsPolicyFields` (spreads into both Defaults + Agent
  schemas, so removal cascades to both)
- `docs/tools/exec.md`: remove the "autoAllowSkills is a separate..."
  paragraph
- `docs/tools/exec-approvals.md`: drop 2 keys from the JSON schema
  example, remove the entire "## Auto-allow skill CLIs" section (12
  lines), trim "or skill auto-allow" from allowlist-chaining prose
- `docs/gateway/security/index.md`: drop `autoAllowSkills` from the
  exec-drift parenthetical; delete the
  `tools.exec.auto_allow_skills_enabled` audit code table row (no
  `src/` emitter — verified via grep)
- `docs/gateway/protocol.md`: delete the now-empty "Node helper methods"
  subsection documenting the `skills.bins` RPC "for auto-allow checks"
  — the RPC itself was gutted in #2413/#2448, the doc line was missed

Out of scope (deferred):
- `apps/macos/Sources/RemoteClaw/*.swift` — per #2527 (coordinated
  native gut wave)
- `docs/refactor/*.md` historical audit docs — track the gut work
  itself and remain as historical records

Verification:
- `pnpm check` (format + tsgo + oxlint + css-class-drift): green
- `pnpm test`: 7010 passed, 3 skipped across 799 files; 288 passed
  in parallel suite; 12/12 UI smoke
- Fork-integrity gates (throwing-stub-callers, zombie-imports,
  stub-debt, obsolescence-audit): all clean, baselines unchanged

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant