Skip to content

docs(review): address CodeRabbit #11 findings — redact host identity, fix phase collision + MD040 - #12

Merged
jeremylongshore merged 2 commits into
mainfrom
fix/review-findings-fork
Jul 29, 2026
Merged

docs(review): address CodeRabbit #11 findings — redact host identity, fix phase collision + MD040#12
jeremylongshore merged 2 commits into
mainfrom
fix/review-findings-fork

Conversation

@jeremylongshore

@jeremylongshore jeremylongshore commented Jul 29, 2026

Copy link
Copy Markdown

What

Addresses the four CodeRabbit findings on the merged PR #11 (they weren't read before that merge — process now corrected per owner instruction: wait for reviewers + fix before merge).

Findings addressed

  1. SECURITY (Major) — redact production/host identity from the PUBLIC fork's .beads/issues.jsonl: prod public IP, tailnet address, prod domain, and the host age recipient (in buzz-nry.1/.2) now reference intent-os ops/buzz instead. Forks of public repos are always public; operator detail belongs only in the private ops lane. These are not true secrets (age recipient is a public key, the IP is internet-facing, the tailnet addr needs tailnet auth, domains are DNS-public) → no rotation, but they don't belong here. Dolt re-synced (--allow-stale) so the pre-commit export can't re-inject. Residual: prior git history still carries them (accepted — no secrets).
  2. CORRECTNESS (Major) — fix the Phase-6 collision I introduced: the LMS↔estate audit note no longer claims "Phase 6"; Phase 6 = the contributor laboratory, uniquely.
  3. CORRECTNESS (Major) — reframe buzz-nry.3's description from "now executed against PROD" (false completion tone) to scope; per-gate status lives in notes/ops; the off-site leg + several gates remain OPEN.
  4. MAINTAINABILITY (Minor) — MD040: the four-plane flow diagram fence is now ```text.

Verification

  • grepzero host-addressing in the tracked JSONL and the Dolt export.
  • markdownlint no longer reports MD040 on 006.
  • JSONL re-imports valid (20 issues).

Refs

intent-solutions-io/buzz#11.

  • Jeremy Longshore
    intentsolutions.io

Summary by CodeRabbit

  • Documentation
    • Clarified the scope of Phase 6 and its relationship to the contributor laboratory.
    • Improved formatting for a flow diagram to enhance readability.
  • Chores
    • Normalized issue record formatting without changing issue content or structure.

…ty, fix phase collision + MD040

Addresses the four CodeRabbit findings on the merged PR #11 (they were not read
before that merge — process corrected):

- SECURITY (Major): redact production/host identity from the PUBLIC fork's
  .beads/issues.jsonl — prod public IP, tailnet address, prod domain, and the
  host age recipient in buzz-nry.1/.2 now point to intent-os ops/buzz instead.
  Forks of public repos are always public; operator detail must live only in the
  private ops lane (standing rule). These values are not true secrets (age
  recipient is a public key; the IP is internet-facing; the tailnet addr needs
  tailnet auth; domains are DNS-public), so no rotation — but they don't belong
  here. Dolt re-synced (--allow-stale) so the pre-commit export can't re-inject.
  Residual: prior git history still carries them (accepted — no secrets).
- CORRECTNESS (Major): fix the Phase-6 collision I introduced — the LMS↔estate
  audit note no longer claims "Phase 6"; Phase 6 in this tree is the contributor
  laboratory, uniquely.
- CORRECTNESS (Major): reframe buzz-nry.3's description from "now executed
  against PROD" (a false completion tone) to SCOPE — the gate suite to run, with
  per-gate status in notes/ops; the off-site leg and several gates remain OPEN.
- MAINTAINABILITY (Minor): MD040 — the four-plane flow diagram fence is now
  ```text.

VERIFIED: grep shows zero host-addressing in the tracked JSONL and in the Dolt
export; markdownlint no longer reports MD040 on 006; JSONL re-imports valid (20
issues).

Refs #11.
@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@jeremylongshore, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 44 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4be1aef3-58c6-4509-bc88-2f2f6f29d692

📥 Commits

Reviewing files that changed from the base of the PR and between 15cc8c5 and 1307d6d.

📒 Files selected for processing (1)
  • .beads/issues.jsonl
📝 Walkthrough

Walkthrough

The pull request reserializes all Beads issue records without changing their structure, clarifies Phase 6 documentation scope, and labels a Markdown diagram fence as text.

Changes

Normalization Updates

Layer / File(s) Summary
Issue record serialization
.beads/issues.jsonl
All 20 issue records retain their identifiers and fields while JSON string encoding and presentation are normalized.
Documentation clarifications
000-docs/001-PP-PLAN-buzz-adoption-master-blueprint.md, 000-docs/006-DR-STND-authoritative-naming-and-boundaries.md
Phase 6 scope wording is clarified, and the four-plane flow code fence is labeled as text.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main doc fixes: host identity redaction, the Phase 6 naming collision, and the MD040 fence update.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/review-findings-fork

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.

