koala73 / koala73/worldmonitor
fix(sidecar): api/v2/shipping has no desktop path — handler build glob only sees {domain}/v1
- Dominant language
- TypeScript
- Stars
- 86.6k
- Forks
- 13.1k
- Avg merge
- 8h 4m
- Merged PRs (30d)
- 825
Description
## Summary
`scripts/build-sidecar-handlers.mjs:26-29` globs exactly `api/{domain}/v1/[rpc].ts`. The `api/v2/shipping/` family (added since v2.5.23; the only `server/worldmonitor/` domain without a `v1/[rpc].ts`) is invisible to it, so shipping RPCs never bundle into the desktop sidecar. On desktop they are cloud-only *and* Pro-gated (`src/shared/premium-paths.ts:52-53`), reached only via the sidecar's 404-cloud-fallback — an undeclared, accidental routing decision.
Until the `desktop-config` CI job landed (#5902), nothing in PR CI even ran the handler build, so a new route family placed outside `api/{domain}/v1/` produced zero red signal until a release was cut.
## Suggested direction
Either extend the glob to versioned families (`api/v2/{domain}/`), or record the family as intentionally cloud-routed and make the sidecar route it deliberately (not via 404-fallback). Add a contract test asserting every `server/worldmonitor/` domain has an explicit desktop-path decision.
Found during the #5902 parity baseline audit (see `docs/desktop-parity-matrix.md`). Part of #5902.
Contributor guide
Research direction
Start with scripts/build-sidecar-handlers.mjs:26-29 and compare its glob with the api/v2/shipping/ family. Read src/shared/premium-paths.ts:52-53 and docs/desktop-parity-matrix.md, then inspect the desktop-config CI job. Done means shipping has an explicit desktop-path decision and a contract test covers every server/worldmonitor domain.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, build-system, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100