Skip to content

SUP-1694 Make v0.1 GBrain-first#40

Closed
levineam wants to merge 2 commits into
mainfrom
SUP-1694/gbrain-first-resolver
Closed

SUP-1694 Make v0.1 GBrain-first#40
levineam wants to merge 2 commits into
mainfrom
SUP-1694/gbrain-first-resolver

Conversation

@levineam

@levineam levineam commented May 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • Frames v0.1 public docs around a GBrain-first structured resolver instead of a GBrain bridge/hybrid story.
  • Updates README, architecture, module docs, OpenClaw runtime guidance, changelog, and release notes.
  • Adds a release-readiness gate that fails if the old GBrain-bridge phrasing returns or if the public docs stop describing QMD as fallback/support.

Verification

  • npm test
  • npm run release:check:candidate
  • npm test --prefix modules/jarvos-gbrain
  • git diff --check

Paperclip: SUP-1694

Summary by CodeRabbit

  • Documentation

    • Updated documentation describing GBrain as the first structured recall authority
    • Documented QMD as optional support layer with --no-qmd configuration option
    • Refined architecture, module, and runtime documentation for memory and recall layers
    • Updated v0.1.0 release notes with GBrain integration capabilities
  • Chores

    • Added release readiness check for GBrain-first narrative consistency

Review Change Stack

@coderabbitai

coderabbitai Bot commented May 14, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This PR updates documentation across the jarvOS repository to consistently reposition @jarvos/gbrain as the "GBrain-first structured resolver"—the primary recall authority—and clarifies its integration with QMD (enabled by default, disabled via --no-qmd) and memory-wiki. The changes include architectural boundary clarifications, runtime configuration documentation, release notes, and automated validation logic to enforce narrative consistency.

Changes

GBrain-first Resolver Narrative Alignment

Layer / File(s) Summary
GBrain-first terminology and module framing
modules/jarvos-gbrain/package.json, README.md, modules/README.md, modules/jarvos-gbrain/README.md
Package description and all module/repo documentation updated to replace "bridge" and "structured knowledge" language with "GBrain-first structured resolver." Module role, boundaries, capabilities, and operating loop all aligned to the new framing establishing the foundational terminology.
Architectural integration and component boundaries
docs/architecture/jarvos-architecture.md, runtimes/openclaw/README.md
Knowledge propagation and memory retrieval patterns rewritten to position Obsidian vault as the source of truth, GBrain as the primary structured resolver with direct/graph recall, QMD as optional broad lookup/exact source-note support (not the graph layer), and memory-wiki as runtime diagnostics. Decision rationale and validated operating patterns updated to reflect the layered roles and --no-qmd pathway.
Runtime configuration and release validation
modules/jarvos-gbrain/README.md (maintenance loop and bundle defaults), CHANGELOG.md, docs/releases/v0.1.0.md, scripts/release-readiness-check.js
Runtime recall bundle defaults documented with QMD enabled by default and QMD failures affecting bundle health; maintenance loop reordered; release notes specify GBrain-first capabilities (search/recall/evals/QMD support) and limitations (separate local dependency, no bundled database). New automated readiness check scans narrative files for required GBrain-first patterns and forbids legacy bridging terminology.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • levineam/jarvOS#36: Introduces the checkReleaseReadiness() framework that the main PR extends with new GBrain-first narrative regex checks.
  • levineam/jarvOS#15: Rewrites README.md layer ownership and module attribution boundaries; the main PR refines that boundary rewrite specifically for the GBrain-first resolver contract framing.

Suggested labels

jarvis-managed

Poem

🐰 From bridge to first authority,
GBrain now recalls with priority!
QMD supports with steady grace,
While memory-wiki keeps its place.
One narrative, cohesive and bright,
Makes the resolver feel just right! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'SUP-1694 Make v0.1 GBrain-first' directly and concisely summarizes the main change: reframing v0.1 documentation to present a GBrain-first structured resolver approach across multiple files.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch SUP-1694/gbrain-first-resolver

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


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.

@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: 9552d3d65d

ℹ️ 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 runtimes/openclaw/README.md Outdated
Comment on lines +106 to +107
context-ready Markdown after checking GBrain first, expanding graph context, and
using QMD only as fallback/source support. It does not inject anything on its

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Don’t document QMD as non-blocking fallback

For OpenClaw setups where GBrain is installed but QMD is missing or unhealthy, this documented default command will still invoke QMD and exit non-zero: recallBundle runs QMD whenever includeQmd is not disabled and computes ok as gbrainCommand.ok && (!includeQmd || engines.qmd.ok) && ... in modules/jarvos-gbrain/src/index.js lines 948-971. Calling QMD “only as fallback/source support” makes the default integration sound non-blocking, but runtime adapters following this text need to pass --no-qmd or the recall command can fail despite successful GBrain results.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Fixed in 809e203. The OpenClaw docs now state that QMD is enabled by default and that missing/unhealthy QMD makes the bundle unhealthy even when GBrain succeeds; GBrain-only runtime calls are documented with --no-qmd. The release readiness check now requires --no-qmd to stay documented.

@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

🧹 Nitpick comments (1)
docs/architecture/jarvos-architecture.md (1)

79-81: 💤 Low value

Minor style observation: three consecutive list items starting with the same pattern.

LanguageTool flagged that three consecutive bullet points start with "@jarvos/" or a similar package/component pattern. While the content is clear and accurate, you might consider varying the sentence structure for improved readability.

🤖 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 `@docs/architecture/jarvos-architecture.md` around lines 79 - 81, The three
consecutive bullets start similarly and hurt readability; rephrase the list
items to vary sentence openings while preserving meaning — e.g., keep the first
as "`@jarvos/gbrain` owns the GBrain-first structured resolver and curated pages
for GBrain" but change the second to start with "QMD functions as a fast broad
vault-search and exact source-note dependency, not the graph layer" and the
third to "OpenClaw's `memory-wiki` acts as a native runtime
diagnostic/compiled-wiki layer rather than the primary GBrain import source,"
referencing `@jarvos/gbrain`, QMD, and OpenClaw `memory-wiki` so reviewers can
locate and update the three bullets.
🤖 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 `@scripts/release-readiness-check.js`:
- Around line 156-159: The current gbrainCorpus construction uses readText
inside .map and will throw if a file exists but is unreadable; wrap the readText
call for each file (referencing gbrainNarrativeFiles, exists, readText, and
gbrainCorpus) in a try/catch so a read error does not crash the script — on
error capture the filename and error and add a structured readiness failure (or
a placeholder message) to the readiness results, and continue processing the
remaining files; ensure gbrainCorpus still joins only successfully read file
contents while failures are recorded for reporting.

---

Nitpick comments:
In `@docs/architecture/jarvos-architecture.md`:
- Around line 79-81: The three consecutive bullets start similarly and hurt
readability; rephrase the list items to vary sentence openings while preserving
meaning — e.g., keep the first as "`@jarvos/gbrain` owns the GBrain-first
structured resolver and curated pages for GBrain" but change the second to start
with "QMD functions as a fast broad vault-search and exact source-note
dependency, not the graph layer" and the third to "OpenClaw's `memory-wiki` acts
as a native runtime diagnostic/compiled-wiki layer rather than the primary
GBrain import source," referencing `@jarvos/gbrain`, QMD, and OpenClaw
`memory-wiki` so reviewers can locate and update the three bullets.
🪄 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

Run ID: 4f7621d8-a2e7-490f-a5c3-d79c61b44c37

📥 Commits

Reviewing files that changed from the base of the PR and between 293207e and 809e203.

📒 Files selected for processing (9)
  • CHANGELOG.md
  • README.md
  • docs/architecture/jarvos-architecture.md
  • docs/releases/v0.1.0.md
  • modules/README.md
  • modules/jarvos-gbrain/README.md
  • modules/jarvos-gbrain/package.json
  • runtimes/openclaw/README.md
  • scripts/release-readiness-check.js

Comment on lines +156 to +159
const gbrainCorpus = gbrainNarrativeFiles
.filter((file) => exists(file))
.map((file) => `${file}\n${readText(file)}`)
.join('\n\n');

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Handle unreadable narrative files without crashing the check.

Line 156–159 can throw if a file exists but cannot be read, which aborts the whole script instead of returning a structured readiness failure.

Suggested fix
-  const gbrainCorpus = gbrainNarrativeFiles
-    .filter((file) => exists(file))
-    .map((file) => `${file}\n${readText(file)}`)
-    .join('\n\n');
+  let gbrainCorpus = '';
+  try {
+    gbrainCorpus = gbrainNarrativeFiles
+      .filter((file) => exists(file))
+      .map((file) => `${file}\n${readText(file)}`)
+      .join('\n\n');
+  } catch (error) {
+    fail('GBrain-first release narrative files', `Unreadable file: ${error.message}`);
+  }
🤖 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 `@scripts/release-readiness-check.js` around lines 156 - 159, The current
gbrainCorpus construction uses readText inside .map and will throw if a file
exists but is unreadable; wrap the readText call for each file (referencing
gbrainNarrativeFiles, exists, readText, and gbrainCorpus) in a try/catch so a
read error does not crash the script — on error capture the filename and error
and add a structured readiness failure (or a placeholder message) to the
readiness results, and continue processing the remaining files; ensure
gbrainCorpus still joins only successfully read file contents while failures are
recorded for reporting.

@levineam

Copy link
Copy Markdown
Owner Author

Closing as superseded before the v0.1 final audit. The release-required jarvOS repo work landed in #39 at 97f2177 (docs(SUP-1694): make v0.1 GBrain-first release-ready), and the separate README positioning lane is tracked in levineam/clawd#353.\n\nThis branch is now diverged/CONFLICTING against main and should not be used for the v0.1.0 release. No changelog date, tag, or GitHub Release is being created from this disposition task.

@levineam levineam closed this May 15, 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.

1 participant