Skip to content

feat(aggregator): roadmap annotations (#1284) - #4054

Merged
dezren39 merged 2 commits into
mainfrom
queue/5002-1284-roadmap-annotations
Nov 1, 2026
Merged

dezren39 merged 2 commits into
mainfrom
queue/5002-1284-roadmap-annotations

Conversation

@dezren39

@dezren39 dezren39 commented Nov 1, 2026 •

Copy link
Copy Markdown
Member

Summary

 roadmap row
+  append-only decision / outcome / context annotations
+  current source-ref -> stable-ref alias mapping
+  create form on roadmap item drill-down
+  annotations on timeline cards and /api/roadmap.json rows

Adds a separate durable JSON store; annotations are dated, attributed, immutable, and sorted by annotation date. The alias endpoint maps a reshuffled current row to an existing stable ref without rewriting history.

Evidence

  • Before: roadmap rows had no annotation store or write path.
  • After: annotation store/restart/alias tests pass; the HTTP round-trip test verifies creation, alias lookup, drill-down, timeline and JSON output.
  • bun test test/roadmap-annotations.test.ts test/roadmap-drill.test.ts — 7 passed.
  • bun test test/slice3.test.ts -t 'roadmap annotations round-trip' — 1 passed.
  • Full aggregator suite — 940 passed; one existing registry fixture assertion fails and reproduces on clean main.
  • bunx tsc --noEmit reports existing unrelated diagnostics in other tests and the web-push declaration; no diagnostics point to changed annotation files.

Merge Danger

Door: two-way

Blast Radius: aggregator — roadmap storage, item/timeline rendering, and /api/roadmap.json.

Closes #1284.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@dezren39
dezren39 requested a review from a team as a code owner November 1, 2026 22:59
@coderabbitai

coderabbitai Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You'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 24 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 5dcf652a-5c87-441f-8811-92b2d7aa48b9
Commits

Reviewing files that changed from the base of the PR and between 8766023 and 585be44.

Files selected for processing: 7
  • nixos/services/pm-stack/default.nix
  • pm-stack/aggregator/src/config.ts
  • pm-stack/aggregator/src/render.ts
  • pm-stack/aggregator/src/roadmap-annotations.ts
  • pm-stack/aggregator/src/server.ts
  • pm-stack/aggregator/test/roadmap-annotations.test.ts
  • pm-stack/aggregator/test/slice3.test.ts
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

Share

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-01T23:46:43.208207Z 585be44 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6bd25ded6d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

.filter(Boolean),
feedFile: s(env.PM_AGG_FEED_FILE, join(process.cwd(), "fleet-feed.json")),
commentsFile: s(env.PM_AGG_COMMENTS_FILE, join(process.cwd(), "comments.json")),
roadmapAnnotationsFile: s(env.PM_AGG_ROADMAP_ANNOTATIONS_FILE, join(process.cwd(), "roadmap-annotations.json")),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep annotation state outside the deployed Git checkout

On the NixOS deployment, the first annotation creates an unignored pm-stack/aggregator/roadmap-annotations.json inside the primary checkout: nixos/services/pm-stack/default.nix sets that directory as WorkingDirectory but does not set the new environment variable. pm-stack/scripts/pm-git-sync.sh:42–47 explicitly exits without pulling whenever the working tree contains dirt, so using this feature blocks subsequent automatic updates and deployments until someone manually relocates or ignores the file. Wire the annotation path to the aggregator state directory in the deployed service, as already done for the coverage snapshot.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed: the deployed aggregator service in nixos/services/pm-stack/default.nix now sets PM_AGG_ROADMAP_ANNOTATIONS_FILE=${aggState}/roadmap-annotations.json, wired exactly like PM_AGG_COVERAGE_SNAPSHOT_FILE, so annotation state lives in ~/.local/state/pm-aggregator/ and never dirties the deployed checkout / blocks pm-git-sync. Verified: nix file parses (nix-instantiate --parse), bun test test/roadmap-annotations.test.ts 2/2 pass, slice3 annotation coverage passes (the one slice3 failure is the pre-existing env-dependent routes/registry baseline reproduced on clean main by earlier shifts, unrelated — the bun suites do not read the .nix file). — task 5002, lane F

@dezren39

dezren39 commented Nov 1, 2026

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

Reviewed commit: 585be44958

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@dezren39
dezren39 merged commit b56c854 into main Nov 1, 2026
1 check passed
@dezren39
dezren39 deleted the queue/5002-1284-roadmap-annotations branch November 1, 2026 23:48
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.

feat(aggregator): roadmap annotations — dated decision/outcome notes on roadmap items and epics, rendered on the timeline

1 participant