@kilo-code-bot

kilo-code-bot Bot commented Jul 29, 2026

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (1 file)
  • .beads/issues.jsonl
Previous Review Summary (commit 15cc8c5)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit 15cc8c5)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (3 files)
  • .beads/issues.jsonl
  • 000-docs/001-PP-PLAN-buzz-adoption-master-blueprint.md
  • 000-docs/006-DR-STND-authoritative-naming-and-boundaries.md

Reviewed by nemotron-3-ultra-550b-a55b:free · Input: 82.8K · Output: 5.4K · Cached: 191.5K

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 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 @.beads/issues.jsonl:
- Line 1: Redact all remaining host and environment identities in the issue
export before merging: replace the intentsolutions account, production/staging
DNS names, intent-ops-buzz hostname, /etc/intentsolutions/age.key path, and
internal Plane URL with the existing redaction placeholders. Apply the same
replacements to the referenced lines 4–6 and 13–14, then regenerate and
re-import the JSONL/Dolt export.
🪄 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: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: cf48133d-5a09-4321-a285-e8448e19a938

📥 Commits

Reviewing files that changed from the base of the PR and between 24e8ae4 and 15cc8c5.

📒 Files selected for processing (3)
  • .beads/issues.jsonl
  • 000-docs/001-PP-PLAN-buzz-adoption-master-blueprint.md
  • 000-docs/006-DR-STND-authoritative-naming-and-boundaries.md

