Shipped log: 2026 through mid-May
A topical roll-up of work shipped between 2026-01-01 and 2026-05-19. Linked to prior posts where they exist; otherwise referenced by PR or release tag. The cognition-tooling family and Heat Compass receive their first dedicated coverage on this site; the robotics ecosystem extends prior posts.
Composition and fact-verification window: 2026-05-19, Pacific time. Every version number, tag date, package version, and live-URL status in this post was pinned against its canonical source at that window (see Sources). Claims may have drifted by the time you read this.
The shape of the year on this account: three product families, two of which (robotics, cognition tooling) ship as canonical strategies with their own repository topologies; one of which (Heat Compass) is a Flutter consumer application. See Two product families maintained in parallel for the structural breakdown of the two canonicals.
Q1 — January through March
January 2026. The RCAN protocol effort produced four serial publications between 2025-12-29 and 2026-01-05 establishing the thesis (Part 3: UNIX-philosophy applied to embodied AI), the “ICANN for robotics” framing (Part 4), the technical specification with JSON Schemas + Protocol Buffers + a complete handshake flow (Part 5), and the spec-repository tooling (Part 6). The Ralph autonomous-development tool was open-sourced 2026-01-12 (post) with cross-platform support for macOS / Windows / Linux / Raspberry Pi / cloud and 10+ AI-agent backends; a companion post the same day addressed long-running-agent stability. MeloMax (an anti-doomscrolling app, free, private, local, no authentication required) launched 2026-01-14.
Flash Protest push-to-talk tool (2026-01-17) evolved into CrowdTalkie on 2026-01-19, a privacy-first mesh-networking PTT system on libp2p with Web Bluetooth fallback; a development update followed 2026-01-21, then LoRa integration and a decentralized Command Center on 2026-01-23. ContinuonXR shipped an autonomous training pipeline targeting MambaWave neural networks (2026-01-23) and a physical-robot parts guide for a 6-foot-reach mobile manipulator with dual arms and V-slot mast (2026-01-26).
ContinuonOS was reorganized 2026-01-27 from a chatbot wrapper into a Ring 0–6 cognitive architecture across seven phases, executed in one morning by Claude / Clawdbot / Gemini on a Raspberry Pi 5; 86 tests passing. The Ring stack: Ring 0 Safety Kernel (< 1 ms, cannot be bypassed); Ring 1 Vision Dreamer (~10 ms, camera frames → tokens); Ring 2 Liquid Reflex (~5 ms, fast reactive motor control); Ring 3 Mamba Brain (~50 ms, mid-latency state-space-model reasoning); Ring 4 HOPE Recurrence — Hierarchical Oscillatory Processing Engine — (~200 ms deliberative loop, 100 steps in 43 ms during testing); Ring 5 CMS Memory (async episodic → semantic → procedural); Ring 6 MambaWave (varies, unified neural architecture). Split into Brain A (~7,000 lines, mind) and Brain B (~500 lines, executor); Brain B can refuse Brain A’s commands if they violate safety bounds. The HOPE loop runs six steps per tick: encode (input → latent), read CMS (query memory), state update (h_t = f(h_{t-1}, encoded_input, memories)), write CMS (store new experiences), learn (on-device Hebbian-like gradient step), decode (wave-particle rollout — a global FFT-based “wave” path mixed with a local MLP “particle” path through a learned gate). A Lyapunov stability monitor triggers graceful degradation if the dynamics start to diverge.
February 2026. LiveCaptionsXR with Nexa AI and Qualcomm Developer Cloud shipped 2026-02-14, validating approximately 2× faster inference and 9× better energy efficiency for real-time spatial captions on NPU-accelerated on-device AI. OpenCastor was launched 2026-02-19 at version v2026.2.19.0 (launch post) — an open-source universal runtime that connects any AI model to any robot hardware through a single YAML configuration. The launch shipped seven provider integrations (Anthropic Claude 4; Google Gemini 2.5 Flash / Flash-Lite / Pro; OpenAI GPT-4o / o1; HuggingFace Hub; Ollama; llama.cpp; Claude OAuth for Max / Pro subscribers), a three-layer tiered brain (Layer 0 reactive at < 1 ms with YOLOv8 on Hailo-8 NPU at ~250 ms; Layer 1 fast brain at ~500 ms on Qwen2.5-VL-7B via HuggingFace; Layer 2 planner at ~10–15 s on Claude / GPT-4o / Gemini Pro every 15 ticks or on fast-brain uncertainty signal), and a starting cost of $0 on the free-and-open-source tier. The install wizard presents five cost-tier presets at provider-selection time:
| Tier | Monthly cost | Configuration |
|---|---|---|
| Free & Open Source | $0 | HuggingFace API + Ollama fallback |
| Budget Smart | ~$0 | HF primary + Gemini Flash-Lite (both free tiers) |
| Balanced | ~$5 | HF primary + Claude planner |
| Performance | ~$10–20 | Gemini Flash primary + Claude planner |
| Maximum Intelligence | variable | Claude primary + Claude Opus planner |
The full-history post on 2026-02-26 documents v2026.2.17.3 → v2026.2.26.2 — the project’s code genesis was 2026-02-17, two days before the public launch. Nine-day baseline: 269 commits, 73 releases, 83 tags, 156 closed issues, 36,758 lines of code on PyPI, and 1,322 tests covering providers / safety modules / hardware abstraction / the install wizard. OpenCastor as Agent Harness and Quantum commitment for AI claims followed 2026-02-27. The latter shipped a CommitmentEngine in quantum-link-sim providing cryptographic attribution of agent claims in an append-only chain — three key-derivation modes (classical HKDF-SHA256; quantum BB84 simulation; hybrid XOR(HKDF, BB84) as default), SHA3-256 payload hashing, and a 32-key warm pool delivering sub-0.15 ms commit latency under hit conditions on the Raspberry Pi 5.
March 2026. RCAN protocol work continued: autonomy levels and safety standard (2026-03-03), RCAN ecosystem releases shipping Python SDK + TypeScript SDK + OpenCastor v2026.3.6.0 on 2026-03-06 (the “RCAN Full Stack Day” — SDKs, swarm safety, and the §17 distributed registry that became the seed for the Robot Registry Foundation), v1.3 robot-identity-stack alignment (2026-03-12), v1.5 production-safe and v1.6 four hard problems (both 2026-03-17), and v2.1 with EU AI Act compliance on 2026-03-26. OpenCastor evolved in step: v2026.3.10.1 added semantic perception via HuggingFace HLabs embeddings; v2026.3.11.0 added plug-and-play hardware detection and LeRobot support; v2026.3.11.1 cleaned up install developer experience; v2026.3.12.0 added smarter hardware detectors. OpenCastor’s intention to become a California Benefit Corporation was announced 2026-03-20. RCAN closed 17 v2.2 compliance gaps in one sprint on 2026-03-29 and shipped OpenCastor MCP the same day. A precursor milestone — first two-robot RCAN message exchange — landed 2026-03-15, validating the registry-resolve + invoke loop between independent robot identities before the single-robot reference build. The reference-robot milestone — first end-to-end Claude Code → MCP → gateway → SO-ARM101 arm motion on bob — landed 2026-03-30 (Claude meets Bob). Post-quantum cryptography for robot identity shipped 2026-03-31; ML-DSA-65 (NIST FIPS 204) was adopted as the RCAN signing algorithm across the layer stack.
Q2 part 1 — April: ROBOT.md v0.1 through v1.4.0
ROBOT.md v0.1 was introduced publicly on 2026-04-17 — a single-file declaration at the root of a robot’s project that any agent harness (Claude Code, ChatGPT, Gemini, Ollama) can read at session start. Apache 2.0, vendor-neutral. Between 2026-04-17 and 2026-04-21 a contiguous four-day solo sprint shipped ROBOT.md v0.1 through v0.8, an MCP server, a hardware pendant on ESP32-C6 firmware, and the landing page at robotmd.dev. The post-mortem on resource envelope documents 364 commits across 5 repositories, $1,216 in Claude Opus costs (Claude Code Max plan), with cache-hit-rate and commit-cadence measurements against Thariq Shihipar’s published guidance for working in the 1M context window.
The Claude Code plugin and the robot-md dispatcher shipped together on 2026-04-24. The dispatcher was renamed to robot-md-gateway in May per the seven north-star locked decisions, with the rename codified in business/decision-frameworks/repo-rename.md.
robot-md v1.4.0 shipped 2026-04-30 — hot-plug daemon, announce-and-confirm MCP protocol, self-attested spatial scores. Details in the v1.4.0 release post. The ecosystem orientation post from 2026-04-29 remains the right starting point for new readers of the robotics family.
OpenCastor’s versioning scheme transitioned in April. The CalVer line continued through v2026.4.23.0 on 2026-04-23; the project switched to SemVer at v3.0.0 on 2026-04-24 and currently sits at v3.0.2 (2026-05-03). The PyPI opencastor package still serves 2026.4.23.0 at the time of writing, which is the last CalVer publish — the SemVer-line publishes have not yet propagated to PyPI.
Q2 part 2 — early May: robot-md spec evolution
Between 2026-04-30 and 2026-05-11, robot-md evolved from v1.5.0 to v1.10.4 across the following increments:
| Version | Date | Net change |
|---|---|---|
| v1.5.0 | 2026-04-30 | SP-AN v2, SP6 Phase 1.5, SP3 Phase D, robotmd.dev redesign — see shipped this week |
| v1.6.0 → v1.8.0 | 2026-05-09 | Spec A increments — declarative-mode hardening, capability metadata |
| v1.9.0 | 2026-05-10 | Spec A complete — 31 tasks across 5 repositories; cold-install benchmark 2 min 6 sec on a fresh Raspberry Pi 5 |
| v1.9.1 | 2026-05-10 | Spec A follow-ups (5 frictions, 3 PRs) |
| v1.10.0 | 2026-05-11 | Spec B Phase B — trial subcommand and pick-place skill section in using-robot-md |
| v1.10.1 → v1.10.4 | 2026-05-11 | Spec B Phase B fixes (PyPI publish gate, register skipping Ed25519 publish step) |
Spec B (pick-place + perception, 23 tasks per 2026-05-11-spec-b-pick-place-cert.md) closed Phases A through C on 2026-05-11. Phase A shipped oak-d-actuator 0.1.0 to PyPI and added a perceive capability under the Actuator Protocol. Phase B shipped robot-md-mcp 0.5.0 to npm with the pick-place trial protocol section in the using-robot-md skill. Phase E (cold-install trial run) executed twice with three follow-up issues filed. The reference robot bob-spec-b-pick-place was minted RRN-000000000011 in 4 minutes 36 seconds during the v3 cold-install trial.
Companion driver packages: so-arm101-actuator 0.2.0 → 0.2.2 on 2026-05-10 (Bob-calibrated SAFE_RANGE_RAD, home() honors home_pose_rad kwarg), oak-d-actuator 0.2.0 → 0.2.1 on 2026-05-10 (entry-point registration for gateway autodiscovery, depthai pinned >=2.30,<3). robot-md-gateway shipped 0.5.0a1 (2026-05-08) → a3 (2026-05-11) with multi-actuator dispatch and telemetry-in-response.
Cert results on bob during this window (Phase 3 of the foundation-rebuild roadmap): bob.local/GATED-MOTION-100 reached 100/100 within the 5-second budget (p50 3 ms, p95 8 ms, max 12 ms); bob.local/MOTION-FIDELITY-100 reached 100/100 with reached=True on real hardware (p50 341 ms, p95 369 ms, max 372 ms); bob.local/FULL-SWEEP-100 reached 100/100 at MOVE_TOLERANCE_RAD=0.07 (p50 509 ms, p95 759 ms, max 825 ms) after so-arm101-actuator v0.2.1 calibrated around the hard mechanical stops discovered on elbow_flex / wrist_flex / wrist_roll. The /case-studies/bob-so-arm101/ page on robotmd.dev is the surfaced result.
The RRF registry shipped the §27 spatial-eval submission endpoint, the RPN-anchored package registry (/v2/packages/* with 6 endpoints), and the /v2/run-bundles endpoint. The robotmd.dev landing and docs.robotmd.dev documentation site were redesigned 2026-05-11 across 35 tasks (per 2026-05-11-robotmd-dev-and-docs-redesign.md). robotmd.dev/cookbook/ currently returns HTTP 200 with the first recipe live.
Q2 part 3 — mid-May: PlatAtlas pivot and Sprint 1
The cognition-tooling product family entered active build mid-May.
On 2026-05-12, workflow-atlas pivoted from a public single-user Claude Code plugin to a paid private team product; rationale and roadmap in from CLAUDE.md to workflow-atlas and the map and the trace. On 2026-05-15 the organization was migrated from craigm26/* to PlatAtlas/*, the domain from workflowatlas.cc to platatlas.com (301 redirect via Cloudflare Worker), and the in-progress product was scoped as Sprint 1.
Sprint 1 shipped in eight increments across five days. The W1 through W8 labels refer to the sprint-week backlog structure (planned weekly cadence per docs/sprints/2026-05-15-platatlas-sprint-1.md); the actual merge cadence was daily, so eight planned weeks of work landed in five calendar days.
| Week | Date | Content |
|---|---|---|
| W1 | 2026-05-15 | Rust workspace, 7 domain types, SqliteStore, axum 0.8, CLI, CI (PR #6) |
| W2 | 2026-05-15 | GitHub OAuth web + device flow, signed-cookie sessions, meta loader (PRs #7, #8) |
| W3 | 2026-05-15 | Atlas parser, AtlasRegistry, rmcp 0.16 MCP server with 4 tools (PR #9) |
| W4 | 2026-05-15 | Leptos 0.8 SSR + hydration, 3 routes, WASM bundle at 231 KB gzipped (PR #10) |
| W5 | 2026-05-15 → 16 | Six-Plate surveyor’s atlas (Plate I — atlas, II — ledger, III — burndown, IV — assignment roll, V — token ledger, VI — frontispiece), multi-agent model, Efficiency Ledger, Field-book; 102 unit tests in platatlas-core + 7 SQLite integration tests; ~20 new HTTP API routes (PR #11) |
| W6 | 2026-05-16 → 17 | Drag-drop Kanban, real Anthropic/OpenAI/Gemini pricing, trace overlay (PRs #18, #19, #24) |
| W7 | 2026-05-17 → 18 | Canonical edges.json, MCP server node coverage, next-tools sidebar, derive-edges CLI, overlay re-stroke (PRs #33, #43–#47) |
| W8 | 2026-05-18 → 19 | MCP Apps iframe, Gemini-CLI + Antigravity integration docs, trace-share bridge shipped 2026-05-19 — 3 PRs admin-merged (workflow-atlas#66 + mcp-tape#8 + mcp-replay#3), Worker 944fc2c0 live; mcp-tape upload --public → mcpreplay.dev/?trace=… end-to-end verified |
The PlatAtlas hosted runtime went production-live on 2026-05-19. End-to-end GitHub OAuth round-trip verified against the Cloudflare Worker deploy at platatlas.com.
Q2 part 4 — mid-May: mcp-tape and mcp-replay public stack
Both public pieces of the cognition-tooling family advanced through their alpha tiers and into stable.
| Package | Date | Release / change |
|---|---|---|
mcp-tape | 2026-05-13 | First alpha publish to npm |
mcp-tape | 2026-05-14 | Promoted to stable 0.1.0 |
mcp-tape | 2026-05-15 | 0.1.1 — --serve lenient for PowerShell |
mcp-tape | 2026-05-18 | 0.2.0 — PlatAtlas upload subcommands (PRs #4–#6); --upload and --upload-on-exit flags |
mcp-tape | 2026-05-19 | 0.3.0 — --public flag echoes a hosted-trace viewer URL on upload. Published to npm; npm view mcp-tape@latest returns 0.3.0 |
mcp-replay | 2026-05-13 | 0.1.0-alpha.4 (search filter on aggregate views) + 0.1.0-alpha.5 (drag-and-drop diff view; ?diff=a;b URL grammar) |
mcp-replay | 2026-05-14 | Promoted to stable 0.1.0 (alpha references dropped, live-mode docs added) |
mcp-replay | 2026-05-15 | Format-extensions documentation (non-MCP producer schema, RCAN bridge schema) and landing redesign |
The JSONL format at mcpreplay.dev/docs/format v1 includes a non-MCP-producer extension and an RCAN bridge schema, so traces emitted by the robotics-side gateway will eventually render through the same viewer. The format spec is the moat against re-implementation, not the renderer code.
Q2 part 5 — mid-May: Heat Compass
This is the first dedicated mention of Heat Compass on this site.
Heat Compass is a Flutter heat-safety coach that implements the US Marine Corps Order 6200.1E heat-flag system (five tiers: White, Green, Yellow, Red, Black) on top of two complementary WBGT calculators (Stull 2011 and the full Liljegren radiation model). The repository is craigm26/HeatSentry; the application brand is Heat Compass; the hackathon submission flavor is Heat Sentry. The app ships a four-tab Flutter UI (Today, Hydration, Forecast, Settings), Hive-backed local storage, Firebase sync (Auth, Firestore, Storage, Functions, Messaging), and a three-tier LiveGuidanceCubit that routes coaching requests through (1) on-device Gemma 3n E2B via flutter_gemma 0.15.x, (2) cloud Gemini 2.5 Flash, or (3) deterministic rules. The first tier is preferred whenever the model is installed, even when network is available; the application runs end-to-end in airplane mode.
Hackathon-specific work landed between 2026-05-13 and 2026-05-19 across PRs #209 through #235. Notable increments:
GemmaLocalRunnerwith install / uninstall lifecycle UX (PRs #196 / #197 / #209)- Three-tier
LiveGuidancepriority with context-hash dedupe (PRs #198 / #211) - Proactive background heat-risk monitor wired through
workmanagerto iOSBGTaskSchedulerand AndroidWorkManager(PRs #201 / #213 / #221) - Scan Surroundings multimodal flow — camera → Gemini 2.5 Flash → personalized shade / exposure risk synthesis (PRs #202 / #214)
- Increased-memory-limit entitlement on iOS so Gemma 3n E2B fits comfortably in RAM on iPhone (PR #207)
- Brand-package local Dart sub-package with rsvg-convert PNG pipeline and CI drift gate (PR #219)
- Drink Backwards and Bottle Radar hydration features (PR #232)
- Bathroom Sentry — on-device urine-color classifier (PR #235)
- Hackathon submission package — README hero,
docs/submission.md, architecture diagram (PR #227); demo design spec with NotebookLM source (PR #230); backup demo video recording script (PR #234)
The web build is deployed to Firebase Hosting at heatcompass.com and heatcompass-37245.web.app. iOS distribution targets TestFlight via Fastlane on a MacInCloud SSH host; Android distribution targets Google Play closed internal testing.
Service-layer components in lib/data/services/ exposed during the hackathon work: GemmaLocalRunner, GemmaModelDownloader, AiVisionEstimator (Gemini-backed bottle-fill estimator with the ManualSliderEstimator as fallback), ContainerDetector, UrineColorClassifier (Bathroom Sentry), ProactiveHeatMonitor, NotificationService, ActivityEstimator (PR #204 sensor-based inference, currently a Settings preview), SolarRadiationService, NearbyStationsService, WeatherStationIdentificationService, FirestoreSnapshotSyncService (with a NoopSnapshotSyncService web stub), HydrationAgent, RevenueCatEntitlementChecker (with a WebStubEntitlementChecker). The cubit layer routes between them with LiveGuidanceCubit as the three-tier orchestrator.
Submission target: Cerebral Valley I/O Hackathon at Shack15 in San Francisco on Saturday 2026-05-23.
By the numbers
Commit volume by repository, 2026-01-01 through 2026-05-19 (counted by git log --oneline --all --since=2026-01-01 --until=2026-05-20 | wc -l against each local clone):
| Repository | Commits |
|---|---|
craigm26/OpenCastor | 1,207 |
RobotRegistryFoundation/robot-md | 775 |
craigm26/RobotRegistryFoundation | 221 |
PlatAtlas/workflow-atlas (née craigm26/workflow-atlas) | 178 |
craigm26/HeatSentry | 146 |
craigm26/mcp-tape | 80 |
RobotRegistryFoundation/robot-md-mcp | 79 |
RobotRegistryFoundation/robot-md-gateway | 55 |
craigm26/mcp-replay | 53 |
RobotRegistryFoundation/so-arm101-actuator | 35 |
RobotRegistryFoundation/oak-d-actuator | 28 |
| Total | 2,857 |
These are commit counts, not lines of code, and they aggregate every author including the bot accounts that ran CI auto-fixes and dependency bumps. They are useful as a rough envelope rather than a productivity measure.
What ships next
Robotics ecosystem: Spec B Phase E re-run after the three blockers filed on 2026-05-11 are closed; hardware-side smoke run of the SP-AN announce-and-confirm protocol against bob.
Cognition-tooling family: the W8 trace-share bridge shipped 2026-05-19 (three coordinated PRs admin-merged across workflow-atlas#66 + mcp-tape#8 + mcp-replay#3; Worker 944fc2c0 live; the round-trip mcp-tape upload --public → mcpreplay.dev/?trace=… end-to-end verified). Next: the Google-week backlog (issues #34–#42) covering a gemini_session parser, an Antigravity walkthrough parser, MCP integration documentation for Gemini-CLI and Antigravity, a native gemini-cli extension, and Gemini pricing in rates.rs.
Heat Compass: the 2026-05-23 hackathon submission, then sensor-based activity inference (#204) and the Project H hardware roadmap.
Posts in this series
- Two product families maintained in parallel.
- Four artifacts that externalize agent state.
- This post.
Runtime-state checkpoint
A small live-URL check at composition time (2026-05-19, 15:09 UTC):
| URL | Status |
|---|---|
https://robotmd.dev/case-studies/bob-so-arm101/ | 200 |
https://robotmd.dev/cookbook/ | 200 |
https://robotregistryfoundation.org/v2/robots/RRN-000000000011 | 200 (bob’s RRF record) |
https://mcpreplay.dev/docs/format | 200 (JSONL format v1 spec) |
https://heatcompass.com | 200 |
https://heatcompass-37245.web.app | 200 (Firebase Hosting alt) |
https://platatlas.com | 200 (PlatAtlas hosted runtime) |
https://workflowatlas.cc | 301 → platatlas.com (confirms 2026-05-15 domain migration via Cloudflare Worker) |
https://cerebralvalley.ai | 200 (hackathon host) |
https://opencastor.com | 200 (OpenCastor landing) |
https://docs.opencastor.com/ | 200 (OpenCastor documentation site) |
https://docs.robotmd.dev/ | 200 (robot-md documentation site, shipped in the 2026-05-11 redesign) |
https://rcan.dev/ | 200 (RCAN spec + identity resolver — bob’s record at rcan.dev/r/RRN-000000000011 resolves through this surface) |
https://craigmerry.com/portfolio/heatcompass/ | 200 (Heat Compass portfolio page) |
Sources
Facts in this post were pinned against the following canonical sources at composition time (2026-05-19):
- Published package versions: PyPI JSON API (
pypi.org/pypi/<name>/json) forrobot-md,robot-md-gateway,so-arm101-actuator,oak-d-actuator,rcan,opencastor; npm registry (registry.npmjs.org/<name>/latest) forrobot-md-mcp,mcp-tape,rcan-ts. - Tag dates:
git log -1 --format=%ai <tag>against the local clones of each repository. - Spec task counts: plan files under
opencastor-ops/docs/superpowers/plans/(2026-05-10-spec-a-auto-discovery-and-install-wiring.md,2026-05-11-spec-b-pick-place-cert.md,2026-05-11-robotmd-dev-and-docs-redesign.md). - PlatAtlas sprint timeline: commit log of
craigm26/workflow-atlas(nowPlatAtlas/workflow-atlas) between 2026-05-10 and 2026-05-19, plus the W5 plan indocs/sprints/2026-05-15-platatlas-sprint-1.md. - Heat Compass details:
craigm26/HeatSentrycommit log between 2026-05-08 and 2026-05-19,pubspec.yaml,docs/submission.md, anddocs/architecture.md. - Bob’s manifest:
ROBOT.mdandCLAUDE.mdon the Raspberry Pi 5 where this post was composed.
Internal cross-link audit: all 47 distinct internal /blog/... links cited across the three 2026-05-19 posts return HTTP 200 against craigmerry.com at composition time. Any claim that cannot be reconstructed from the above sources should be treated as a transcription error.