Repository navigation
feat(aggregator): deep-link board/roadmap/item/projects out to live services (#1136) - #2447
Conversation
…ervices (#1136) Service-link registry (src/service-links.ts): service id -> browser URL templates — Kaneo public hostname, Grist/Pad/ready-for-agent on the tailnet MagicDNS host, never loopback. Kaneo task route verified against the live bundle (/dashboard/workspace/<ws>/project/<proj>/task/<task>). - live source: BoardItem.kaneoUrl is now the per-task deep link (was the loopback API base); RoadmapRow gains gristUrl (roadmap doc link). - render: Kaneo badge on board cards, Grist badge on roadmap cards, Live services line on item pages (via server extras), service strip on the projects page (both pool and no-pool branches). - BoardItem.kaneoUrl was previously set by both sources but rendered nowhere — the field was dead. - tests: test/service-links.test.ts (8) cover registry forms, builders, and all four render surfaces. Full suite 349 pass / 1 pre-existing fail (actions.test.ts attention snooze strip, fails on clean main too).
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 48 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Implements #1136 (queue task 3034): deep-link every card/row out to its live service.
Registry first — new
pm-stack/aggregator/src/service-links.ts: service id → URL templates in one place. Browser forms only: Kaneo at its public hostname, Grist / Pad / ready-for-agent on the tailnet MagicDNS host (amd-6.raptor-pumpkinseed.ts.net) — never loopback or raw IPs. The Kaneo task route (/dashboard/workspace/<ws>/project/<proj>/task/<task>) was verified against the live Kaneo web bundle on 2026-10-29 (its by-ticket route redirects to exactly this canonical form).The gap this closes:
BoardItem.kaneoUrlwas set by both sources but rendered nowhere — and the live source set it to the loopback API base.RoadmapRowcarried no Grist URL at all.sources/live.ts: board items now carry the per-task Kaneo deep link (workspaceId plumbed out ofkaneoProjects); roadmap rows carrygristUrl(roadmap document link). Fixtures roadmap rows carry it too.render.ts: Kaneo ↗ badge on board cards, Grist ↗ badge on roadmap cards, a Live services line on item pages (server passesitemServiceLinks(subject)via extras), and a Live services strip on the projects page (both the pool and no-pool branches).model.ts:RoadmapRow.gristUrl?: string.Verification:
test/service-links.test.ts(8 tests) covers registry forms, the URL builders,itemServiceLinks, and all four render surfaces. Full aggregator suite: 349 pass / 1 fail — the one failure (actions.test.ts, attention snooze strip) fails identically on clean main, pre-existing and unrelated.tsc --noEmitclean.Refs #1136 — the issue stays open for live spot-verification once this lands; merging is currently blocked by the merge-queue stall #2403 (no merges since #2233, 10:57Z).
Need help on this PR? Tag
@codesmith-botwith what you need.