Session: 15 Jul 2026, single long session running into the morning of 16 Jul.
Seats: Miles Walker (Chief Architect), Claude (Specification Owner).
Bundle at start: 0_135. Bundle cut: 0_136 (16 Jul, 08:00).
Addon: v1_023 throughout - UNTOUCHED. All ARAL work was prototype (bench),
so D161 does not apply to this session.
One version per chain throughout; each retired to Superseded on Miles's
confirmation. Every version syntax-checked and headless-proofed before hand-off.
| Version | Change | Record |
|---|---|---|
| v1_021 | ARAL_PT_header removed; File / Language / Prototype / Status / Connector and live readouts folded into one STATUS box at the top of ARAL Controls; panel no longer defaults closed | - |
| v1_022 | Stale-panel sweep on register: unregisters any leftover ARAL_* class from prior runs before registering current classes | - |
| v1_023 | Transport timing + Stop (two bugs) | T028 |
| v1_024 | Label reserve removed, placement symmetric | D174, T029 |
| v1_025 | Tape ON/OFF radio + buffered tape commit | D172, F038 |
| v1_026 | Pause retired entirely, Forward added | D173 |
| v1_027 | Panel defaults set from Miles's working values | - |
v1_021 removed ARAL_PT_header from the script, but a header panel registered
by an earlier v1_020 run survived in the Blender session and kept drawing.
The amend looked like it had failed. Cause: register() only ever unregistered
_classes, which cannot reach a class the file no longer defines. Fix: sweep
every bpy.types.ARAL_* not in the current bl_idname set before registering.
A restart would also have cleared it; the sweep means it cannot recur between
prototype versions.
1. Burst. The modal stepped on every TIMER event, so queued ticks from busy
frames each produced a generation - the first ~5 generations fired
back-to-back before the pace settled. Fix: both runners now gate each step
on time.monotonic; a step lands only once speed * 0.9 has elapsed. Surplus
ticks are ignored. Error risk flagged: at speed 0.01 a step can exceed the
interval, so a run goes as fast as it can and never faster - no skipped counts.
2. Stop unreachable. The xN modal returned RUNNING_MODAL for every event, which
swallows mouse clicks - the STOP banner (v1_017) and tape-deck Stop were
drawn but unclickable. Fix: mouse events PASS_THROUGH; Esc and TIMER keep
modal focus. Play now refuses to stack a second runner over a live one.
Ground truth read rather than assumed. plan_population carried:y_front = -(STAGE_SIZE / 2.0 - LABEL_RESERVE - 7.5) giving -18.5 against a
back edge of +32.5. LABEL_RESERVE = 24.0, inherited as-built from generator
v0_56. ARAL draws no labels. Miles ruled it a bug, not a convention.
Fix: y_front = -x_limit in plan_population AND mutate_plan's add-object path;
summary records label_reserve_m: 0.0. Proved headlessly: seed 288700 places
Y -31.3 to +32.2. Flagged: tapes recorded under older versions keep old positions.
Cost analysis before building. Per generation: (1) scene rebuild, dominant,
especially near 300 objects; (2) _hist_push copies the ENTIRE history list and
reassigns the scene property - grows with tape length, gen 200 copies 200 plans;
(3) mutation maths, negligible. Both halves addressed:
ONCE in _finish, whatever the exit (count, Stop, Esc). Kills (2) entirely.
Scrub greyed while an untaped run is live (it would drag a stale tape under a
live stage). Play at the live edge still pushes per-generation - human speeds.
Removed the operator, the button, and aral_paused everywhere it was checked
(9 sites). ARAL_OT_forward added: mirror of Rewind, calls _hist_forward, replay
only, reports "At the end of the tape" at the live edge. Transport is now
Rewind / Play / Stop / Forward.
Changed: Min Objects 30 (was 10), Collisions HARMONY (was 1994), Rotation
ORTHOGONAL (was FREE), Tape OFF (was ON), Shape Switch 0% (was 10), Width/Depth
3% (was 10), Position X/Y 5.0 (was 10.0), Add 10% (was 22), Remove 10% (was 18).
Unchanged: Max 30, Random Seed on, xN 36, Speed 0.20, Height 20%, Rot Drift 5.0.
Flagged: defaults show only in a fresh scene; existing .blend files keep their values.
Miles's word: v1_018 is the old version, v1_020 was the working one. No renumber.
The live chain continued from v1_020 and now stands at v1_027; the pyramid file
keeps its name in Working Superseded. The ticket did its job - it held the
collision visible until the next ARAL change, and that change was built on the
file Miles confirmed rather than on a number in a note.
Disciplined: no invented numbers, Priority A (plan extents, floor-to-floor)
returned as Extractable/Unknown. But the page citations do not survive checking:
Fetched and confirmed. The cited pages could not have been read from it.
pp.88-95. The pass cited pp.88-97 and quoted pages 90 and 91.
giving 15 ft. FWAL's existing 4.57 m Approximate stands. Correction WITHDRAWN.
Also found: several facts the pass presented as new were already in FWAL v0_008
(four T-shaped mullions, reinforcement 8 to 16 bars, four principal beams).
Claude claimed them as gains without checking the file first.
| Figure | Value | Source |
|---|---|---|
| Bay module | four bays west to east, 12 ft each | Wikipedia |
| Parapet | 26 in / 660 mm, rounded tips, deliberately below modern code | Wikipedia |
| Slab | 4 in, cast monolithic with beams and joists, inverted T-beam | Penn State AE |
| Joists | 4 x 23 in at 4 ft centres | Penn State AE |
| Second floor terrace | 6 ft beyond the floor below (confirms FWAL's 1.83 m) | Penn State AE |
HABS PA-5346 sheet index verified against loc.gov: 1 title, 2 site plan,
3 basement plan, 4 first floor, 5 second floor, 6 third floor, 8 north AND WEST
elevations only, 10 sections. 11 measured drawings. Two corrections to FWAL's
own note: sheet 8 is not all elevations (the south elevation, the cantilever
elevation, is elsewhere), and HABS calls sheet 3 the Basement Plan where FWAL
says River Level - a terminology divergence to record, not reconcile.
own provenance rule, evidence vocabulary and source priority.
Superseded by v0.004, which removed every invented coordinate and added a real
refusal gate (validate_source_records raises before any object is built).
Verified by reading, not by trusting the header. Its ideas worth taking:
provenance stamped on the geometry as custom properties; 00_SOURCE /
01_GENERATED separation; a status vocabulary enforced at the write with a raise.
from 6 parameters to 15, Assumed down from 12 to 7. Terrace ratio 0.4790
against the Verified 0.4731. Gorge cut, site rotates with the house.
enforces FWAL rules 2/3/4/11/12 (a centred core is rejected under r12 and the
generator rerolls), scores three of the scorecard's nine categories and
declares the other six not scored. Gives random_genome, mutate, validate and
serialize/deserialize almost free.
Miles's ruling. T4 is "Prototype runs", and in GAAD a prototype means a panel
that can be pressed. ARAL has one, MHAL has one, FWAL has a script that prints
to a console. Promoting it would have made T4 mean two different things
depending on the language. It also removes a second problem: the FWAL generator
lives in 4_Research, which by D170 never enters Live.
gaad_validate.py enforces PRESENCE only - if req not in it or it[req] in (None, "").
Nothing checks a value against a vocabulary. Live consequence, measured in 0_135:
features carry 11 distinct status values across 37 records, including
"in-progress" AND "in progress"; "parked" AND "parked-for-v0.04"; "in build",
"built" and "built - in verification". Tickets carry "closed" and "resolved".
Decisions carry "adopted" 150 times and "accepted" once. Every one passed Validate.
Queued: agree the vocabularies, then enforce values (D161 route, Validate steps named).
D170 research out of Live | D171 fifth zip | D172 tape optional | D173 Pause
retired, Forward added | D174 no label reserve | D175 language cards | D176 FWAL
stays T3 | D177 homepage generated
T027 closed | T028 closed | T029 closed
F037 extended | F038 Tape ON/OFF | F039 language cards | F040 gaad_site_stats.py
P063 the 4.42 that was never there
Q040 "The spirit means, looks like it has been designed using FW parameters and rules"
Release 0_136.
Build: PASS, 17 steps, 0 failed. Validate: RESULT PASS.