Skip to content

Conversation

@flyingrobots
Copy link
Owner

Adds a Makefile target to regenerate docs/echo-total.md and documents docs commands (dev build + rollup) in README. Updates execution plan and decision log per Docs Guard.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 1, 2025

Warning

Rate limit exceeded

@flyingrobots has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 13 minutes and 4 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between cc25ba5 and 518db65.

📒 Files selected for processing (2)
  • .github/workflows/echo-total-check.yml (1 hunks)
  • scripts/gen-echo-total.sh (2 hunks)

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Summary by CodeRabbit

  • New Features

    • Added automated documentation validation to prevent documentation rollup drift.
    • New tooling support for generating documentation rollups.
  • Tests

    • Added comprehensive edge-case tests for motion engine covering special numeric values and invalid inputs.
  • Documentation

    • Updated project documentation with recent tooling and testing enhancements.

Walkthrough

Adds a CI workflow that enforces regeneration of docs/echo-total.md, a Makefile target to run the generator, removes the generator's timestamp header, and adds three negative tests for the motion rule plus accompanying documentation and decision-log entries.

Changes

Cohort / File(s) Summary
CI workflow
\.github/workflows/echo-total-check.yml
New GitHub Actions workflow "Docs Rollup Check": checks out the repo, runs the generator script to produce docs/echo-total.md, compares it to the committed file, and fails the PR if they differ.
Build & tooling
Makefile, scripts/gen-echo-total.sh
Makefile: add .PHONY echo-total target, chmod+exec invocation, and informational echo in hooks. Script: remove the generated timestamp line from header (generator output otherwise unchanged).
Tests
crates/rmg-core/tests/engine_motion_negative_tests.rs
New test module with three negative tests: NaN propagation, Infinity preservation, and invalid payload size returning NoMatch. Tests set up GraphStore, register rule, run transaction, and assert payload decoding.
Documentation
docs/echo-total.md, docs/decision-log.md, docs/execution-plan.md
Update rollup and logs with PR entries (PR-05…PR-08) documenting the motion tests, CI rollup check, and Makefile/docs tooling additions; removed explicit Generated timestamp from rollup header content.

Sequence Diagram(s)

sequenceDiagram
    participant PR as Pull Request
    participant GH as GitHub Actions
    participant Repo as Repository
    participant GEN as gen-echo-total.sh
    participant DIFF as Diff Check

    PR->>GH: open / update PR (trigger)
    GH->>Repo: checkout code
    GH->>GEN: run ./scripts/gen-echo-total.sh
    GEN->>Repo: read docs sources
    GEN->>Repo: emit docs/echo-total.md (no timestamp)
    GH->>DIFF: compare generated file vs committed
    alt files match
        DIFF-->>GH: pass
    else files differ
        DIFF->>GH: produce diff
        GH-->>PR: fail job (report diff)
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Pay attention to: GitHub Actions YAML correctness and exit/diff behavior; correctness of test assertions for NaN/Inf (bitwise vs IEEE semantics); generator script portability and Makefile idempotency.

Possibly related PRs

Poem

🛠️ A script that hums without the date,
CI stands guard at the docs' gate,
Tests that chase NaN and endless skies,
Makefile whispers hooks and tries.
📚✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The PR title "PR-08: build/docs: make echo-total target + README note" directly and specifically describes the primary changes in this changeset. It accurately references the addition of a new Makefile target for generating the docs rollup and the documentation of docs commands in the README, which align with the actual modifications across the Makefile, README, and supporting tooling files. The title is concise, avoids vague language, and clearly communicates the core intent of the changes.
Description Check ✅ Passed The PR description is directly related to the changeset and covers the substantive modifications: it mentions adding a Makefile target to regenerate docs/echo-total.md, documenting docs commands in README, and updating the execution plan and decision log. The description appropriately references the "Docs Guard" rationale for metadata updates. While the description doesn't exhaustively enumerate all touched files (like scripts/gen-echo-total.sh modifications), it adequately conveys the primary purpose and scope of the changes without being vague or misleading.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

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

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

Copy link

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

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.

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

coderabbitai[bot]
coderabbitai bot previously approved these changes Nov 1, 2025
@flyingrobots flyingrobots dismissed coderabbitai[bot]’s stale review November 1, 2025 20:21

The merge-base changed after approval.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
scripts/gen-echo-total.sh (2)

