Files
LithosAnanake/FABRIC-3.9.8.md
T
Robert Allan JamesandClaude Opus 5.5 04dbc3a5d3 FABRIC-3.9.0/3.9.8: observers and participants -- the Tripod steps outside the compudynamics (design + execution plan)
Captain Bob: Hera, Artemis and Hestia no longer participate in the
calculations; they observe them and act on events. Design (3.9.0):
observer role from is_fleet_foundation, excluded from decision/work
heat/floor, event-driven (mail, console input, device events), Hera's
own mail at the idle point, event-driven DoE driver replacing the busy
wait. Rulings O-1..O-4 + discard of the uncommitted heat-share charge
open. Plan (3.9.8): stages O-A..O-D then merge, evidence named in advance.
FABRIC-3.8 gets a continuation pointer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 08:44:41 -04:00

3.4 KiB

FABRIC-3.9.8.md — Observers and participants: execution plan and log

Status: PLANNED. No stage started. The design and its open rulings (O-1 to O-4, plus the discard question) are in FABRIC-3.9.0.md.

Each stage:

  • needs Captain Bob's explicit go;
  • gets its own commit;
  • gets its own three-architecture acceptance (clean qemu; amd64, then aarch64, then riscv64; foreground; visible framebuffer; one at a time; coupled images reset before each).

Evidence is named before each stage runs.

The standing acceptance sequence for every stage, unchanged from FABRIC-3.8.md:

  • a boot to [zuse@Hera] ok> with zero UNKNOWN WORD, faults and frame corruption;
  • the dict_hash set identical across ISAs;
  • the Stage G interleave (two workers, A/B), byte-identical across ISAs;
  • mint → WIREBIND → USE → 1 2 + . → 3;
  • 0 bytes of idle log growth over 20 s.

1. Staged plan

Stage Change Evidence (named in advance)
O-A Observer role (FABRIC-3.9.0.md §2.1). The absolute-heat-share charge is discarded (ruling 5). Observers are left out of the decision's candidates, the work-heat charge and the floor. (Also the absolute charge, if O-2 is ruled so.) Observers with events go ahead at clean boundaries, among themselves by wait stamp (§2.4, per O-1). The standard sequence. A probe (reverted after capture) shows the decision never returning an observer as a heat candidate, and an observer with mail switched to at the next participant checkpoint. The busy-wait DoE driver, unchanged, run as a cfg-0 trial with rows on for a fixed window: Hera's share of rows falls from about ½ (the stopped relaunch's tail) to near 0 while both workers have work. That is the measured symptom this design exists to fix.
O-B Hera's own mail drained at sk_vm_idle_point(), with the readline n > 0 gate; the timer-paced pump drain removed (§2.5). The standard sequence, plus: a message sent to Hera while she sits idle at the prompt is acted on without waiting for the idle beat. A probe records the delay in beats from admission to drain; it must be well under SK_IDLE_BEAT_INTERVAL. The relay and BLK-ATTACH flows are unchanged.
O-C An event-driven DoE driver (§3): DOE starts trial 1 and returns to the prompt; MU-DONE counts, ends trials and starts the next; MU-WAIT-ALL is deleted. Capsule only. A 1-rep smoke campaign on amd64 runs all 6 cells to MU-CAMPAIGN: complete, with every trial fail=0 and N/N KILL … dead. Hera's rows during trials are only event handling. The prompt answers typed input while trials run. Then the standard sequence on all three ISAs.
O-D The DoE relaunch: 12345 3 S" <isa>" DOE, amd64, then aarch64, then riscv64, with the ring extracted between ISAs and artemis.img not reset in between. A fresh time estimate from O-C's measured row rate, before launch. Then per ISA: 18 MU-TRIAL markers, fail=0, MU-CAMPAIGN: complete.
Merge This branch to master, once all three ISAs have completed O-D. Per this project's own merge practice, at Captain Bob's word.

Stop conditions (re-plan rather than push on):

  • dict_hash diverges across ISAs;
  • conservation (vm_physics_conserved(), stadium_conserved()) goes false;
  • an observer is ever returned as a heat candidate;
  • a switch storm: log growth at an idle prompt, with QEMU pinned;
  • a trial that never produces its marker.

2. Execution log

(empty: no stage started)