koala73 / koala73/worldmonitor

fix(sidecar): api/v2/shipping has no desktop path — handler build glob only sees {domain}/v1

Open
#5,907 1 comment 0 reactions 0 assignees View on GitHub
bug P2
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.