Uh oh!
There was an error while loading. Please reload this page.
fix(console): drop the dead workflow and feed catalog keys (#4303) - #5282
Merged
Conversation
`SERVICE_ENDPOINT_CATALOG` carried two keys that name no `CoreServiceName` slot and could therefore never render on any host: `workflow` (5 endpoints, slot retired upstream in objectstack#4451) and `feed` (2 endpoints, never a slot). Both were unconditionally hidden by the fail-closed `discoveredServices` lookup (ADR-0076 D12), so this removes 7 dead endpoint declarations with no change to rendered output. Per triage's ruling this is dead-code removal, not a rename — neither key has a correctly-spelled slot to move to, and no server routes/discovery entries/slot members were added to make them resolvable. Also trims #4240's pin test: its `KNOWN_DEAD_NON_SLOT_KEYS` exception set (which carried `workflow`/`feed` and cited this issue) is now stale since both keys are gone. The assertion goes back to a plain "every catalog key is a canonical slot" with no carve-outs. The pin itself stays green both before and after the trim — the catalog removal alone already satisfies it (subset check), which is exactly why the exception set needed to be trimmed separately rather than left behind. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RV6yuVCxymHYE16PL9vQkE
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
os-support-ai
marked this pull request as ready for review
August 19, 2026 00:51
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#4303
What
SERVICE_ENDPOINT_CATALOGinapps/console/src/pages/developer/hooks/useApiDiscovery.tscarried two catalog keys that name noCoreServiceNameslot and therefore could never render on any host —workflow(retired upstream in objectstack#4451) andfeed(never existed as a slot). Per triage's ruling (issue comment), this is dead-code removal, not a rename: both entries are deleted.workflow(5 endpoint declarations under/api/v1/workflow/*)feed(2 endpoint declarations under/api/v1/feed/*)No rendered behaviour changes: both groups were already unconditionally hidden by the fail-closed
discoveredServiceslookup (ADR-0076 D12) on every host, since neither key was ever present in/discovery'sservicesmap.Premise re-check (objectui side, current
origin/main)Confirmed before editing:
SERVICE_ENDPOINT_CATALOGstill carried bothworkflow(5 endpoints) andfeed(2 endpoints) — 7 total, matching the ruled count exactly. (The objectstack-side counter-probes were already re-run by the PM at claim time — both keys are dead there too: noregisterService('workflow'), no mounted/api/v1/workflowroute, no/api/v1/feedroute in source.)No server routes, discovery entries, or slot members were added — removal only, per triage's explicit prohibition on widening.
#4240 pin test — trimmed, not just left passing
#4240's tripwire test asserts every
SERVICE_ENDPOINT_CATALOGkey againstCoreServiceName, withworkflow/feedcarried as a documented, exhaustive exception set citing #4303. As the card predicted, removing the two keys keeps the pin green on its own (it's a subset check) — that would have been the trap. This PR also trims the now-staleKNOWN_DEAD_NON_SLOT_KEYSexception set and its#4303reference, so the assertion goes back to a plain "every catalog key is a canonical slot" with no carve-outs. The pin itself is untouched/still enforcing.Verified green at three points — before the catalog edit, after the catalog edit but before the trim, and after the trim — all three runs
Test Files 1 passed (1)/Tests 12 passed (12)onapps/console/src/pages/developer/hooks/useApiDiscovery.test.ts. Final confirmation re-run at this PR's head commit23dfa0a5e:(
useApiDiscovery.test.ts+ the other 3 developer-page suites — the 12 pin-test cases are included in the 35.)Tests
All run from the repo root per objectui#3378 (
pnpm --filtersilently runs the wrong package's suite).pnpm exec vitest run apps/console/src/pages/developer/hooks/useApiDiscovery.test.ts— 12/12 green, checked before the catalog edit, after the catalog edit, and after the exception-set trim.pnpm exec vitest run apps/console/src/pages/developer/— full developer-page suite, 35/35 green (re-confirmed at head23dfa0a5e).apps/consoletype-check (tsc --noEmit && tsc -b tsconfig.node.json --force) — green, after building the full workspace dependency closure (pnpm exec turbo run build --filter='@object-ui/console^...').apps/consolelint (eslint .) — 0 errors, 200 pre-existing warnings (none in the touched files beyond one pre-existing warning at an unrelated line inuseApiDiscovery.ts, unchanged by this diff).node scripts/check-control-bytes.mjs,node scripts/check-changeset-presence.mjs,node scripts/check-changeset-no-major.mjs— all green.Changeset
.changeset/api-console-drop-dead-catalog-keys-4303.md(patch,@object-ui/console) — no rendered behaviour changes, but the catalog source changed so a changeset is owed percheck-changeset-presence.mjs.Generated by Claude Code