Skip to content

Remove the ai.nimblebrain/context attach and the navigate/startChat actions - #103

Merged
mgoldsborough merged 2 commits into
mainfrom
bridge-context-and-action
Sep 26, 2026
Merged

mgoldsborough merged 2 commits into
mainfrom
bridge-context-and-action

Conversation

@mgoldsborough

Copy link
Copy Markdown
Contributor

The SDK side of retiring two NimbleBrain host extensions. Companion runtime PR: NimbleBrainInc/nimblebrain (bridge-context-and-action).

  • sendMessage(text, context) loses context. The ai.nimblebrain/context key it attached is retired, and the spec's ui/update-model-context carries app state instead. Migration: call updateModelContext({ … }), then sendMessage(text).
  • action() supports openApp and openConversation only. startChat duplicated ui/message, and navigate coupled apps to the host's URL layout.
  • Types, React hooks, tests, conformance pages, README and docs are updated. The CHANGELOG has an Unreleased Breaking entry with the migration steps.

Breaking: the next release should be a minor bump (0.22.0). Not bumped or tagged here.

Checks: npm run ci passes (561/561), conformance passes (36/36), and the docs build passes.

sendMessage sends the spec's text block alone. What the user is acting on
reaches the agent through updateModelContext, which the NimbleBrain host
attaches to the next turn. The NimbleBrain host serves openApp and
openConversation; startChat is sendMessage and navigate is openApp or
openLink.
@mgoldsborough

Copy link
Copy Markdown
Contributor Author

QA Review: bridge-context-and-action

Scope: 17 files, +55/−144 · worktree: .claude/worktrees/bridge-context-and-action · reviewed: 34f4c90
Risk: LOW
Why this exists: two NimbleBrain bridge extensions duplicate the spec (ui/message, ui/update-model-context) or tie apps to the host's URL layout; this is the SDK half of retiring them.

Critical (must fix)

None.

Fix in-PR (apply mechanically — no adjudication essay expected)

  • r1f1 [CHANGELOG.md:11,15] The Unreleased entry describes host behavior that is true only once the companion runtime PR (Bridge: retire ai.nimblebrain/context; action keeps openApp and openConversation nimblebrain#1278) deploys. On runtime main, web/src/components/AppWithChat.tsx:132 still pastes the chat context into the message as [App Context: …], and web/src/App.tsx:590 still handles startChat. So "the host no longer reads the chat context, so it had stopped reaching the agent" and "It ignores navigate and startChat" are false today. Fix: cut this release after #1278 is deployed, or change the wording to "the NimbleBrain host no longer reads…" with no past-tense claim. Both work. The wording is the smaller change.

Suggestions (optional)

None.

What Looks Good

  • It removes code and adds none. The _meta branch, the constant, the hook's second parameter and five tests go, and the one surviving test pins the new wire shape: no _meta on a NimbleBrain host (spec-compliance.test.ts).
  • Nothing is left behind. A grep for ai.nimblebrain/context, startChat, navigate actions, CHAT_CONTEXT and two-argument sendMessage across src/, python/, conformance/ and web/ finds only the CHANGELOG history.
  • Both migrations already work on the current host. openApp and openConversation are handled at web/src/App.tsx:587,595, and updateModelContext state reaches the prompt as <app-state> (src/prompt/compose.ts:957).
  • The vendored Python asset needs no re-vendor. The freshly built dist/synapse-ui.iife.global.js is byte-identical to python/nimblebrain_synapse/_assets/synapse-ui.iife.js.

Body claims

  • ✅ npm run ci passes 561/561. Reproduced: 37 files, 561 tests, exit 0.
  • ✅ The change is breaking and needs a minor bump. The removed parameter is public, and the CHANGELOG has a ### Breaking entry with migrations.
  • ⚠️ Conformance 36/36 and the docs build were not re-run here, because Chromium is not installed in this environment. The conformance change is a single argument.

Next step: the author answers with pr-adjudicate. The Critical bucket is empty, so this PR qualifies for qa-reviewed once r1f1 is applied or contested.

machine record
{
  "kind": "review", "pr": 103, "round": 1,
  "reviewed": "34f4c9006a04b0a8be5165d209df455017a2f1fc", "delta_base": null,
  "risk": "LOW", "stop_gate": "n/a",
  "verdict": "Correct subtraction; one CHANGELOG sentence depends on the runtime companion deploying first",
  "findings": [
    {"id": "r1f1", "bucket": "fix-in-pr", "file": "CHANGELOG.md", "line": 11,
     "claim": "CHANGELOG states the host already ignores the chat context and navigate/startChat; runtime main still reads both",
     "evidence": "reproduced",
     "receipt": "git grep on nimblebrain origin/main: AppWithChat.tsx:132 builds [App Context] prefix; App.tsx:590 startChat handler",
     "preconditions": null,
     "fix": "release after nimblebrain#1278 deploys, or reword without the past-tense claim",
     "scope": "peripheral"}
  ]
}

@mgoldsborough

Copy link
Copy Markdown
Contributor Author

Adjudication round 1: one fix applied, nothing contested · fixed at aac0987

Fix in-PR

r1f1 applied in aac0987. The CHANGELOG no longer says the host has already stopped reading the chat context or handling navigate and startChat. That depends on NimbleBrainInc/nimblebrain#1278 deploying.

Verification

CI run 36273293753 is green at aac0987. The change touches only the CHANGELOG.

machine record
{
  "kind": "adjudication", "pr": 103, "round": 1,
  "fixed_at": "aac098791d0d23f31de34a7e67b648ec1ec0362e",
  "verdicts": [
    {"id": "r1f1", "verdict": "valid", "premise": "verified",
     "resolution": "reworded CHANGELOG to drop the shipped-host claims, aac0987"}
  ],
  "ci": "success, run 36273293753"
}

@mgoldsborough mgoldsborough added the qa-reviewed QA review completed with no critical issues label Sep 26, 2026
@mgoldsborough
mgoldsborough merged commit 6a48e90 into main Sep 26, 2026
8 checks passed
@mgoldsborough
mgoldsborough deleted the bridge-context-and-action branch September 26, 2026 21:35
@mgoldsborough mgoldsborough mentioned this pull request Sep 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

qa-reviewed QA review completed with no critical issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant