Historical record
This page records what happened on a date, with its observed failures and limits. It is not a requirement for the current implementation. Current behaviour is in Status.
Documentation site
Updated: 2026-11-04.
Before this pass Rho had no online documentation: the only published surface was the downloads page at https://yulab-smu.top/Rho/, and the 49 documents in docs/ were readable only through GitHub's file view. This record covers the site that publishes them, what was checked, and what remains unverified.
What existed
| Surface | What it was |
|---|---|
https://yulab-smu.top/Rho/ | The gh-pages branch: a hand-written downloads page, .nojekyll and updates/{stable,development}.json plus updates/tauri/*, the update feeds a 0.4.0 desktop install reads |
npm @rho-workspace/rho | Published, version 0.5.2, but the registry record's readme field is the literal string ERROR: No README data found!, so the package page shows no description |
docs/ in the repository | 49 Markdown files, 12,078 lines, with 74 anchored links between them and 37 links that leave the directory for CONTRIBUTING.md, SECURITY.md, protocol/, scripts/ and output/ |
Two statements were stale and are corrected in this pass: README.md said npm publication had not been performed, and nothing said where documentation could be read.
What was built
docs/ stays the single source. scripts/docs-site.mjs copies every Markdown file into site/content/<section>/, rewrites its links so they resolve in the site, writes a navigation.json the theme reads, and records in links.json the source file and every rewritten link. A document that matches no section fails the run instead of disappearing from the site.
The three sections are a reading order, not a storage scheme:
- Concepts —
ARCHITECTURE,COLLABORATION,EXECUTION,TECHSTACK,DEVELOPMENT,ROADMAP,AGENT-ACTIVITY. - Reference —
HEADLESS,FRONTEND,STATUS,RELEASE,PLUGIN-AUTHORING. - Records — 36 episodes, acceptance records and earlier plans, ordered by the
Updated:date each one carries and grouped by month in the sidebar. Every record page opens with a banner saying it is a historical record and not a requirement.
The site is VitePress 1.6.4 with local full-text search. The landing page is an authored Vue component, not a theme preset: it uses the application's own palette and type from web/theme.css (accent #1e6b52, ink #202927, hairline #e1e6e3, system UI and mono faces, a Georgia display face matching the application's own ρ mark) and shows five real screenshots of Rho 0.5.2, four of them captured on the bundled PA14 quorum-sensing project.
The landing page states the version split (npm 0.5.2 against the 0.4.0 installers), names what is checked, what is limited and what is not established, and links to Status as the single summary rather than restating it.
What was observed
Built with npm run docs:build: 55 pages, 5.7 MB, 3–7 s, no dead links reported by VitePress with ignoreDeadLinks: false, and 280 links rewritten across the 49 documents. npm run docs:check compares the generated navigation against docs/ and passes.
Screenshots were taken with Playwright at 1440×900 and 390×834 and read back:
- The landing page renders its hero, screenshots, evidence bands and repository cards at both widths; the phone layout wraps the install command instead of clipping it.
- The documentation pages keep the 690 px measure, the sidebar and the outline; tables in
HEADLESSandCI-EPISODErender at full width. - Search returns
HEADLESS§ Budgets for "budget", with the matched table row in the detailed view. - A record page shows its historical banner above the title and the month grouping in the sidebar.
Defects found and fixed in this pass, all by looking at the screenshots: VitePress resolves its public directory as <srcDir>/public, so the first build shipped no images or logo (assets moved to site/content/public/); the hero headline wrapped to a one-word line (fixed with two block lines and text-wrap: balance); the feature screenshots at full window width were unreadable at their column size (cropped to the content area, shared 4:3 ratio); record summaries cut mid-clause (now cut at a sentence boundary, date prefix removed).
Limits
- No one outside this machine has read the site yet. Nothing here is a usability claim.
- The site is served from
gh-pagesunder/Rho/docs/; the download page,.nojekylland the fourupdates/*.jsonpaths are unchanged, so an installed 0.4.0 desktop client keeps its update feed. That preservation is the reason the site was added as a subdirectory instead of replacing the branch root. - The npm readme cannot be repaired for an already published version; the next publication carries
README.md, which the packed candidate already includes. docs/HEADLESS.mdstill titles itself "Rho local backend 0.5.1" while the package is 0.5.2. The title is published as written; changing it is a content decision for the owner, not a site one.- Two documents are withheld from the site:
docs/README.md(the site's own navigation replaces it) and the withdrawn 2026-10-26 design commission underdocs/design/, which the repository already treats as history rather than requirements.
Front page and demo
The root page at https://yulab-smu.top/Rho/ was still the hand-written 0.4.0 downloads page of 2026-08-18, while the current delivery is the npm package (0.5.3, published the same day as this pass, with provenance). This pass replaces it with a front page that carries the real interface, an install prompt for an Agent and example prompts, and keeps every download, checksum, signing and uninstall statement the old page made.
What was built
- Demo (
/Rho/demo/). The application's own WebUI build (site/demo/vite.config.tsreusesvite.config.tswith a relative base) withsite/demo/replay.jsrun before it. Every browser request isPOST /api/v2/<method>plus one event stream, so the script answers each method and input fromsite/demo/recording.jsonand keeps the stream open and quiet. A request the recording does not hold is refused asunavailablewith a notice; nothing is computed, saved or sent. Three fallbacks were needed: table pages are cut again from recorded rows, adocument.readof a document the walk opened answers with the opened buffer, and reads that differ only inlimitreturn the recorded list. - Recording.
scripts/demo-capture.mjsstarts this checkout's service on a new state, which copiesexample/pa14-qs, walks it withscripts/demo-tour.mjs(every answer on the Overview, the Agent panel, Studio and its three sessions, Graph, Console, Notebook, Skills, every source file, project settings and all twelve plugin pages) and keeps the last answer per method and input: 195 answers over 21 methods, 6.3 MB. Machine paths become/home/researcher/rho; the capture refuses to write if a home path, user name or credential-shaped field survives. The build used Rho-plugins1eb1d3e, clean and equal to itsorigin/main. - Front page (
site/home/index.html, assembled byscripts/pages-site.mjsintosite/.pageswith the demo and the documentation). The hero is the demo, opened on the project. The install prompts live insite/home/install-prompts.json, for Claude Code and for Codex, with the projects folder as a field (quoted, with$HOME, when it has spaces). The example prompts are the six requests the recording holds, with how long each took and what it wrote, and each plugin's ownexamplePrompts, read from its presentation at build time. The version shown is the registry's, not the checkout's.
What was observed
- The install prompts' commands were run on npm 0.5.3 in a throwaway
HOME:npm install -g, thenohup rho … &start (port chosen per start, JSON first in the log), the example copied into the projects folder, a start with--agent-backend codex-acp, andrho --grant, whose reply carries theclaude mcp addcommand and themcpentry Codex needs. No Agent has yet followed either prompt from start to finish, and Windows was not run. scripts/demo-check.mjsserves the tree under/Rho/as Pages does and walks the demo with the same tour at 1440 px, plus a phone pass at 390 px: 0 unanswered requests, 0 page errors, 0 failed assets. The first run left twodocument.readunanswered, which the opened-buffer fallback closed. On the front page it opens the install dialog, switches to Codex, types a folder with a space, compares the clipboard with the prompt shown, switches prompt sets and requests all 11 internal links.- Screenshots were read at 1440, 768 and 390 px. Fixed by looking: the demo first opened on the nearly empty project list (it now opens on the project's Overview), the closing sentence's folder field was clipped, terminal blocks scrolled sideways on a phone, the prompt-set tabs ran past the screen edge on a phone, and the demo's badge covered content inside the front page.
- In the shipped example, the Overview's "Files the Agent used" lists every file as missing and disabled. The recorded paths carry the project folder's name as a prefix (
PA14 quorum sensing/analysis/summary_figure.R), and the walk'sdocument.openandagent.activity.capturecalls used those paths. This is visible in the demo and was not changed here.
Limits
- The demo is a replay. Sending a message, editing, running, saving and paging a table past the recorded rows are refused, and times are the recording's. A change to the browser contract needs a new capture from the same commit as the demo build.
updates/*.jsonand.nojekyllongh-pagesare left as they were, so an installed 0.4.0 desktop client keeps its update feed; the deployment compares their checksums.- No one outside this machine has used the page or the demo yet.
The install prompt on a real machine
On 2026-11-03 the user shared one run of the Codex prompt, in Codex on another Mac with Node 26.10.0, and asked for the problems it exposed in Rho to be fixed before the prompt itself is changed. That run's own record is not on this machine; what it showed comes from its screenshot, and each cause below was found in the source and then run here.
What was observed
| In the run | Cause | Change |
|---|---|---|
Step 1 stopped on Node 26.10.0. Told to skip it, npm install -g finished in 4 s with one EBADENGINE warning, and Rho started | engines was >=22.22.0 <23, while 24 and 26 are the current LTS lines. Only Rho's own range is checked; the bundled plugins' ranges print nothing | >=22.22.0 <27; CI also installs the candidate on Linux x64 with Node 24 and 26 |
The nohup rho … & start left no running process; Codex then started Rho in the foreground | Not established. A check of which background processes outlive a Codex command was not run here: the session's permission check refused it | None |
Reading the prompt's later steps against the source found four more, each reproduced on the published 0.5.3 in a throwaway folder:
- A restart moved Rho to a new port, and the Agent's tools stopped working. Every start took a new port (53149, then 53161), while the connection file
--grantwrites keeps the address it was given, so Codex'srho_indexansweredDelivery outcome unknown. With--portfixed, the same grant worked across a restart. Now a start without--porttakes this state's last port; only when another program holds it does it take a new one, and each Agent connection file that named the old address is rewritten to the new one with its token.--port 0still always takes a new port. - Codex connected with
--grantshowed under Claude Code.--sessiondefaults toclaude-code, which the project page reads as Claude Code's grant, and the CLI records nomcp add, so even--session codexshows "Access only".rho --grant … --agent codex(orclaude-code) now does what the page's "Add to …" button does: the grant, that Agent's ownmcp removeandmcp add, and the record the page shows. - Refusals printed stack traces. A second start on a running state, a
--portalready in use, and--grantwhile Rho is stopped now print one line each: where Rho already runs, which port is taken, or that Rho is not running at its address. - The Agent was told the outcome was unknown when Rho was not running. Agent 0.4.28's bridge reports a refused connection as
unavailable, naming the address, withdelivered: false: no byte reached the service, so nothing ran. Other transport failures keep their unknown outcome.
Checks
- On a build of these changes, in a throwaway folder: a restart without
--portkept 58224; with 58224 held by another program the next start took 58283, the grant named 58283 andrho_indexanswered;--grant --agent codexran a stand-incodexwithmcp removeandmcp add; each refusal printed its one line. test/agent-connect.test.mjsgains the operator'ssession.connectand the restart and taken-port cases;test/cli-refusals.test.mjsruns the CLI's refusals; the writer-lock test intest/service.test.mjsnow expects the taken port as aconflictnaming it, and still checks that the failed start released its lock.- The full suite passed on Node 22.22.3, 24.22.2 and 26.13.0 (284 of 286, 2 skipped). One earlier run on 22 failed two timing-bound tests (a changed-file record and the bridge's waited Notebook call); both passed alone twice and in the next full run.
- A candidate packed from this tree (darwin-arm64 only, a debug Core, the dirty-tree override) passed
ci-install-check.mjson Node 24.22.2 and 26.13.0: offline install, its own Core, orderly stop, recovery 7 and the ordinary project 7. Installed on Node 26 it printed noEBADENGINE. - The bridge, pointed at a closed port, answered
unavailablewith the address where 0.4.27 answeredDelivery outcome unknown.
Not done
- The prompts are unchanged.
- Why the background start ended is not known, so no detached start was added.
- R and the example's packages are checked neither by the prompt nor by a start with folders: Rho's R session needs
jsonlite, and the example's scripts useggplot2,dplyr,tidyr,patchwork,scalesand Bioconductor'sDESeq2. - The writer lock on macOS and Linux needs Python 3. On a Mac without the Command Line Tools,
python3is only a prompt to install them; that start was not observed. codex mcp addadds the project's tools to every Codex session on the machine. Whether Codex sessions that Rho itself starts also load them was not checked.- Agent 0.4.28 is a Rho-plugins change; Rho composes it from Plugins
3b81626on. - Windows was not run, and CI has not run these changes.
Desktop installers taken off the front page
On 2026-11-04 the user asked for the front page's desktop installers section to be removed: the current desktop version has not been released, so a page offering 0.4.0 installers points visitors at a line that is not the current Rho. The section's table of 0.4.0 installers and checksums, its Windows code-signing statement and its uninstall notes are gone, with the header's Downloads link. The one line that applied to the npm package moved to the requirements table under "Or install it yourself" as an Uninstall row. The documentation home no longer points at a downloads page, and the README no longer calls the installers the earlier line.
What stays: the v0.4.0 GitHub Release and its assets, the footer's Code signing policy link, and updates/*.json with .nojekyll on gh-pages, so an installed 0.4.0 desktop app keeps its update feed. The demo was not rebuilt: it stays the build deployed from 5c28b441, which matches its recording.
Setup page and Agent skill
On 2026-11-04 the user asked for a skill kept outside Rho that guides an Agent to install Rho, use it, and apply it to different needs. Another pass had first answered the same request with rho.analysis-run, a Skill served inside Rho. The user then asked for a setup page, so that a first-time person need not paste the long install prompt and only says: "请阅读 https://yulab-smu.top/Rho/doc/setup.md 文档,按照步骤为我安装并配置 Rho。"
What was built
skills/rho/is an Agent Skill for the Agent's own skills folder:SKILL.mdand six references (install, connect, tools, analysis, needs, troubleshooting). It works before Rho is installed and marks the behaviour that appeared after the published 0.5.3.SETUP.mdis served as raw Markdown at https://yulab-smu.top/Rho/doc/setup.md. It has eight steps for the Agent:- Check the machine.
- Find an existing Rho.
- Install.
- Start on
~/Rho/projectsand~/Rho/state, the folders a start without flags uses after 0.5.3. - Install the skill from https://yulab-smu.top/Rho/skills/rho/SKILL.md.
- Connect itself to the example project.
- Check R.
- Report.
Windows has its own short section.
scripts/pages-site.mjscopies both into the pages tree. It refuses aSETUP.mdwhose download list differs from the files inskills/rho; a scratch copy missing one reference was refused before anything was built. CI treats both as documentation.
What was observed
The skill against npm 0.5.3. Its commands and reply shapes come from 0.5.3 installed in
/tmp, withrho --mcpdriven over JSON-RPC:- a 75 KB reply came back as a reference and was read by the paths
rho_readgave; - a released reference answered
not_found; waitMsheld a 45 s cell until it finished;- the same
changeIdreturned the same cell in 32 ms; ggsaveworked in a simple cell;--versiondoes not exist, and a start without flags exits 2;- a second start exited 1 with "Another Rho service holds …".
These runs corrected nine statements in the first draft. Among them were the version from which a restart keeps its port, the page size of
rho_readtext, and the stop command:pkill -f "--state-dir …"can match the shell that runs it, and[-]-state-dircannot.- a 75 KB reply came back as a reference and was read by the paths
A fresh Claude Code session. Claude Code 2.1.318 (Haiku 5.5) had only the skill, Rho's tools and file tools, with no shell. It answered an airquality question in the Notebook:
- it loaded the skill unprompted and read only the two references the task needed;
- 3
rho_index, 2rho_resolve(one a page continuation) and 6 cells, with 0 refusals; - 30 turns, 7.2 minutes and $0.29;
- it wrote its notes first, ran the whole script with
source()and checked the result files against memory; - it corrected a column it had computed wrongly, and added a sensitivity check that weakened its own conclusion.
The Overview showed the six runs, the figure and both tables. The Notebook gave each cell its purpose and "An Agent". This is one small task, not a rate, and it does not compare with the five papers.
SETUP.mdby hand. It was followed command by command on 0.5.3, in a throwawayHOMEand npm prefix, without--open:- the install took 5 s;
- the plain
nohup … &start still answered from a later command, and the example was copied; - the skill downloaded from a local copy of the pages tree into Claude Code's and Codex's folders, identical to
skills/rho; claude mcp add, run in the project folder, showed "✔ Connected" there and nothing elsewhere;- the Codex entry, started as configured, answered
rho_index; jsonlitewas found. The example-package check reportedcarandDESeq2missing only because the throwawayHOMEhid the person's R library; it reports nothing missing with the realHOME;- the stop command stopped that service and no other.
Limits
- No Agent has followed the setup page from the one-sentence prompt. A nested Agent with a shell and no approvals was refused by the session's permission check, so the page was followed by hand, not by a model.
- Codex was not run as an Agent; only its configuration commands were. Windows was not run.
- The front page's install prompts were not changed in this pass. They still used
~/rho-projectsand~/.rho-service, which the page and the skill recognise. They have since been replaced by the one sentence; see The front page asks for the sentence. - An Agent whose fetch tool summarises pages may miss commands. The page asks it to fetch the whole file with
curlwhen it has a summary.
On the site
On 2026-11-04 the user asked for SETUP.md and skills/ to be published from 9f72a931 as they are. The eight files were added to gh-pages in e4f4febb, taken from that commit with git show and git archive rather than from a working tree. The added blobs are the commit's own, and the deployment adds nothing else. index.html, demo/, docs/, img/, updates/*.json and .nojekyll were not changed.
After the Pages build of e4f4febb, curl fetched each address. All eight answered 200 with text/markdown; charset=utf-8 and were byte-identical to their files in 9f72a931:
Address under https://yulab-smu.top/Rho/ | Bytes |
|---|---|
doc/setup.md (SETUP.md) | 10353 |
skills/rho/SKILL.md | 5698 |
skills/rho/references/analysis.md | 6823 |
skills/rho/references/connect.md | 3404 |
skills/rho/references/install.md | 6479 |
skills/rho/references/needs.md | 3827 |
skills/rho/references/tools.md | 7275 |
skills/rho/references/troubleshooting.md | 5189 |
GitHub Pages serves them with cache-control: max-age=600. An address outside the skill answers 404, and the front page was the same byte for byte as before. Chromium opened doc/setup.md as text and did not download it.
Steps 3 to 5 were then run as the page writes them, against the live site, on npm 0.5.3 in a throwaway HOME and npm prefix. The install took 9 s. The nohup … & start answered 200 from a later command, and the example was copied. --open reached the browser command, which was replaced by a logging stand-in. The seven skill files downloaded from the site into .claude/skills/rho matched skills/rho in 9f72a931, and the page's stop command left no service for that state folder.
The front page asks for the sentence
The front page and its install dialog now give that one sentence, in English and in Chinese, each with a Copy button. The long Claude Code and Codex prompts, the Agent switch and the projects folder field are gone, since the setup page holds the commands and the folders. site/home/install-prompts.json holds the two sentences, and pages-site.mjs refuses one that does not name the setup page. The second beat lists the setup page's eight step headings, which the build reads from SETUP.md. Beside them is a terminal of steps 3 to 5 from the run above: it is shortened, and its note says so. The commands shown under "Or install it yourself" now use ~/Rho/projects and ~/Rho/state, the folders an Agent later looks for. The closing section gives the English sentence with its own Copy button, and the footer links the setup page.
Each beat used to be at least 86 % of the window tall, so that its two columns stayed in view while it was read. With only the two sentences in the first beat, that left about 480 px of blank below them at 1440 px. The beats now take their content's height and end 128 px after the taller column, and the shorter column still stays in view beside the taller one.
pages-site.mjs --home builds the front page alone. The deployment replaced only index.html, and demo/ and docs/ stayed as they were. The full build failed in this pass for an unrelated reason: the WebUI at 9f72a931 imports flowPath from the Notebook plugin, and the local Rho-plugins build no longer exports it.
Checks
scripts/demo-check.mjs(pages:check) withDEMO_NARROW=1, on the tree that was deployed, answered every demo request at 1440 and 390 px, with 0 page errors, 0 failed assets and all 12 internal links answering. Its front-page part now copies each sentence in the dialog and the closing one and compares the clipboard with the sentence shown. It also fails when a code block wraps a line or scrolls sideways at 390 px. Both checks fired on deliberately broken copies.- Measured in the browser at 1440 and 390 px, nothing in the install section, the closing or the footer goes past the right edge, and the page does not scroll sideways at 390 px. The dialog needs no scrolling (760 × 414 and 352 × 635 px), and the Copy button covers no command. The closing sentence takes two lines at 36 px and three at 20 px. In both sentences the address breaks only after a slash.
- Every command in the terminal, joined across its
\splits, appears inSETUP.mdat9f72a931as written. - In the same throwaway home,
npm uninstall -g @rho-workspace/rhotookrhooffPATHand left the example project, the state folder, the log and the skill folder, as the Uninstall row says. No MCP entry was made in that run, so the row's mention of it was not checked. - The install section, the closing and the dialog were looked at in screenshots at 1440 and 390 px.
- The skill's page inspector found 0 FAIL, and the lint found nothing in the source. The inspector warns about the page as a whole: three typefaces, eleven sizes, no video, the long recorded prompts, and the tiles at 768 px. All of these were there before this change.
Limits
- No person and no Agent has followed the page from the sentence.
- The terminal beside the steps is a shortened copy of one run, typed into the page, not recorded by the build.
The latest page and skill, and the Node row
Later on 2026-11-04 the user asked for the latest SETUP.md and skills/ to be published too, and pointed out that the front page limited Node more than Rho does. Its requirements row still said "22.22 or a later 22.x", although engines has been >=22.22.0 <27 since the install prompt on a real machine and the setup page asks for 22.22 or later, below 27.
gh-pages 02da85a9 replaced doc/setup.md and skills/ with their files at f82bc77a, again with git show and git archive. Since 9f72a931 the skill has gained references/screen-check.md and SKILL.md links it. The page's two download lists, one for macOS and Linux and one for Windows, name it, so each still lists exactly the skill's files, now eight. Only those three paths changed.
The row now reads "22.22 or later, below 27: Node 22, 24 or 26". It adds that version 0.5.3 on npm still declares 22.x only, so on 24 or 26 npm prints one EBADENGINE warning and installs it anyway, as it did in the Codex run on Node 26.10.0. The package on npm was not changed, so the warning stays until a release with the wider range is published. 49b0e262 changes the row, and gh-pages 29d20f0b replaced only index.html, built with pages-site.mjs --home.
The documentation's start page already gives >=22.22.0 <27. Its home page still introduces 0.5.2 and heads its start section "Node 22, R, and one of your own Agent clients"; docs/ was not rebuilt in this pass.
Checks
pages:checkwithDEMO_NARROW=1, on the tree that was deployed, answered every demo request at 1440 and 390 px, with 0 page errors, 0 failed assets, 0 front-page problems and all 12 internal links answering.- The row takes two lines at 1440 px and six at 390 px, ends inside the page's margins, and the page does not scroll sideways. It was looked at in screenshots at both widths.
- Every command in the terminal still appears in
SETUP.mdatf82bc77aas written. - The skill's page inspector found 0 FAIL and the same five warnings as before.
- GitHub had an incident with Actions and Pages, and both deployments waited about 25 minutes in its queue. It cancelled the run for
02da85a9, which29d20f0bcontains. After the Pages build of29d20f0b,curlfetched every address. The nine files answered200withtext/markdown; charset=utf-8, byte-identical tof82bc77a:doc/setup.mdis now 10439 bytes,SKILL.md5803 andreferences/screen-check.md3251, and the other six are as in the table above.index.htmlwas byte-identical to the build of49b0e262. - Between
6b8289e3and29d20f0bonly those four paths changed ongh-pages. The fourupdates/*.jsonfeeds and.nojekyllanswered byte-identical to the branch.
The documentation for 0.5.4
On 2026-11-05 the user asked for a new release and for the documentation to be fixed. The documentation's home page still introduced 0.5.2, in its eyebrow, its npm panel and two of its checked and limited items, and headed its start section "Node 22, R, and one of your own Agent clients". HEADLESS.md still titled itself "Rho local backend 0.5.1", which the reference navigation shows. The release itself is recorded in the CI episode.
- The home page takes the version from the registry, as the front page does:
pages-site.mjsasks npm before it builds anything and hands the version to VitePress asRHO_NPM_VERSION. A build without it names no version rather than this checkout's. Its items about releases now speak of every release since 0.5.2, and its start section is headed "Node 22, 24 or 26, R, and one of your own Agent clients", with the range in its text. - The start page gains "Or ask your Agent" with the sentence the front page gives, and its start command is now
rhoalone, which from 0.5.4 uses~/Rho/projectsand~/Rho/state; naming the folders is the second form. HEADLESS.mdis titled "Rho local backend".
The site's pages take the version from the registry, so they waited for npm to serve 0.5.4, which it did 55 minutes after accepting it. The front page's Node row then dropped its sentence about 0.5.3's range. The start page says what both versions do with no arguments.
The whole site was built from 2d97d763, with Plugins 2e53dc2 built from git archive; the build that had failed on flowPath passed. gh-pages bc4d0bea replaced index.html and docs/, which had last been deployed from 25107546 and so also gained the pages written since. demo/ stayed at its earlier build, and img/, doc/, skills/, the four updates/*.json feeds and .nojekyll were not changed.
Checks
docs:checkcovered 53 documents and 302 links, and the VitePress build, which fails on a dead link, passed.- A preview built with
RHO_NPM_VERSION=0.5.4was looked at in screenshots at 1440 and 390 px: the home page's hero and start section, the start page's new sections and the reference's title. No page scrolls sideways; at 390 px the long start command scrolls inside its code block. The first preview read@rho-workspace/rho0.5.4: Vue drops a whitespace-only text node at the start of a<template>, so the panel now writes the space outside it. A build without the variable shows the eyebrow without a version and the panel with the package name alone. pages:checkwithDEMO_NARROW=1, on the tree that was deployed, answered every demo request at 1440 and 390 px, with 0 page errors, 0 failed assets, 0 front-page problems and all 12 internal links answering. The page inspector found 0 FAIL and the same five warnings as before.- The deployed home page, start page, reference title and front-page Node row were looked at in screenshots at 1440 and 390 px. The Node row takes two lines and three, and no page scrolls sideways.
- After the Pages build of
bc4d0bea,curlfetched the 90 added or changed paths, each200and byte-identical to the branch, and the 25 removed or renamed paths answered404. The live pages name 0.5.4, and the feeds,.nojekyll, the setup page and the Skill answered byte-identical to the branch.
DeepSeek Harness plugin guide
2026-11-05. After dsh-rho 0.1.2 was installed and its source pushed, the user asked for Harness support on the documentation branch. The site's published integration record still described the earlier prototype, and the install page named only Claude Code and Codex. A reader had no current installation guide from either home page.
DeepSeek Harness plugin is now a reference page, also linked from the front page, documentation home, install page and its sidebar. It records the local tarball route, a project-scoped agent connection, complete Desktop profile overrides, Web's separate browser, both launcher entries and the explicit copy/paste handoff for a selected result. The install page distinguishes the Agent clients driven inside Rho from Harness as an external Agent. The guide pins the package build to the checked 0.1.2 source commit and names the observed Rho, Harness and Node versions. It claims neither a marketplace listing nor public package or Git-package installation.
The existing Desktop and model-loop evidence supplies the integration facts. This change adds documentation and links; it changes no plugin, Rho runtime or existing service. The deployment replaces the front page and docs/ on gh-pages, preserving the recorded demo, update feeds, setup page, Skill and images.
The full rendered-site link check also found nine earlier broken targets: the home page's Agent activity route, a removed Status section, a raw Skill directory without an index, and six links whose GitHub heading anchors differ from VitePress's IDs. The route and two obsolete links were corrected. The assembler translates the four differing heading IDs for the site while preserving the source Markdown's GitHub anchors.
Guide checks
docs:buildanddocs:checkpass with 54 source documents and 308 rewritten links. The build retains its existing large-chunk warning.- The rendered front page and documentation comprise 61 HTML pages. A static check resolves 3,956 local links and assets and 754 heading anchors, with no missing targets. The 123 files outside the front page and documentation match the prior
gh-pagestree byte for byte. - In a real browser at 1440 and 391 CSS px, the guide, both home pages and install page keep the page within the viewport; long commands scroll inside code blocks. The new home-page button wraps into its own row at the narrow width. The three guide links on the front page, documentation home and install page were followed to the new guide. No new runtime or model episode was run for these documents.
Local screenshots and the link and preservation reports are in work/dsh-rho/docs-01/.