Skip to content

Align roadmap footnotes with the roadmap grammar - #552

Open
leynos wants to merge 4 commits into
agent/make-test-helpers-falliblefrom
docs/roadmap-syntax
Open

Align roadmap footnotes with the roadmap grammar#552
leynos wants to merge 4 commits into
agent/make-test-helpers-falliblefrom
docs/roadmap-syntax

Conversation

@leynos

@leynos leynos commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Summary

This branch aligns the combined development roadmap with the mapsplice roadmap
grammar, which rejects footnote references ("unsupported inline node
footnoteReference"). All fourteen [^...] footnote reference sites in
docs/roadmap.md
are converted to inline links — either a parenthetical "(see target)"
at the reference site or a direct link on the existing phrase — and the
footnote definition block at the end of the file is removed. Every link
target is preserved. No wording beyond the link conversions, ordering,
numbering, or checkbox states change.

Review walkthrough

Validation

  • mapsplice append docs/roadmap.md <dummy-phase>: exit 0 (grammar-clean)
  • mapsplice append docs/zero-copy-frame-and-payload-migration-roadmap.md <dummy-phase>: exit 0
  • bunx markdownlint-cli2 docs/roadmap.md: 0 errors

Notes

  • docs/wireframe-1-0-detailed-development-roadmap.md uses ## Phase N: headings with task tables and fails the checker ("roadmap must contain at least one numbered phase"), but docs/roadmap.md describes itself as "merging previous roadmap documents into a single source of truth", so the 1.0 detailed roadmap is treated as superseded and deliberately left unchanged.
  • Two rewrapped lines in phase 15 were wrapped at 80 columns to keep MD013 clean; only lines authored by this change were rewrapped.

Summary by Sourcery

Documentation:

  • Replace all roadmap footnote references with inline links in the relevant phases and remove the trailing footnote definition block to make the document grammar-compliant.

References

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Sorry @leynos, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: cea2770e-f973-4224-9056-81b53391b163

📥 Commits

Reviewing files that changed from the base of the PR and between 6eaeb06 and 95029da.

📒 Files selected for processing (3)
  • AGENTS.md
  • docs/documentation-style-guide.md
  • docs/roadmap.md
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • leynos/rust-prover-tools (auto-detected)
  • leynos/shared-actions (auto-detected)
  • leynos/whitaker (auto-detected)

Summary

  • Replace all 14 footnote references in docs/roadmap.md with inline links.
  • Remove the obsolete footnote definitions.
  • Standardize ADR and formal-verification guide link text.
  • Document the mapsplice inline-link requirement in AGENTS.md and docs/documentation-style-guide.md.
  • Preserve all link targets, wording, ordering, numbering, and checkboxes.
  • Leave the zero-copy migration and historical 1.0 roadmaps unchanged.

Validation

  • Run mapsplice successfully.
  • Run markdownlint successfully.

Walkthrough

Update roadmap documentation guidance and convert roadmap footnote references to inline links. Remove the obsolete footnote definitions.

Changes

Roadmap link formatting

Layer / File(s) Summary
Define inline-link guidance
AGENTS.md, docs/documentation-style-guide.md
Specify that mapsplice-edited roadmap Markdown must use inline links instead of footnote references.
Migrate roadmap references
docs/roadmap.md
Replace ADR, design-document, and formal-verification footnotes with direct links. Remove obsolete footnote definitions.

Possibly related PRs

Suggested reviewers: codescene-access

Poem

Inline links now mark the way,
Footnotes leave the roadmap today.
ADRs shine in direct light,
Guides connect with cleaner sight,
mapsplice parses without delay.


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (3 warnings, 1 inconclusive)

Check name Status Explanation Resolution
Developer Documentation ⚠️ Warning The PR adds a mapsplice editing requirement, but documents it only in AGENTS.md and the style guide; docs/developers-guide.md has no mapsplice guidance. Add a concise mapsplice roadmap-editing section to docs/developers-guide.md, including the inline-link rule and grammar limitation, and link to the style guidance.
Concurrency And State ⚠️ Warning Changed async test harnesses spawn server tasks without full lifetime ownership: with_echo_client leaks on connect error or callback panic, and messaging tests abort handles without joining them. Wrap server handles in an abort-and-join guard, including panic and early-error paths; await aborted handles and preserve server errors where required.
Architectural Complexity And Maintainability ⚠️ Warning The PR adds a local Box-based TestResult in src/client/tests/helpers.rs although wireframe_testing already re-exports the repository TestResult, duplicating an established abstraction. Reuse wireframe_testing::TestResult and TestError, or document a concrete incompatibility before retaining a second result abstraction.
Unit Architecture ❓ Inconclusive Investigation is still in progress; the repository contains both the documented roadmap edits and earlier test-helper commits. Inspect the complete PR range before deciding whether the architecture check applies to code changes.
✅ Passed checks (16 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the roadmap grammar alignment made by the pull request.
Description check ✅ Passed The description accurately explains the inline-link changes, removed footnotes, validation, and unchanged documents.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Testing (Overall) ✅ Passed Pass this check: the PR changes only AGENTS.md and documentation; it adds no functionality or behavioural code that requires substantive tests.
User-Facing Documentation ✅ Passed Pass this check: the aggregate diff contains only roadmap/style guidance and test files, with no new or changed user-facing behaviour requiring docs/users-guide.md.
Module-Level Documentation ✅ Passed Accept: all 18 changed Rust modules start with //! documentation that states their purpose, utility, and relevant component relationships.
Testing (Unit And Behavioural) ✅ Passed Classify this check as not applicable: the commit changes only visible Markdown link text in docs/roadmap.md and adds no runtime behaviour or testable workflow.
Testing (Property / Proof) ✅ Passed Pass this check: the PR changes only documentation and test-support code; it adds no production invariant, lemma, proof assumption, or property-testing scope.
Testing (Compile-Time / Ui) ✅ Passed Pass this check: the aggregate diff changes only three Markdown files, with no Rust/TypeScript or UI behaviour; no compile-time or snapshot test is warranted for these link-only edits.
Domain Architecture ✅ Passed Approve this change: the net diff changes only documentation and test-support paths; no production domain modules or domain-to-adapter dependencies changed.
Observability ✅ Passed Pass this check: the diff changes only Markdown and test-support files; no production code or operational behaviour changes require logging, metrics, tracing, or alerts.
Security And Privacy ✅ Passed Pass this check: the patch changes only documentation and test code; scans found no secrets, credentials, privileged operations, or sensitive-data exposure.
Performance And Resource Use ✅ Passed The PR changes only three Markdown files (+60/-61) and no source, test, benchmark, or runtime paths; it adds no loops, I/O, allocation, or blocking work.
Rust Compiler Lint Integrity ✅ Passed The PR range changes only AGENTS.md and documentation; no .rs files, Rust lint suppressions, artificial references, or clone changes are present.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/roadmap-syntax

Comment @coderabbitai help to get the list of available commands.

codescene-access[bot]

This comment was marked as outdated.

@leynos
leynos force-pushed the docs/roadmap-syntax branch from 3994287 to 8509c39 Compare July 8, 2026 11:04
codescene-access[bot]

This comment was marked as outdated.

@leynos
leynos marked this pull request as ready for review July 24, 2026 15:35
@sourcery-ai

sourcery-ai Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Reviewer's Guide

Convert roadmap footnote references to inline links to satisfy the mapsplice roadmap grammar and maintain markdownlint compliance, without altering roadmap wording or semantics.

File-Level Changes

Change Details Files
Replace all roadmap footnote references with explicit inline links and remove the trailing footnote definition block.
  • For each former footnote marker, either add a parenthetical inline link or convert the existing phrase into a direct inline link, preserving the original link targets.
  • Update references to ADRs, design docs, and guides in phases 6, 8, 9, 15, and 18 to use inline markdown links instead of [^...] footnote syntax.
  • Rewrap only newly modified lines around phase 15 at 80 columns to keep MD013 markdownlint rules satisfied.
  • Delete the footnote reference definitions block after phase 19 now that all references are inline.
docs/roadmap.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hey - I've left some high level feedback:

  • The new inline references mix ADR numbers, design names, and raw filenames as link text (e.g. ADR 0001 vs rust-binary-router-library-design.md); consider standardizing the visible text so link targets read consistently throughout the roadmap.
  • The repeated inline references to the formal verification guide in 15.2.x now duplicate the full section title each time; you could tighten these by structuring the bullets to refer once to the guide and then list the specific questions, reducing redundancy and improving readability.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The new inline references mix ADR numbers, design names, and raw filenames as link text (e.g. `ADR 0001` vs `rust-binary-router-library-design.md`); consider standardizing the visible text so link targets read consistently throughout the roadmap.
- The repeated inline references to the formal verification guide in 15.2.x now duplicate the full section title each time; you could tighten these by structuring the bullets to refer once to the guide and then list the specific questions, reducing redundancy and improving readability.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@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: 8509c39baa

ℹ️ 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".

Comment thread docs/roadmap.md
Comment thread docs/roadmap.md Outdated
codescene-access[bot]

This comment was marked as outdated.

@coderabbitai coderabbitai Bot added the Roadmap label Jul 25, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@AGENTS.md`:
- Around line 310-314: Remove the comma before the essential “because” clause in
AGENTS.md lines 310-314, changing “instead, because” to “instead because”; make
the corresponding punctuation correction in docs/documentation-style-guide.md
lines 65-68, changing “footnotes, because” to “footnotes because,” and preserve
the required Triage paragraph.

In `@src/client/tests/helpers.rs`:
- Around line 32-45: Update the shared fixture helper spawn_listener to return a
Result instead of panicking on TcpListener::bind, local_addr, or accept
failures. Preserve the accepted stream and address on success, make the spawned
accept task expose its inner Result, and propagate the revised result type
through every caller using ? alongside the existing fallible helpers
assert_builder_option and connect_with_server.

In `@src/client/tests/request_hooks.rs`:
- Around line 91-122: The run_hook_test and run_hook_test_with_capture helpers
currently discard test-body and server-task failures. Change their test_body
bounds to futures returning TestResult, propagate body errors with ?, propagate
server.await failures with ?, and return Ok(()) from shared test bodies and
closures that now satisfy the Result contract.

In `@src/fragment/tests/adapter_tests.rs`:
- Around line 16-25: Centralize the duplicated non-zero constructor by defining
the shared helper as non_zero_usize in the fragment-test utility, then remove
the local helper from src/fragment/tests/adapter_tests.rs lines 16-25 and import
the shared symbol; likewise remove the local helper from
src/fragment/tests/reassembler_tests.rs lines 22-31 and import non_zero_usize
there.

In `@src/fragment/tests/reassembler_tests.rs`:
- Around line 33-44: Update the reassembler_with_first_fragment fixture to
return Result<Reassembler, ReassemblyError> and propagate the initial
reassembler.push result with ?. Preserve the assertion that the first fragment
yields Ok(None), while allowing setup errors to flow through the fixture instead
of being masked by a generic panic.

In `@tests/fixtures/client_pair_harness.rs`:
- Around line 41-47: Replace the panic-based runtime initialization in the
fixture’s constructor with a fallible constructor returning TestResult<Self>,
and propagate tokio::runtime::Runtime::new() errors using ?. Remove the
Default-based construction and update all client pair harness fixture call sites
to invoke the fallible constructor with ?, preserving shared fixture setup
without panics.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: c13099df-4b6c-4f17-9707-830d47b07194

📥 Commits

Reviewing files that changed from the base of the PR and between 4078d62 and 10b93a3.

📒 Files selected for processing (15)
  • AGENTS.md
  • docs/documentation-style-guide.md
  • docs/roadmap.md
  • src/client/tests/error_handling.rs
  • src/client/tests/helpers.rs
  • src/client/tests/messaging.rs
  • src/client/tests/request_hooks.rs
  • src/client/tests/streaming.rs
  • src/client/tests/tracing.rs
  • src/fragment/tests/adapter_tests.rs
  • src/fragment/tests/fragmenter_tests.rs
  • src/fragment/tests/reassembler_tests.rs
  • tests/fixtures/client_lifecycle.rs
  • tests/fixtures/client_pair_harness.rs
  • tests/fixtures/panic.rs
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • leynos/rust-prover-tools (auto-detected)
  • leynos/shared-actions (auto-detected)
  • leynos/whitaker (auto-detected)

Comment thread AGENTS.md
Comment thread src/client/tests/helpers.rs Outdated
Comment thread src/client/tests/request_hooks.rs Outdated
Comment thread src/fragment/tests/adapter_tests.rs Outdated
Comment thread src/fragment/tests/reassembler_tests.rs Outdated
Comment thread tests/fixtures/client_pair_harness.rs Outdated
codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

@leynos
leynos changed the base branch from main to agent/make-test-helpers-fallible August 3, 2026 11:19

@codescene-access codescene-access 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.

No quality gates enabled for this code.

@lodyai
lodyai Bot force-pushed the docs/roadmap-syntax branch from d5e75bc to e41cf8e Compare August 7, 2026 00:19
codescene-access[bot]

This comment was marked as outdated.

leynos and others added 4 commits August 7, 2026 02:55
The mapsplice roadmap grammar rejects footnote references
("unsupported inline node `footnoteReference`"). Replace every [^N]
footnote reference in docs/roadmap.md with an inline link at the
reference site (as a parenthetical "see ..." or a direct link on the
existing phrase) and remove the footnote definition block at the end of
the file. All link targets are preserved. No wording beyond the link
conversions, no ordering, numbering, or checkbox states change.
Address review feedback on the footnote-to-inline-link conversion in
docs/roadmap.md:

- Standardize the visible link text: cite ADRs as `ADR NNNN` and design
  documents by a short descriptive name rather than a raw filename, so
  the inline references read consistently.
- Reference the formal verification guide once in the §15.2 introduction
  and let each task cite only its specific section, removing the
  repeated full guide link.
- Keep every changed line within the 80-column limit by linking the
  distinguishing keyword and leaving "design" in the surrounding prose.

Document why the roadmap cannot use GitHub-flavoured footnotes: the
mapsplice roadmap grammar rejects footnote references, so roadmap-shaped
Markdown must cite references inline. Record this scoped exception in
AGENTS.md and the documentation style guide.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Review feedback: in the mapsplice footnote-exception note the `because`
clause is restrictive (essential to the meaning), so it takes no preceding
comma. Remove the comma in both AGENTS.md and the documentation style guide.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Review feedback: the roadmap still mixed clean labels (ADR numbers, design
names) with the raw filename `formal-verification-methods-in-wireframe.md`
used as visible link text across the §15 references, right beside the
`formal verification guide` label used in §15.2 for the same document.

Rename that visible text to the descriptive `formal verification guide`
(matching the §15.2 introduction and the ADR/design-name convention) so
link text reads consistently throughout the roadmap. The link targets
(URLs) and section anchors are unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@lodyai
lodyai Bot force-pushed the docs/roadmap-syntax branch from e41cf8e to 95029da Compare August 7, 2026 00:55
@buzzybee-df12

Copy link
Copy Markdown
Collaborator

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot removed the Roadmap label Aug 7, 2026
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.

2 participants