Skip to content

docs: split runtimes.md into a user page and an implementer page - #6574

Merged
waynesun09 merged 4 commits into
agent/6571-add-xai-vertex-providerfrom
docs/runtimes-restructure
Aug 25, 2026
Merged

docs: split runtimes.md into a user page and an implementer page#6574
waynesun09 merged 4 commits into
agent/6571-add-xai-vertex-providerfrom
docs/runtimes-restructure

Conversation

@waynesun09

Copy link
Copy Markdown
Member

Stacked on #6572 — review that first; this branch targets its head, not main.

docs/runtimes.md served two audiences at once. At 8,588 words, the most user-relevant content — how to select a runtime and a model — sat at line 314 of 376, behind the security feature matrix, the runtime interface contract, the sandbox hook wire protocol and the workspace layout. Several single bullets ran past 3,900 characters.

Before After
docs/runtimes.md 376 lines / 8,588 words ~240 lines / ~1,700 words
docs/contributing/runtime-implementation.md ~255 lines

The user page is reordered the way someone arrives: what a runtime is → choosing between claude and pi → selecting one → models → running pi → troubleshooting. Troubleshooting is new and covers failures that are hard to diagnose from their symptoms — a silently dropped extension, No API key found, a 403 from the wrong project, and a model misreporting which model it is.

The contributor page takes the moved content verbatim, including the pi verification provenance: which version of pi's source each claim was checked against and what to re-check on a bump. Nothing was deleted.

Two diagrams are new: how runtime/model override precedence resolves, and how each Vertex provider resolves its own GCP project from one set of ADC credentials. The second documents behaviour that was not written down anywhere and explains why an explicitly-set XAI_VERTEX_PROJECT_ID is left alone.