Comment thread .beads/issues.jsonl Outdated
{"_type":"issue","id":"buzz-4ei.1","title":"Author the master blueprint, decision record, deploy posture, and FORK.md as additive-only artifacts","description":"000-docs/{000-INDEX,001-PP-PLAN,002-DR-DECR,003-OD-DEPL} + FORK.md; zero upstream-path edits.","status":"closed","priority":2,"issue_type":"task","owner":"jeremylongshore@users.noreply.github.com","created_at":"2026-07-29T04:24:18Z","created_by":"jeremylongshore","updated_at":"2026-07-29T04:26:00Z","closed_at":"2026-07-29T04:26:00Z","close_reason":"Authored additive-only: 000-docs/{000-INDEX,001-PP-PLAN blueprint,002-DR-DECR decision record,003-OD-DEPL deploy posture} + FORK.md; git diff upstream/main --stat shows only fork-added paths","labels":["fork-infra"],"dependencies":[{"issue_id":"buzz-4ei.1","depends_on_id":"buzz-4ei","type":"parent-child","created_at":"2026-07-28T22:24:18Z","created_by":"jeremylongshore","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"buzz-4ei","title":"Stand up the Intent Solutions fork infrastructure for the Buzz adoption","description":"Phase 1 / E1 of 000-docs/001-PP-PLAN-buzz-adoption-master-blueprint.md: fork + clone + beads/Dolt activation, master blueprint + decision record + deploy posture + FORK.md, testing-SOP baseline (TEST_AUDIT.md), three-way mirror (GitHub cluster issue + Plane BUZZ) and memory seeding. Additive-only: zero upstream-path edits.","notes":"GitHub: intent-solutions-io/buzz#1 — https://github.com/intent-solutions-io/buzz/issues/1. MIRROR RULE: bd-sync handles fan-out — `bd-sync note buzz-4ei` and `bd-sync close buzz-4ei` mirror to GH and Plane automatically.\n\nPlane: BUZZ-1 — https://projects.intentsolutions.io/internal/projects/?peekIssue=BUZZ-1\nE1 milestone: blueprint set + FORK.md + TEST_AUDIT.md authored (buzz-4ei.1, .2 closed); beads write-path root-caused (bd contributor-role fork routing) and fixed via --role maintainer; PR opening next. Note: epic was re-minted from buzz-ekg to buzz-4ei during the store rebuild.\nE1 shipped: PR intent-solutions-io/buzz#2 squash-merged to fork main (6cf4df96f) after CodeRabbit review (4 findings fixed in e49ed40a6, 2 declined with reasons). Children .1/.2/.4 closed with evidence; .3 (fork-lane test layers) remains open — epic stays in_progress until it lands. Deferred: epic-boundary Dolt tag until dolt-mcp-vcs is available (system dolt CLI is version-skewed vs bd's embedded engine).","status":"closed","priority":2,"issue_type":"epic","owner":"jeremylongshore@users.noreply.github.com","created_at":"2026-07-29T04:24:17Z","created_by":"jeremylongshore","updated_at":"2026-07-29T06:21:39Z","started_at":"2026-07-29T04:25:59Z","closed_at":"2026-07-29T06:21:39Z","close_reason":"E1 complete: all 4 children closed with evidence (PRs #2/#3/#5/#6 merged; blueprint ledger E1=COMPLETE; GH cluster #1 auto-closed by PR #6). Fork contract now machine-enforced. Phase 2 hosting opens per blueprint after the MX cutover.","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"buzz-bkt","title":"acceptance probe","status":"closed","priority":2,"issue_type":"task","owner":"jeremylongshore@users.noreply.github.com","created_at":"2026-07-29T04:23:48Z","created_by":"jeremylongshore","updated_at":"2026-07-29T04:23:49Z","started_at":"2026-07-29T04:23:49Z","closed_at":"2026-07-29T04:23:49Z","close_reason":"probe","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type": "issue", "id": "buzz-2i6", "title": "Install nak on the Buzz hosts and run the real functional-probe rehearsal, then enable the prod updater timer", "description": "The updater lane is deployed to staging (dormant) but the real functional-probe rehearsal is blocked: nak (the NIP-42 auth+publish+readback CLI the probe uses) is absent on the Buzz hosts. buzz-admin IS in the relay image. Steps: install nak on staging (+ prod), run functional-probe.sh against the live staging relay (throwaway member auth+publish+readback, un-invited refused, cleans up), then a controlled no-op-digest updater rehearsal on staging, THEN install-updater-lane.sh intent-ops-buzz --enable-timer for prod. Parent: buzz-ocv.4.", "notes": "REHEARSAL PARTIAL on live staging 2026-07-29 (nak copied to /usr/local/bin/nak on intentsolutions; jq present). VERIFIED LIVE: closed relay up+healthy+CORS-applied; buzz-admin add-member/remove-member/list-members work — EXACT syntax is 'buzz-admin add-member --pubkey <hex-or-npub>' (NOT positional; positional errors with usage). nak emits 64-char hex from 'nak key public'; relay accepts hex. add+remove round-trip proven; test member cleaned up (relay left clean: owner + 1 pre-existing member). REMAINING: the nak publish/readback NIP-42 flow hung with reactive '--auth' — the closed relay likely needs '--force-pre-auth' (authenticate BEFORE the EVENT/REQ), and readback (nak req -i <id>) on a closed relay also needs auth so the member NSEC must be threaded into functional-probe.sh's readback() (currently it only gets the event id). NEXT: (1) prove 'NOSTR_SECRET_KEY=<nsec> nak event -k1 -c X --auth --force-pre-auth <ws>' returns an id against staging; (2) prove readback with the member key; (3) bake the verified commands + --pubkey into functional-probe.sh add_member/del_member/publish/readback; (4) then no-op-digest updater rehearsal on staging; (5) install-updater-lane.sh intent-ops-buzz --enable-timer.", "status": "open", "priority": 1, "issue_type": "task", "owner": "jeremylongshore@users.noreply.github.com", "created_at": "2026-07-29T21:47:43Z", "created_by": "jeremylongshore", "updated_at": "2026-07-29T21:51:24Z", "labels": ["go-live", "probe", "updater"], "dependency_count": 0, "dependent_count": 0, "comment_count": 0}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Complete the host-identity redaction before merging.

The public JSONL still exposes production and host identity details: Line [1] includes the host account intentsolutions; Lines [4] and [13]-[14] retain production/staging DNS names; Line [5] publishes hostname intent-ops-buzz and /etc/intentsolutions/age.key; and Line [6] retains an internal Plane URL. A zero-IP scan can pass while this information remains public. Replace these values with the existing redaction placeholders, then regenerate and re-import the JSONL/Dolt export.

Also applies to: 4-6, 13-14

🤖 Prompt for 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.

In @.beads/issues.jsonl at line 1, Redact all remaining host and environment
identities in the issue export before merging: replace the intentsolutions
account, production/staging DNS names, intent-ops-buzz hostname,
/etc/intentsolutions/age.key path, and internal Plane URL with the existing
redaction placeholders. Apply the same replacements to the referenced lines 4–6
and 13–14, then regenerate and re-import the JSONL/Dolt export.

…llow-up)

The first redaction only zeroed IPs; CodeRabbit correctly flagged that the public
JSONL still carried the admin account name + NOPASSWD/docker-group detail, the
age-key path, staging/prod DNS names, the shared-host ssh alias, and an internal
Plane URL. Rewrote the buzz-nry/.1/.2 descriptions+notes to high-level status
(bd-sync mirror IDs preserved) and globally scrubbed all addressing/paths/
accounts/internal-URLs across every bead — detail now points to intent-os
ops/buzz only. Kept the public asset name 'intent-ops-buzz' (published by the
canonical naming record 006) and the public github.com issue URL.

VERIFIED: zero residual across all sensitive tokens in both the tracked JSONL and
the Dolt export (re-imported --allow-stale so the pre-commit export can't
re-inject); JSONL valid. Residual: prior git history still carries the old values
(accepted — none are secrets: age recipient is a public key, IP is internet-facing).

Refs #12.
@jeremylongshore
jeremylongshore merged commit 3d5539e into main Jul 29, 2026
2 checks passed
@jeremylongshore
jeremylongshore deleted the fix/review-findings-fork branch July 29, 2026 22:29
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.

1 participant