diff --git a/CHANGELOG.md b/CHANGELOG.md index c5ee4c7..8fa5623 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. Format follows [Keep a Changelog](https://keepachangelog.com/). This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.17.1] - 2026-07-22 + +### Fixed + +- Deck technical review fixes: the architecture diagram's runtime layer reads "ROS-backed or native · persistent execution" with "nodes · controllers · rules · intents · arbitration" (ROS 2 is not itself a fixed-rate loop; the 50 Hz design rate moved to the stack slide's Reachy-specific spoken aside); the control-plane box renamed "Robot interface" (CLI · JSON feed · intent spool) so the dotted agent-runtime paths no longer contradict the stable-bridge story; the diagram caption reads "operational command and state paths" instead of "direct, synchronous calls"; slide 2 softened to "These approaches can coexist…" with bottom line "What matters is a stable boundary."; the close Reachy command is `behavior engine run`; the source note reads "separates the optional agent from the symbolic runtime." + ## [0.17.0] - 2026-07-22 ### Changed diff --git a/pyproject.toml b/pyproject.toml index e6c04e5..0b264d8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "org" -version = "0.17.0" +version = "0.17.1" description = "The AgentCulture org site — source of the web presence published to AgentCulture.org. Replaces the deleted landing-page repo. Not distributed on PyPI: the CLI stays repo-local; the deliverable is the published site." readme = "README.md" license = "Apache-2.0" diff --git a/site-astro/src/components/CliRuntimeStackDiagram.astro b/site-astro/src/components/CliRuntimeStackDiagram.astro index 6006127..9b6663d 100644 --- a/site-astro/src/components/CliRuntimeStackDiagram.astro +++ b/site-astro/src/components/CliRuntimeStackDiagram.astro @@ -3,7 +3,8 @@ // cli-runtime-reframe deck (org#21). Five layers, top to bottom: // // Agent harness (optional) ─┐ -// Human · shell script · CI ─┴─> Robot CLI — control plane +// Human · shell script · CI ─┴─> Robot interface — control plane +// (CLI · JSON feed · intent spool) // │ (direct, one-shot ops) // ▼ ╲ // Behavior runtime ╲ @@ -14,8 +15,13 @@ // ↕ // Physical robot // -// Every box and arrow label is taken verbatim from org#21's proposed -// mermaid diagram and terminology table: +// Box and arrow labels originate from org#21's proposed mermaid diagram and +// terminology table, amended by the deck-technical-fixes review: the +// control-plane box is "Robot interface" (the CLI is one executable surface +// of the stable contract beside the JSON feed and intent spool, so the +// dotted agent<->runtime paths no longer contradict "the CLI is the stable +// bridge"), and the runtime layer reads "ROS-backed or native · persistent +// execution" (ROS 2 is not itself a fixed-rate behavior loop): // // AGENT --> CLI ; HUMAN --> CLI // CLI -->|"lifecycle · configuration · direct operations"| RUNTIME @@ -31,8 +37,10 @@ // visual emphasis: they are the stable center of the story. "reachy-mini- // daemon" is named only on the device layer, never on the runtime — the // behavior runtime and the lower-level device daemon are never conflated. -// Any tick-rate label reads "50 Hz design rate", never a measured claim -// (reachy-mini-cli CHANGELOG v0.42.0 records 23 Hz achieved so far). +// The diagram carries no tick-rate label — the 50 Hz figure lives in the +// stack slide's spoken track as a Reachy-specific aside, qualified as a +// design rate, never a measured claim (reachy-mini-cli CHANGELOG v0.42.0 +// records 23 Hz achieved so far). // // Pure inline SVG, no script, no external asset. Theming rides the same // CSS custom properties as MindNervousSystemBodyDiagram.astro / ReachyDiagram @@ -59,20 +67,21 @@ Five layers, drawn top to bottom. At the top, two replaceable entry points feed the same control plane: an optional agent harness — Claude Code, Codex, Colleague, a custom agent, or none, drawn with a dashed border — and a human, shell script, or CI - system. Both connect straight down into the robot CLI, the control plane, which - inspects, configures, intervenes, and reports start, stop, and status through JSON - contracts; the CLI and the layer below it, the behavior runtime, carry the strongest - visual weight in this diagram. The CLI sends lifecycle, configuration, and direct - operations down into the behavior runtime, implemented in ROS 2 or a native runtime — a continuous fixed-rate loop — 50 Hz is a - design rate, not a measured one — that runs senses, rules, intents, and arbitration. - The CLI also has a direct, required path straight down to the device layer, for - one-shot device operations that bypass the runtime entirely. The behavior runtime - sends validated, arbitrated actions down to the device daemon or hardware adapter, - which exchanges state and actuation with the physical robot at the bottom — Reachy - Mini, SO-ARM101, or a future body, drawn replaceable like the agent above it. Two - dotted paths connect the agent and the runtime directly, bypassing the CLI: the - runtime emits a runtime event feed up to the agent, and the agent submits named - intents back down to the runtime through attach and spool. + system. Both connect straight down into the robot interface, the control plane, whose + surfaces are the CLI, the JSON feed, and the intent spool; the CLI inspects, + configures, intervenes, and reports through JSON contracts. The interface and the + layer below it, the behavior runtime, carry the strongest visual weight in this + diagram. The CLI sends lifecycle, configuration, and direct operations down into the + behavior runtime — ROS-backed or native, persistent execution that runs nodes, + controllers, rules, intents, and arbitration. The CLI also has a direct, required + path straight down to the device layer, for one-shot device operations that bypass + the runtime entirely. The behavior runtime sends validated, arbitrated actions down + to the device daemon or hardware adapter, which exchanges state and actuation with + the physical robot at the bottom — Reachy Mini, SO-ARM101, or a future body, drawn + replaceable like the agent above it. Two dotted paths connect the agent and the + runtime directly — the interface's non-CLI surfaces: the runtime emits its event + feed up to the agent, and the agent submits named intents back down to the runtime + through attach and spool. @@ -125,12 +134,12 @@ @@ -163,10 +172,10 @@ PERSISTENT EMBODIMENT Behavior runtime - ROS 2 or native · continuous fixed-rate loop — 50 Hz design rate + ROS-backed or native · persistent execution - senses · rules · intents · arbitration + nodes · controllers · rules · intents · arbitration stays alive with no agent attached @@ -247,9 +256,9 @@
- Solid lines are direct, synchronous calls; the CLI's direct line to the device layer is a - required one-shot path that bypasses the runtime. Dotted lines are the optional runtime - event feed and named-intent path an attached agent can use instead. + Solid lines show operational command and state paths; the CLI's direct line to the device + layer is a required one-shot path that bypasses the runtime. Dotted lines are the optional + runtime event feed and named-intent path an attached agent can use instead.
diff --git a/site-astro/src/data/mind-nervous-system-body-slides.test.mjs b/site-astro/src/data/mind-nervous-system-body-slides.test.mjs index 7757040..934e465 100644 --- a/site-astro/src/data/mind-nervous-system-body-slides.test.mjs +++ b/site-astro/src/data/mind-nervous-system-body-slides.test.mjs @@ -87,7 +87,7 @@ test("slide 2 (paths) carries the three intelligence-path columns verbatim", () slide.columns.map((column) => column.label), ["Coded behavior", "Learned policy", "Agent tools"], ); - assert.equal(slide.bottomLine, "What's missing is a stable boundary."); + assert.equal(slide.bottomLine, "What matters is a stable boundary."); }); test("slide 3 (stack) embeds the architecture diagram", () => { @@ -179,7 +179,7 @@ test("slide 6 (close) is last, carries both robots and the verbatim thesis", () status: "working system", traits: "Rules · behavior runtime · device daemon", claim: "The complete native-runtime pattern.", - command: "reachy-mini-cli behavior engine start", + command: "reachy-mini-cli behavior engine run", }); assert.deepEqual(arm, { robot: "so101", diff --git a/site-astro/src/data/mind-nervous-system-body-slides.ts b/site-astro/src/data/mind-nervous-system-body-slides.ts index 127225c..fe3b98d 100644 --- a/site-astro/src/data/mind-nervous-system-body-slides.ts +++ b/site-astro/src/data/mind-nervous-system-body-slides.ts @@ -23,7 +23,8 @@ // (plan task t3), not a dataset field. // 2. paths · paths · beat 2 — three ways intelligence reaches a // robot today (coded behavior, learned policy, agent tools) via -// `columns`; none of them draws a stable boundary. +// `columns`; they can coexist — the architectural question is the +// stable boundary between deciding and executing. // 3. stack · stack · beat 3 — carries `diagram: true` so the // renderer embeds the five-layer architecture component beside the // copy; the agent stays above the CLI line, execution stays below it. @@ -187,13 +188,13 @@ export const mindNervousSystemBodySlides = [ eyebrow: "three paths, one gap", headline: "Intelligence reaches robots in different ways", spokenLine: - "Some robots run fixed, hand-coded behavior; others run a learned policy trained end to end; a growing set let an agent call tools directly against the hardware. Each path works, but none of them draws a clean line between what the agent decides and what the robot's software is responsible for executing.", + "Some robots run fixed, hand-coded behavior; others run a learned policy trained end to end; a growing set let an agent call tools directly against the hardware. These approaches can coexist. The architectural question is whether the robot exposes a stable boundary between what intelligence decides and what robot software executes.", columns: [ { label: "Coded behavior" }, { label: "Learned policy" }, { label: "Agent tools" }, ], - bottomLine: "What's missing is a stable boundary.", + bottomLine: "What matters is a stable boundary.", }, { id: "stack", @@ -203,7 +204,7 @@ export const mindNervousSystemBodySlides = [ eyebrow: "the architecture", headline: "Keep execution below the model", spokenLine: - "The stack has five layers: an optional agent, a stable CLI, a deterministic behavior runtime, a device daemon, and the hardware itself. Reasoning stays above the CLI line; execution stays below it, in the runtime and daemon, so the model can be interchangeable without ever owning the motors.", + "The stack has five layers: an optional agent, a stable CLI, a deterministic behavior runtime — on Reachy Mini, a fixed-rate loop at a 50 Hz design rate — a device daemon, and the hardware itself. Reasoning stays above the CLI line; execution stays below it, in the runtime and daemon, so the model can be interchangeable without ever owning the motors.", bottomLine: "The agent never owns the motors.", }, { @@ -249,7 +250,7 @@ export const mindNervousSystemBodySlides = [ status: "working system", traits: "Rules · behavior runtime · device daemon", claim: "The complete native-runtime pattern.", - command: "reachy-mini-cli behavior engine start", + command: "reachy-mini-cli behavior engine run", }, { robot: "so101", @@ -292,7 +293,7 @@ export const deckSources = { repositoryUrl: "https://github.com/agentculture/arm101-cli", }, ], - note: "reachy-mini-cli v0.42.0 retired the AI-first flow — the robot's presence is the symbolic runtime.", + note: "reachy-mini-cli v0.42.0 separates the optional agent from the symbolic runtime.", } as const satisfies { projects: readonly DeckSourceProject[]; note: string; diff --git a/uv.lock b/uv.lock index 7e01566..c72560a 100644 --- a/uv.lock +++ b/uv.lock @@ -236,7 +236,7 @@ wheels = [ [[package]] name = "org" -version = "0.17.0" +version = "0.17.1" source = { editable = "." } [package.dev-dependencies]