42-42: Locale-stable sort to avoid cross-machine diffs.

Sorting without a fixed locale can reorder files under different environments. Make it locale-stable.

-  done < <(find "$DOCS_DIR" -maxdepth 1 -type f -name "*.md" -print0 | sort -z)
+  done < <(find "$DOCS_DIR" -maxdepth 1 -type f -name "*.md" -print0 | LC_ALL=C sort -z)

15-16: Add Bash 4+ version guard—declare -A is unsupported on macOS default (Bash 3.2).

The declare -A associative array syntax requires Bash 4.0 or newer. Your script will fatally exit on macOS dev boxes running the default Bash 3.2. Add the version guard before line 13:

 #!/usr/bin/env bash
 set -euo pipefail
 
+if [[ -z "${BASH_VERSINFO:-}" || ${BASH_VERSINFO[0]} -lt 4 ]]; then
+  echo "gen-echo-total.sh requires bash>=4 (macOS: brew install bash)"; exit 2
+fi
+
 ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"

Alternatively, refactor away from the associative array (use a flag file or grep check instead), but the guard is the minimal fix.

♻️ Duplicate comments (1)
.github/workflows/echo-total-check.yml (1)

15-25: Rollup still churns on non-doc commits; fix generator header and improve guidance.

Switch gen header to “last docs commit” (see script comment) to stop false failures when only code changes. Also, point contributors to the Make target.

Apply:

-          if ! git diff --quiet -- docs/echo-total.md; then
-            echo "docs/echo-total.md is out of date. Run scripts/gen-echo-total.sh and commit the result." >&2
+          if ! git diff --quiet -- docs/echo-total.md; then
+            echo "docs/echo-total.md is out of date. Run 'make echo-total' (or scripts/gen-echo-total.sh) and commit the result." >&2
             git --no-pager diff -- docs/echo-total.md || true
             exit 1
           fi

After updating the script to use a docs-scoped SHA, push a no-doc-change commit to confirm the job stays green.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e607fe2 and 8f8a1e6.

⛔ Files ignored due to path filters (1)
  • README.md is excluded by !*.md
📒 Files selected for processing (7)
  • .github/workflows/echo-total-check.yml (1 hunks)
  • Makefile (2 hunks)
  • crates/rmg-core/tests/engine_motion_negative_tests.rs (1 hunks)
  • docs/decision-log.md (1 hunks)
  • docs/echo-total.md (3 hunks)
  • docs/execution-plan.md (1 hunks)
  • scripts/gen-echo-total.sh (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
crates/rmg-core/tests/engine_motion_negative_tests.rs (3)
crates/rmg-core/src/payload.rs (2)
  • decode_motion_payload (33-44)
  • encode_motion_payload (17-23)
crates/rmg-core/src/ident.rs (2)
  • make_node_id (35-40)
  • make_type_id (27-32)
crates/rmg-core/src/demo/motion.rs (1)
  • motion_rule (66-78)
🪛 checkmake (0.2.2)
Makefile

[warning] 6-6: Missing required phony target "all"

(minphony)


[warning] 6-6: Missing required phony target "clean"

(minphony)


[warning] 6-6: Missing required phony target "test"

(minphony)

🪛 GitHub Actions: Docs Rollup Check
docs/echo-total.md

[error] 1-1: docs/echo-total.md is out of date. Run scripts/gen-echo-total.sh and commit the result.

🪛 LanguageTool
docs/execution-plan.md

[uncategorized] ~91-~91: The official name of this software platform is spelled with a capital “H”.
Context: ...tal rollup check (CI) - Added workflow .github/workflows/echo-total-check.yml that re...

(GITHUB)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Security Audit
🔇 Additional comments (2)
docs/decision-log.md (1)

32-35: Entries align with scope; LGTM.

PR-06..08 decisions are clear and match the tooling/tests added.

Makefile (1)

42-45: LGTM; pairs well with the workflow.

Target is simple and discoverable. No changes needed.

coderabbitai[bot]
coderabbitai bot previously approved these changes Nov 1, 2025
@flyingrobots flyingrobots dismissed coderabbitai[bot]’s stale review November 1, 2025 20:35

The merge-base changed after approval.

@flyingrobots flyingrobots merged commit 4cc2107 into main Nov 1, 2025
11 of 12 checks passed
@flyingrobots flyingrobots deleted the echo/pr-08-echo-total-makefile branch November 1, 2025 22:53
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