Test plan

  • make lint-md-links — 0 errors across 1,825 links, fragments included
  • Inbound anchors repointed: ADR 0090 (#sandbox-hook-contract), the local-run guide (#pi-specific-known-constraints-6464) and the choosing-a-runtime guide (#selecting-and-overriding) all resolved to moved sections
  • New page indexed in AGENTS.md's contributing table
  • Claims audited against the branch: all 7 FULLSEND_* env var names, the validModelName regex and all 4 metrics.json fields exist as documented
  • Site preview checked with a browser — see below

runtimes.md served two audiences at once and served neither well: 8,588
words in which the most user-relevant content -- how to select a runtime and
a model -- sat at line 314 of 376, behind the security feature matrix, the
runtime interface contract, the sandbox hook wire protocol and the workspace
layout. Several single bullets ran past 3,900 characters.

The user page is now 1,690 words and ordered the way someone actually
arrives: what a runtime is, choosing between claude and pi, selecting one,
models, running pi, troubleshooting. Selection moved to the top. A
troubleshooting section is new, covering the failures that are hard to
diagnose from their symptoms -- a silently dropped extension, "No API key
found", a 403 from the wrong project, and a model misreporting which model
it is.

Contributor content moved verbatim to docs/contributing/runtime-implementation.md
rather than being deleted: the security matrix, fail modes, interface
contract, hook contract and wire protocol, workspace layout, agent rule
layering, dummy ops, and the pi verification provenance -- which version of
pi's source each claim was checked against, and what to re-check on a bump.
Inbound anchors from ADR 0090, the local-run guide and the
choosing-a-runtime guide are repointed; make lint-md-links passes with zero
errors.

Two diagrams are new: how the runtime/model override precedence resolves,
and how each Vertex provider resolves its own GCP project from one set of
ADC credentials -- the second documents behaviour that was not written down
anywhere, and explains why an explicitly-set XAI_VERTEX_PROJECT_ID is left
alone.

Assisted-by: Claude (docs)
Signed-off-by: Wayne Sun <gsun@redhat.com>
@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown

Site preview

Preview: https://6a984b04-site.fullsend-ai.workers.dev

Commit: 4b44fa035a303431520f629a54273cd32e7eca45

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Split runtimes docs into user guide and runtime implementer guide

📝 Documentation 🕐 20-40 Minutes

Grey Divider

AI Description

• Split docs/runtimes.md into a user-focused page and a new runtime implementer guide.
• Repoint inbound links/anchors to moved sections and index the new contributor doc.
• Add troubleshooting and precedence/project-resolution diagrams for runtime/model selection.
Diagram

graph TD
  E["choosing-a-runtime.md"] --> A["docs/runtimes.md (user)"] --> B["runtime-implementation.md (impl)"]
  F["running-agents-locally.md"] --> A
  C["AGENTS.md"] --> B
  D["ADR 0090"] --> B
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Keep single page with explicit audience sections + TOC
  • ➕ Avoids breaking inbound anchors/links across multiple docs
  • ➕ Single search target for all runtime-related info
  • ➖ Continues mixing user and implementer concerns; users still wade through deep implementation details
  • ➖ Harder to keep scannable; page will keep growing
2. Split further by runtime (Claude vs pi) plus separate shared concepts
  • ➕ Users can jump directly to the runtime they run
  • ➕ Keeps provider-specific details isolated
  • ➖ More pages to maintain; higher risk of duplication for shared concepts like overrides and model selection
  • ➖ Navigation burden increases for contributors who need cross-runtime comparisons

Recommendation: Current approach (two pages split by audience) is the best trade-off: it makes user guidance immediately discoverable while preserving implementer details verbatim and keeping security/contract content in a single contributor-focused place. The remaining key risk is anchor integrity; the PR already mitigates this by explicitly repointing known inbound anchors.

Files changed (6) +437 / -320

Documentation (6) +437 / -320
AGENTS.mdIndex new runtime implementation contributor doc +1/-0

Index new runtime implementation contributor doc

• Adds a new row to the contributing docs table pointing to 'docs/contributing/runtime-implementation.md' for runtime backend work.

AGENTS.md

0090-runtime-neutral-sandbox-hooks-contract.mdRepoint sandbox hook contract links to new implementer page +3/-3

Repoint sandbox hook contract links to new implementer page

• Updates references that previously pointed into 'docs/runtimes.md#sandbox-hook-contract' to the new 'docs/contributing/runtime-implementation.md#sandbox-hook-contract' anchor.

docs/ADRs/0090-runtime-neutral-sandbox-hooks-contract.md

runtime-implementation.mdAdd implementer-focused runtime backend guide +255/-0

Add implementer-focused runtime backend guide

• Introduces a new contributor page collecting runtime implementation material: security feature matrix, runtime interfaces, sandbox hook contract/wire protocol, sandbox workspace layout, and pi runtime verification provenance.

docs/contributing/runtime-implementation.md

choosing-a-runtime.mdUpdate runtime selection link to new section title +1/-1

Update runtime selection link to new section title

• Adjusts the 'runtimes.md' anchor reference to match the renamed/reorganized runtime/model selection section.

docs/guides/getting-started/choosing-a-runtime.md

running-agents-locally.mdUpdate pi runtime anchor after runtimes doc restructure +1/-1

Update pi runtime anchor after runtimes doc restructure

• Repoints the link for pi background/constraints to the new 'runtimes.md#running-pi' section.

docs/guides/user/running-agents-locally.md

runtimes.mdRefocus runtimes doc on user workflow (selection, models, pi, troubleshooting) +176/-315

Refocus runtimes doc on user workflow (selection, models, pi, troubleshooting)

• Reorders and condenses 'runtimes.md' into a user-first flow (what a runtime is, choosing claude vs pi, selection precedence, models, running pi, troubleshooting) and moves deep implementation/security content to the new contributor page. Adds new diagrams for override precedence and per-provider GCP project resolution, and updates related-doc links accordingly.

docs/runtimes.md

@fullsend-ai-review

fullsend-ai-review Bot commented Aug 25, 2026

Copy link
Copy Markdown

🤖 Review · ⚠️ Cancelled · Started 12:43 AM UTC · Ended 12:46 AM UTC

Commit: f63b61a · View workflow run →

The single runtimes page was still doing too much: a reader on Claude Code
had to scroll past pi's provider table, its behaviour differences and its
troubleshooting to reach the config-key mapping, and a reader on pi had no
page to land on.

Split by audience again, one level down:

- /runtimes (923 words) -- what a runtime is, choosing between claude and pi,
  selecting one, where the selection appears, harness config keys.
- /runtimes/pi (927 words) -- models and providers including the per-provider
  GCP project behaviour, the at-a-glance table, behaviour differences and
  troubleshooting.

Sidebar "Runtimes" becomes a collapsible section with the pi page under it,
matching the Agents section below it. /docs/runtimes is added to the Guides
search scope: docs/doc-site.md notes that a docs/ subfolder missing from
every scope becomes unreachable whenever a scope pill is active, which a new
subfolder would otherwise trip.

make lint-md-links passes with zero errors; the inbound anchors from the
local-run guide and the implementer page are repointed at the pi page.

Assisted-by: Claude (docs)
Signed-off-by: Wayne Sun <gsun@redhat.com>
@qodo-code-review

qodo-code-review Bot commented Aug 25, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (3) 📘 Rule violations (0) 📜 Skill insights (3)

Grey Divider


Action required

1. Guide missing prerequisites section 📜 Skill insight ✧ Quality
Description
docs/guides/getting-started/choosing-a-runtime.md contains procedural numbered steps but does not
include a clearly labeled Prerequisites section before those steps. Readers may start the
procedure without required setup/context.
Code

docs/guides/getting-started/choosing-a-runtime.md[24]

+3. **Per run — trying without changing the repo.** `fullsend run --runtime pi --model google-vertex/gemini-2.5-flash`, or the `FULLSEND_RUNTIME` / `FULLSEND_MODEL` / `FULLSEND_EFFORT` environment variables (flag beats environment beats config). In CI the same names work as repository variables. Reference: [fullsend run](../../cli/run.md) and [Runtimes — selecting and overriding](../../runtimes.md#selecting-a-runtime-and-model).
Relevance

●●● Strong

A recent guide review accepted adding a prerequisites section before procedural steps.

PR-#6455

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
PR Compliance ID 1062078 requires guides with procedures to include a prerequisites section before
step 1. The guide shows a numbered list of steps but has no Prerequisites section above it.

docs/guides/getting-started/choosing-a-runtime.md[13-25]
Skill: writing-user-docs

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
This guide includes a numbered procedure but lacks a clearly labeled `## Prerequisites` section before the steps.

## Issue Context
The procedure starts under `## When and how the runtime is selected` with steps, but there is no prerequisites section earlier in the document.

## Fix Focus Areas
- docs/guides/getting-started/choosing-a-runtime.md[1-25]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Opencode listed as runtime 🐞 Bug ≡ Correctness
Description
docs/runtimes.md lists opencode as a runtime, but the CLI/config only allow claude, pi, and
dummy, so users who try --runtime opencode or runtime: opencode will fail validation.
Code

docs/runtimes.md[R9-12]

+| **`claude`** | Production agent runs (Claude Code) | Default |
+| **`pi`** | Second runtime, opt-in per org/repo — [more models, incl. Grok and Gemini](#models) | Supported for `triage`, `prioritize`, `code`, `fix` |
+| `dummy` | Behaviour tests — scripted ops, no inference | Internal |
+| `opencode` | Not yet functional | Stub |
Relevance

●● Moderate

The runtime mismatch is concrete, but history shows the team has intentionally documented OpenCode
as a stub.

PR-#6035
PR-#1780

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The docs explicitly list opencode as a runtime, but the code’s allowed runtime set
(ValidRuntimes) does not include it, and the CLI runtime override validation enforces that same
set.

docs/runtimes.md[7-13]
internal/config/config.go[204-208]
internal/cli/run_overrides.go[106-115]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`docs/runtimes.md` currently lists `opencode` in the runtime table, implying it is a recognized/runtime choice. In code, `opencode` is intentionally excluded from `config.ValidRuntimes()` and therefore rejected for flags/env/config.

### Issue Context
This is user-facing documentation and will cause immediate confusion because the first attempt to set `runtime: opencode` (or `--runtime opencode`) fails at validation time.

### Fix Focus Areas
- docs/runtimes.md[7-13]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

3. ADR matrix location outdated 🐞 Bug ≡ Correctness
Description
ADR 0090 still tells readers to record runtime hook absence in the docs/runtimes.md security
matrix, but this PR moved the security matrix into docs/contributing/runtime-implementation.md,
leaving the ADR guidance incorrect.
Code

docs/ADRs/0090-runtime-neutral-sandbox-hooks-contract.md[60]

+  documented in [runtimes.md](../contributing/runtime-implementation.md#sandbox-hook-contract).
Relevance

●●● Strong

Recent ADR precedent accepts correcting stale cross-references after documentation moves.

PR-#6036
PR-#5685

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
ADR 0090 still names docs/runtimes.md as the location of the security feature matrix, while the
new implementer doc contains the matrix and instructs contributors to fill it in there.

docs/ADRs/0090-runtime-neutral-sandbox-hooks-contract.md[54-67]
docs/contributing/runtime-implementation.md[10-18]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
ADR 0090 references the security feature matrix as living in `docs/runtimes.md`, but the matrix has been moved to the new implementer doc. This makes the ADR’s “where to record it” guidance wrong.

### Issue Context
This PR updates ADR 0090 links to point at the new sandbox hook contract section, which is consistent with the move, but the ADR still points at the old matrix location.

### Fix Focus Areas
- docs/ADRs/0090-runtime-neutral-sandbox-hooks-contract.md[54-67]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


4. Broken mermaid escape sequence 🐞 Bug ≡ Correctness
Description
The pi invocation mermaid diagram in docs/contributing/runtime-implementation.md contains
#lt;/dev/null instead of a correct escape/markup for </dev/null, so it will render incorrectly
and contradicts the correct text description later in the same section.
Code

docs/contributing/runtime-implementation.md[R223-226]

+  X["exit 97\npi never starts unhooked\n(Run refuses earlier, exit -1,\nif the manifest has no hook plan)"]
+  E["source .env\nunset ANTHROPIC_*\npin GOOGLE_CLOUD_PROJECT"]
+  P["pi --print --mode json --no-approve\n--no-extensions [-e vertex, on Vertex] -e hooks\n--tools … --model … #lt;/dev/null"]
+  S["parsePiStream\nexactly one ResultEvent\nexit 0 + stream error ⇒ run fails"]
Relevance

●●● Strong

This is a deterministic documentation rendering typo in a newly added diagram.

PR-#6515
PR-#6508

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The diagram node label shows #lt;/dev/null, while the prose below references the correct
</dev/null redirect, demonstrating the diagram is the inconsistent/incorrect one.

docs/contributing/runtime-implementation.md[219-226]
docs/contributing/runtime-implementation.md[239-243]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
A mermaid node label includes the literal string `#lt;/dev/null`, which appears to be a mistaken HTML escape for `</dev/null`.

### Issue Context
Later text in the same section uses the correct `</dev/null` form, so the diagram is inconsistent and likely a typo.

### Fix Focus Areas
- docs/contributing/runtime-implementation.md[219-226]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Informational

5. Guide outside admin/user dirs 📜 Skill insight ⌂ Architecture
Description
docs/guides/getting-started/choosing-a-runtime.md is a guide but is not placed under
docs/guides/admin/ or docs/guides/user/ as required. This breaks the required documentation
structure and makes guide categorization inconsistent.
Code

docs/guides/getting-started/choosing-a-runtime.md[24]

+3. **Per run — trying without changing the repo.** `fullsend run --runtime pi --model google-vertex/gemini-2.5-flash`, or the `FULLSEND_RUNTIME` / `FULLSEND_MODEL` / `FULLSEND_EFFORT` environment variables (flag beats environment beats config). In CI the same names work as repository variables. Reference: [fullsend run](../../cli/run.md) and [Runtimes — selecting and overriding](../../runtimes.md#selecting-a-runtime-and-model).
Relevance

● Weak

Recent reviews explicitly rejected relocating guides from dev/infrastructure despite the stated
admin/user taxonomy.

PR-#5454
PR-#5502
PR-#5944

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
PR Compliance ID 1062077 requires every docs/guides/ document to live under either admin/ or
user/. The modified guide remains under docs/guides/getting-started/, which is neither, as shown
by the file path and its content.

docs/guides/getting-started/choosing-a-runtime.md[1-25]
Skill: writing-user-docs

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
A guide file is located under `docs/guides/getting-started/` instead of `docs/guides/user/` or `docs/guides/admin/`, violating the required guide directory structure.

## Issue Context
This PR modifies `docs/guides/getting-started/choosing-a-runtime.md`, so the guide should be brought into compliance as part of this change.

## Fix Focus Areas
- docs/guides/getting-started/choosing-a-runtime.md[1-40]
- docs/guides/getting-started/choosing-a-runtime.md[20-40]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


6. Planned feature not callout 📜 Skill insight ≡ Correctness
Description
docs/runtimes.md documents the opencode runtime as "Not yet functional" without using the
required > **Planned:** callout format and without an issue link. This can mislead readers and
does not meet the planned-feature documentation standard.
Code

docs/runtimes.md[R11-12]

+| `dummy` | Behaviour tests — scripted ops, no inference | Internal |
+| `opencode` | Not yet functional | Stub |
Relevance

● Weak

A closely matching recent request to replace stub wording with Planned callout and issue link was
explicitly rejected.

PR-#6035

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
PR Compliance ID 1062082 requires mentions of not-yet-implemented features to use a > **Planned:**
callout and include an issue link. The added opencode row states it is not functional but provides
neither the callout nor an issue link.

docs/runtimes.md[7-13]
Skill: writing-user-docs

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
A not-yet-implemented capability is documented without the required `> **Planned:**` callout format and without a link to the tracking issue.

## Issue Context
The runtimes table includes an `opencode` entry labeled `Not yet functional`.

## Fix Focus Areas
- docs/runtimes.md[7-14]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Context sources
✅ Compliance rules (platform): 59 rules
Review mode: ⚖️ Balanced

Grey Divider

Tip of the day
💡 Did you know, you can hide the parts of a finding you never read, like the evidence or the agent prompt

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

1. **Next step — Configuring GitHub.** `fullsend github setup <owner/repo>` asks which runtime to use when run from a terminal; press Enter to keep `claude`. Passing `--runtime` skips the prompt. The setup PR it opens records the choice in `.fullsend/config.yaml` and describes how to change it. Nothing runs on this page — continue with [Configuring GitHub](configuring-github.md).
2. **Later — changing it.** Edit `runtime:` in the repo's `.fullsend/config.yaml` (the setup PR shows the key), or re-run `fullsend github setup <owner/repo> --runtime <claude|pi>`. Fleets managed through `repos.yaml` set `defaults.runtime` (or a per-entry `runtime`) — `fullsend repos set-default defaults.runtime pi` — and run `fullsend repos install`; see [fullsend repos](../../cli/repos.md).
3. **Per run — trying without changing the repo.** `fullsend run --runtime pi --model google-vertex/gemini-2.5-flash`, or the `FULLSEND_RUNTIME` / `FULLSEND_MODEL` / `FULLSEND_EFFORT` environment variables (flag beats environment beats config). In CI the same names work as repository variables. Reference: [fullsend run](../../cli/run.md) and [Runtimes — selecting and overriding](../../runtimes.md#selecting-and-overriding).
3. **Per run — trying without changing the repo.** `fullsend run --runtime pi --model google-vertex/gemini-2.5-flash`, or the `FULLSEND_RUNTIME` / `FULLSEND_MODEL` / `FULLSEND_EFFORT` environment variables (flag beats environment beats config). In CI the same names work as repository variables. Reference: [fullsend run](../../cli/run.md) and [Runtimes — selecting and overriding](../../runtimes.md#selecting-a-runtime-and-model).

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

2. Guide missing prerequisites section 📜 Skill insight ✧ Quality

docs/guides/getting-started/choosing-a-runtime.md contains procedural numbered steps but does not
include a clearly labeled Prerequisites section before those steps. Readers may start the
procedure without required setup/context.
Agent Prompt
## Issue description
This guide includes a numbered procedure but lacks a clearly labeled `## Prerequisites` section before the steps.

## Issue Context
The procedure starts under `## When and how the runtime is selected` with steps, but there is no prerequisites section earlier in the document.

## Fix Focus Areas
- docs/guides/getting-started/choosing-a-runtime.md[1-25]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment thread docs/runtimes.md Outdated
Comment on lines +9 to +12
| **`claude`** | Production agent runs (Claude Code) | Default |
| **`pi`** | Second runtime, opt-in per org/repo — [more models, incl. Grok and Gemini](#models) | Supported for `triage`, `prioritize`, `code`, `fix` |
| `dummy` | Behaviour tests — scripted ops, no inference | Internal |
| `opencode` | Not yet functional | Stub |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

4. Opencode listed as runtime 🐞 Bug ≡ Correctness

docs/runtimes.md lists opencode as a runtime, but the CLI/config only allow claude, pi, and
dummy, so users who try --runtime opencode or runtime: opencode will fail validation.
Agent Prompt
### Issue description
`docs/runtimes.md` currently lists `opencode` in the runtime table, implying it is a recognized/runtime choice. In code, `opencode` is intentionally excluded from `config.ValidRuntimes()` and therefore rejected for flags/env/config.

### Issue Context
This is user-facing documentation and will cause immediate confusion because the first attempt to set `runtime: opencode` (or `--runtime opencode`) fails at validation time.

### Fix Focus Areas
- docs/runtimes.md[7-13]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

vocabulary. Claude's `GenerateClaudeSettings` is rendered from `HookPlan`
so the two cannot diverge. The stdin/stdout/exit-code wire protocol is
documented in [runtimes.md](../runtimes.md#sandbox-hook-contract).
documented in [runtimes.md](../contributing/runtime-implementation.md#sandbox-hook-contract).

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Remediation recommended

5. Adr matrix location outdated 🐞 Bug ≡ Correctness

ADR 0090 still tells readers to record runtime hook absence in the docs/runtimes.md security
matrix, but this PR moved the security matrix into docs/contributing/runtime-implementation.md,
leaving the ADR guidance incorrect.
Agent Prompt
### Issue description
ADR 0090 references the security feature matrix as living in `docs/runtimes.md`, but the matrix has been moved to the new implementer doc. This makes the ADR’s “where to record it” guidance wrong.

### Issue Context
This PR updates ADR 0090 links to point at the new sandbox hook contract section, which is consistent with the move, but the ADR still points at the old matrix location.

### Fix Focus Areas
- docs/ADRs/0090-runtime-neutral-sandbox-hooks-contract.md[54-67]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +223 to +226
X["exit 97\npi never starts unhooked\n(Run refuses earlier, exit -1,\nif the manifest has no hook plan)"]
E["source .env\nunset ANTHROPIC_*\npin GOOGLE_CLOUD_PROJECT"]
P["pi --print --mode json --no-approve\n--no-extensions [-e vertex, on Vertex] -e hooks\n--tools … --model … #lt;/dev/null"]
S["parsePiStream\nexactly one ResultEvent\nexit 0 + stream error ⇒ run fails"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Remediation recommended

6. Broken mermaid escape sequence 🐞 Bug ≡ Correctness

The pi invocation mermaid diagram in docs/contributing/runtime-implementation.md contains
#lt;/dev/null instead of a correct escape/markup for </dev/null, so it will render incorrectly
and contradicts the correct text description later in the same section.
Agent Prompt
### Issue description
A mermaid node label includes the literal string `#lt;/dev/null`, which appears to be a mistaken HTML escape for `</dev/null`.

### Issue Context
Later text in the same section uses the correct `</dev/null` form, so the diagram is inconsistent and likely a typo.

### Fix Focus Areas
- docs/contributing/runtime-implementation.md[219-226]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@fullsend-ai-review

fullsend-ai-review Bot commented Aug 25, 2026

Copy link
Copy Markdown

🤖 Review · ⚠️ Cancelled · Started 12:48 AM UTC · Ended 12:50 AM UTC

Commit: f7ea3ae · View workflow run →

…line

A Runtimes section with a single child read as unfinished -- every other
sidebar section here has several -- and made the default runtime look
second-class next to the opt-in one.

Claude Code now has a sibling page rather than a stub. The content was real
and scattered: model aliases and FULLSEND_FALLBACK_MODELS (stranded in the
overview's selection section), --agent replacing the system prompt where pi
appends, native sub-agents, the CLAUDE.md bridge, the failed-tool-call
sanitizing limit, and the repo .claude/settings.json auto-load caveat --
several of which only existed on the implementer page.

The comparison stays on the overview; the runtime pages hold operational
detail, so the fallback-chain mechanics live in exactly one place.

Also fixes a nesting bug from the previous commit: renaming "Running pi" to
"At a glance" silently demoted "Behaviour differences worth knowing" and
"Not yet exercised" to children of the table above them, which is the wrong
outline and renders wrongly in the page TOC. Both promoted back to H2.

Assisted-by: Claude (docs)
Signed-off-by: Wayne Sun <gsun@redhat.com>
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 25, 2026

Copy link
Copy Markdown

🤖 Review · ⚠️ Cancelled · Started 12:52 AM UTC · Ended 12:56 AM UTC

Commit: 4b44fa0 · View workflow run →

"Running pi" / "Running Claude Code" put a verb in front of every sidebar
entry, which reads oddly in a list of nouns next to Agents and Getting
Started, and buries the thing the reader is scanning for. The pages are now
"Pi" and "Claude Code" -- capitalised as titles, while prose keeps the
project's own lowercase "pi".

Link text across the overview, the implementer page and between the two
runtime pages follows.

Signed-off-by: Wayne Sun <gsun@redhat.com>
@waynesun09
waynesun09 merged commit cfc39d4 into agent/6571-add-xai-vertex-provider Aug 25, 2026
16 checks passed
@waynesun09
waynesun09 deleted the docs/runtimes-restructure branch August 25, 2026 00:56
@waynesun09

Copy link
Copy Markdown
Member Author

For the record: this was not merged to main. Its commits were fast-forwarded onto the base branch agent/6571-add-xai-vertex-provider, so GitHub saw the head commits present in the base and auto-closed this as merged.

The docs now ship with #6572, which is where they belong — the runtime pages describe the xai-vertex provider that PR adds.

@fullsend-ai-review

fullsend-ai-review Bot commented Aug 25, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 12:57 AM UTC · Completed 1:15 AM UTC

Commit: cfc39d4 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $7.68

@fullsend-ai-review

Copy link
Copy Markdown

Review skipped — this PR is already merged.

The /fs-review command only reviews open PRs/MRs.

Posted by fullsend pre-review check

@fullsend-ai-retro

fullsend-ai-retro Bot commented Aug 25, 2026

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 12:57 AM UTC · Completed 1:08 AM UTC

Commit: cfc39d4 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $4.20

@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #6574 — docs: split runtimes.md into a user page and an implementer page

What happened

PR #6574 was a human-authored docs restructuring by waynesun09 that split the monolithic docs/runtimes.md (376 lines, 8,588 words) into focused pages: a user-facing overview, runtime-specific pages for Claude Code and Pi, and a contributor-focused implementation guide. The PR was stacked on agent/6571-add-xai-vertex-provider (PR #6572) and merged via fast-forward onto its base branch, not directly into main.

Four commits were pushed over 24 minutes (00:31–00:55 UTC). Three review agent runs (32794652838, 32794934170, 32795213967) were dispatched and all three were cancelled by GitHub Actions' cancel-in-progress concurrency group (fullsend-review-fullsend-ai/fullsend-6574) — each new push superseded the previous run before it could complete. The PR was self-merged at 00:56 UTC. A fourth dispatch (32795562156) started seconds before merge; the review agent correctly detected the PR was already merged and skipped.

Net result: zero completed fullsend review agent runs. The only automated review came from Qodo, which posted 6 findings including two real bugs that shipped: a broken mermaid escape sequence (#lt; instead of &lt; in docs/contributing/runtime-implementation.md line 226) and an outdated ADR 0090 cross-reference still pointing to the old security matrix location in docs/runtimes.md.

Assessment

The workflow went reasonably well given its nature — a docs-only stacked PR by a repo member, targeting a non-main branch. The two bugs that shipped are minor rendering issues in contributor-facing documentation. The review agent's cancellation was caused by the standard cancel-in-progress concurrency model working as designed during rapid iteration, not by an agent failure. The system correctly handled the edge case of a review starting just before merge.

Evidence for existing issues

No new proposals

All identified improvements are already tracked in existing open issues. No novel proposals are warranted.

@fullsend-ai-review

Copy link
Copy Markdown

Review skipped — this PR is already merged.

The /fs-review command only reviews open PRs/MRs.

Posted by fullsend post-review check

waynesun09 added a commit that referenced this pull request Aug 25, 2026
…i, re-point the Pi page

The Pi runtime page (#6574) replaced the runtimes.md callout this PR
rewrote, so its two links now target #choosing-the-runtime. The override
table gains the per-agent agents: entry column and the precedence from
#6583, with a pointer to the durable per-agent section. v0.37.0 is the
first release that carries the pi runtime, so the build-from-main
bullet and the guides-index caveat are gone.

Assisted-by: Claude
Signed-off-by: Wayne Sun <ericbreeze@gmail.com>
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