Skip to content

Physics Soft Continuum Volume Phase Plan

easylogic edited this page Oct 11, 2026 · 4 revisions

#826 original volume-phase diagnostic — COMPLETE native; physical NO_GO

Actual source ca9f72e2cd453ad72ad01f9ee63f7da80cfb8034, before-code contract da851def516922b2f57ea0ccd51576187cc587aa, base 9eacb14c9675119fa310892170a6c8685328b9f0.18sourcefiles/14Node22syntax checks passed;13,377inheritedfiles and6providers unchanged. Full freeze SHA dc570d7fa085885a8f2fe289c275fcbec9fc6ff8d24bff06a6926d98cf3c3993. Three authors completed source only. The exactly2NEWdetachedsteps and FIRSTfiledecoder now completed. Native result records49152blocks/49768events/8rationalDATA samples. No oldWorld/rest/reference/browser rerun. This selected contract is retained history and does not authorize repeating a completed campaign.

#826 SELECTED volume-phase diagnostic contract

Root selection 2026-10-11. Status SELECTED BEFORE CODE. This contract plus the explicit overrides below is authoritative for this NEW private diagnostic. Base 9eacb14c9675119fa310892170a6c8685328b9f0. Original measured source7cd449491a30ce1d655cd485a0c7051155a4221f and original native798737bc419f619d826533bbc21bea705f493212 stay immutable. New compact native9eac correspondence qualified1,924frames and supplies signed cache DATA only. Cost/physical NO_GO remain.

Root decisions overriding both proposals

  • Sole prefix examples/physics-soft-continuum-volume-phase-reference/**. Existing13,377tracked files immutable. Integration develop sole Execute writer; no package/lock/shared-root changes, product push/PR/deploy/release.
  • No fresh rest384 preparation. Mesh comes from original manifest.meshFiles/raw; no nonexistent mesh.json, no topology/rest factory. New compact cache.json/cache.f64le and qualification.json exact ordered paths/sign descriptors authenticated as DATA. Restore binary64 values from raw; compare each against JSON numeric metadata and sign lists; freeze384entries and arrays. Originalold383signs unavailable. Original cached-core copied verbatim, not compact scratch core.
  • Input time and output time use stepIndex*(1/120), not stepIndex/120 or oldTime+dt. Plane expression and scalar operation order unchanged.
  • Root input plan and tape plan appended below are SELECTED except these overrides. Exactly16refusals+4copy controls DATA only, exactly2detached computations maximum; stop at first error, no retry or retune.

Exact module interfaces and ownership

All functions synchronous. No module import executes model/reference work. A owns input.mjs and controls.mjs. C owns phase.mjs/projector.mjs/TRANSFER.md. B owns decode.mjs/geometry.mjs. Root owns tape.mjs/run.mjs/contract/providers/first receipts/archive/publication. All authors preserve other files.

input.mjs exports loadSelectedInput(selector), validateSelectedInput(selector,state,bankReceipt optional), getQualifiedContext(), getBankReceipt(), copyState(state), compareExpectedAfter(selector,state). Defaultreceipt is current authenticated private master; supplied copied receipt permits D15/D16. getQualifiedContext returns detached typed mesh/rest/inverseMasses and frozen shared cache, never private mutable master. Authentication performs no new constitutive/volume/rest calculation. Originalrecord accepted-domain proof is DATA. Existingquality failure is admitted.

controls.mjs exports runRefusalControls() -> serializable16result receipt and runCopyControls(captured) -> serializable4result receipt. captured is array EXACT2 {selector,input,result,tapeReceipt}. result from phase has before/after/counts; tapeReceipt is saved descriptor DATA copied by Root. These controls never import model. Result captured copies may be mutated only after their bytes are saved; compareExpectedAfter happens BEFORE copycontrols.

phase.mjs exports advanceSelectedVolumePhase(selector,state,traceSink). It validates input and traceSink function, gets detached qualifiedcontext, runs mechanically copied original body once, returns EXACT3 {before,after,counts}. No World/state-store/publicsetter/userhook. Counts fresh0/0, oldlaststep24576 preservedinput only.

Trace sink call argument EXACT8 {event,substepIndex,sweepIndex,tetIndex,counts,layout,values,flags}. values is a detached Array or Float64Array, null for no raw. Actual counts copied. layout enum/null. Sink return ignored. The sink is a Root-owned function with .captureFailure(error,failedCopy); C catches first thrown value, calls this collector once with detached workingp/v/bank and actualprogress/input/oldlambda, and rethrows the ORIGINAL value. If collection fails, the original remains the primary failure and Root records collector failure separately without payload inspection. No success is claimed after failure.

Root tape API createTape(outputDir,selector,quota) -> {sink,finish}. sharedquota tracks bothstreams and metadata; sync write numericalpacket first then complete JSONL before nextstage. finish closes streams, hashes files, reports observed counts/negativezero/nonfinite segmentpaths, no model imports. No observer receives working arrays.

Root run.mjs CLI one fresh outputdirectory argument. Authenticate input/context, run16refusals, independentlyload both BEFORE states, execute STEP120 then STEP121; save HOST_RETURN before historicalfullbyte comparison. Serialize summaries; run4capturedcopycontrols after comparisons. Manifest records actualsourceHEAD, nodeversion, all ownedoutputfiles bytes/SHA, bothtapereceipts/inputreceipt/controlreceipt/status/counts and immutable bank authority. Existing outputdirectory is refused. 120s FIRST externalwatcher,32MiB total with2MiB emergency,256MiB free minimum. Manifest and metadata normalaggregate <=512KiB. Tape append/terminalquotas per table. Firstfailure remains prefix; no discarded/retrieddata.

Independent saved-DATA qualification and geometry

Decoder CLI ONE manifest path. It imports no input/model/cache/World/reference module. Filebytes/hash/EOF, exactJSONLkeys/ASCII<=512B, eventplacements/indices/layouts/contiguousraw/counts/negativezeros/nonfinites/masks validated independently. Full375p/v/cursor/time/counts of BOTHHOST_BEFORE/RETURN bitcompare authenticated old119/120/121raw. Enforce49,768events/4,965,568rawB only if bothreturned. Projection49152attempts/returns actual. 16refusals/4copy receipts true. Savedsource identities bound to frozenproviders.

Geometry module uses its own explicitly expanded determinant expression over selected twelve savedcoordinates, not provider volume/core. Analyse every position-bearing event (for E18first12,R64projectedpositions at48..59,HS selectednodes18/24/19/49,otherlayoutsfirst12). Report actual signedvolume, relativevolume against savedtet91rest, eachstagechanges, per-sweepown-return vs later-scatter vs pinplane, involvedactualtetindices, maxima/minima and branchmasks. Velocity-after/currentpositions equality must be bitexact; no newmodelorforce calculation. Separate incomingconstitutiveC/A/rhs/delta/residual observations are DATA; do not infer compliantblock targets20%volume or call residualphysicalpass.

Exactly8 rational DATA samples, sameprocess BigIntbinary64 rational determinant, no child/reference IPC: for EACHselector HOST_BEFORE, firstTET91_RETURN, lastTET91_RETURN, HOST_RETURN. Use all12 actualbinary64values and authenticatedsavedrestcoordinates. Store numerator/denominator and float difference as report-only, never revise originalgate. Model reference/FD/rest preparation0. Newexpanded DATA arithmetic is not an independent constitutive model.

Qualification is DIAGNOSTIC_QUALIFIED only: nativeflow/copy/auth/tape/historicalbytes pass. Existing acceptedstep120volume.20143245079041205 and121.20312463135624437 still fail.20. No materialrepair/costbenchmark/Viewer/publicAPI/GPU/release GO. Packagebuild0/privateNode22ESMsyntax+actualownflow only. Actual Integration merge remains separate; codeadoption receipt must be exact, Integrationvalidationpending is never fullacceptance.

Selected input plan

#826 volume-phase input/facade contract — PLAN only

상태: Root 선택 전 계획. 문서만 작성했다. 코드·World·kernel·rest preparation·reference·test 실행은 0회다. 현재 공개 계획을 읽었고 local plan과 일치했다. 새 2단계 진단은 compact 비용 개선과 별개다. 계산 권위는 원래 source 7cd449491a30ce1d655cd485a0c7051155a4221f이며 compact scratch kernel로 대체하지 않는다.

1. 제안한 private API와 두 입력

새 owned prefix 제안: examples/physics-soft-volume-phase-reference/**.

  • loadSelectedInput(selector) → independently owned State5. DATA만 읽고 인증한다. model0.
  • validateSelectedInput(selector,state5,bankReceipt) → copied authentication receipt. DATA/shape/bit 검사만 한다. model0.
  • advanceSelectedVolumePhase(selector,state5,traceSink) → 성공 시 EXACT3keys {before,after,counts}. before/after는 State5의 독립 copies다. trace는 Root의 copied tape sink에 이미 보존된다. stateless detached host computation이며 World/store/getState/setter/restore/dispose를 만들지 않는다.

selector는 정확히 STEP120 / STEP121이다. STEP120은 historical BEFORE119만, STEP121은 independently loaded BEFORE120만 사용한다. 두 번째 입력은 첫 호출의 AFTER에서 만들지 않는다. Runner는 두 BEFORE를 고정 locators에서 별도로 읽어 그 provenance를 기록한다. AFTER120/121는 계산 후 비교할 authority이며 native 함수의 seed가 아니다.

각 State5의 정확한 keys:

{positionsM,velocitiesMps,stepIndex,timeSeconds,projectionCounts}.

p/v는 Float64Array375 copies, projectionCounts는 own plain exact2keys {tetBlockAttempts,tetBlockReturns}다. snapshot input에 selector/hash/cache/options/quality 같은 추가 key를 넣지 않는다. 그런 정보는 별도 인증 receipt와 readonly context에 둔다.

selector BEFORE cursor/time BEFORE last-step counts expected AFTER
STEP120 119 / 0.9916666666666667 24576 / 24576 historical120 / time1
STEP121 120 / 1 24576 / 24576 historical121 / 1.0083333333333333

시간 산술은 원래 식 그대로다. DT=1/120; input time은 원래 record/bits와 비교한다. 출력 time은 (sourceStepIndex+1)*DT다. n/120 또는 oldTime+DT로 바꾸지 않는다. substep plane도 (sourceStepIndex+(substep+1)/8)*DT, innerDt=DT/8의 원래 순서다. 입력의 last-step counts를 작업 counts로 재사용하지 않는다. 새 working counts0/0으로 시작한다.

2. 인증할 source/input/cache locators

원래 final native 798737bc419f619d826533bbc21bea705f493212의 immutable archive가 authority다. 아래 /tmp 경로는 그 원래 FIRST의 검증된 locator이며 Root가 final manifest와 연결해야 한다.

  • warmup.jsonl: 679184B, SHA 98ed5ea1a13e88af31e743364894fed3d1b54bded779545e21211e9a36948bc8.
  • raw/warmup-positions.bin: 1443000B, SHA 9b57a493fad1c8f6456e48003803abf21f44a0b51e3f8e39eec62593ad4efa32.
  • raw/warmup-velocities.bin: 1443000B, SHA 8f718e65aa8638f95c7e53f8c11c97b9bd8208e955aa04bc1f79c47fdeb047c8.
  • localisation DATA: /tmp/physics-826-continuum-world-localisation.json, 23810B, SHA 2a97ac51d9c83b1573a9f5717e106877a74c1fb5eb9d068316023e84d1c8f6e5. geometry는 다시 계산하지 않았다.
frame record offset / bytes / SHA p/v raw offset, each3000B
119 167587 /1415 / 3e6f4901bdc320b827ccb442539d69782c029d9155a4d724abd07e643fd9e14d 357000
120 169002 /1380 / e34742621e99cf4074be78f44e7b41c42a4c9d130356b35369b8cb2bc39e614a 360000
121 170382 /1398 / 911c6a6ff41f9a6c894f9f2ae144e01203ee93e9f74e5c005fc75ea28e0d3a46 363000

Per-frame position SHA119/120/121: d2baea7e31c6627a1e5e644b416da01383198bab213d1bc3bf0a73cb405f5e20, 2fe4aad0ed30cb76012bc21eededc1478c9bbf50409c54b76723663f4b0b2edb, a1b874ae8733d627008d9e3beb1ff7aa2f81138d683f312ee33171f985a2360c.

Per-frame velocity SHA119/120/121: 288ec38cc818605e78a31a22cfcf734d606fe1e1ccde0ed234ac473427bbc82c, 11ce2ca9774b91ea41b3590cbb7a83da32df567b475175c236b4402d227c9cf2, 1f64c2c98500822d86ef5657b616290cdd4b3a71bfe7b3eeef7527c6404a8e29.

Source copies remain immutable:

source file SHA256
old world.mjs 0162a53d2d525608306941affd28e8de0320a839c4edd0f216e5fe84a8823671
old projector.mjs cbbda6c00decc7dd1311086c1f6ee0b955e78c5e56c84124740481b021cfbb0a
old cached-core.mjs 44a61f6a0a13c5dbaaf80c5f475226cd8aff0afefbaf489f6fbd25e2e99bcbb3
old rest-cache.mjs b83f515dc26edaf87c7d32d8c477a47ae6199d5e8568eb1ef7189ef35a71d716
old kernel matrix.mjs 8b44eed2df0e5ab42de7ba7ed05b7a6272b96ac7edfab91d16053027416400fa
old kernel errors.mjs 41791189378657d3e6ecd8f1a90046390a0a444bf2523e01f7fa07b1897d7fa3

Root 제안: 새 signed cache DATA 재사용

old cache.json만으로384inverse의−0 signs를 증명할 수 없다. Root가 compact full correspondence를 확정한 뒤, 새 signed cache raw+JSON+numeric-path descriptor를 인증하고 DATA를 freeze한다. 과거383개 unseen signs가 기록돼 있었다고 주장하지 않는다. 새384rest preparation/mesh factory/reference 호출은0이다.

현재 새 locator:

  • /tmp/physics-soft-continuum-compact-cost-826-first/qualification/cache.json:121904B, SHA ac4709bc68d4c8dbcf06398037c5abfd59f0e0001ee7b59a779be8127919621f.
  • sibling cache.f64le:86016B/10752leaves, SHA 008f78f3425ccbb78f4ae9444e415168e5e668e588524abfc569d6b546a042b2.

인증한 packet의 ordered paths/sign list로 numeric zero signs만 복원한다. JSON에서 추측하거나 inverse를 다시 계산하지 않는다. cache entries의 exact6keys/order/frozen arrays를 유지한다. 원래 rest helper/source와384Fraction proof의 numeric 대응, 새cached12bits와 전체4flow correspondence가 시작 조건이다. Cache byte 표현만 새 DATA에서 가져오며 original core/mass/pins/host algorithm은 바꾸지 않는다.

3. wrapper guards와 오류 순서

selector를 먼저 검사한다. 이후 bank/source/cache identity→State5 own-data/shape→finite/bounds→cursor/time/counts→full raw/sign/input bits 순서로 확인한다. 모든 BEFORE와 context가 유효하기 전에 core를 호출하지 않는다.

  • unknown selector/type: RangeError / Unsupported continuum phase selection.
  • known bank/hash/shape/raw/cursor/source/cache mismatch: Error / Continuum phase input authentication failed.
  • invalid traceSink type은 wrapper boundary에서 후자의 auth 오류로 거절한다. 새 public error는 없다. 이 미관찰 guard를20control에 추가해 실행하지 않는다.
  • input object는 exact5own data keys이며 getter 호출/타입 변환은 없다. p/v375 finite, component bounds2m/100mps; counters는 exact2data integers와 원래 실제 counts다. 원래 pins/positive volume은 인증한 accepted record/raw/decoder evidence에 대응한다. zero-model guard를 위해 새 volume 계산을 추가하지 않는다.
  • input120의 기록된 volume-quality failure는 허용한다. QUALITY≤.20은 input admission이 아니다. 새 거절 기준이나 완화를 추가하지 않는다.
  • reflection/IO/trace/storage에서 실제 나온 unknown value의 payload fields를 읽어 known numeric error로 바꾸지 않는다. 원래 numeric errors의 class/message/priority를 유지한다.

4. mechanical detached body와 관찰 tape

새 C modules는 old world.mjs:38–76 host body와 projector.mjs:31–50 sweep body만 기계적으로 복사한다. old createContinuumWorld/getState/step을 호출하지 않는다. 인증된 State5에서 staged p/v를 복사하고 fresh768lambda와 working counts를 만든다. 원래 unchanged cached-core를 사용한다. material/tet order/mass/pins/damping/plane/reset/scatter/guards는 같다.

순서는 prediction→lambda begin→8sweeps×384coupled blocks→pin-plane→velocity reconstruction→substep check→default-absent hook stage/final check다. user model hook은 없다. 성공 후 copied AFTER snapshot을 반환하며 persistent accepted store는 없다.

Root tape sink에는 이미 계산한 값의 deep copies만 보낸다. callback 반환값은 무시한다. workingp/v/lambda/cache/borrowedcore를 전달하지 않는다. 각 row를 다음 stage 전에 저장한다. trace throw는 같은 value로 prefix를 멈춘다. 실패한 input을 바꾸거나 full AFTER를 만들지 않는다.

각 substep prediction 전후, reset 도달, velocity reconstruction 후, 모든384scatter 후 selectedtet91p12, pin-plane 전후와 실제 조건 flags를 기록한다. own tet91block의 input/weights/oldλ/같은 incoming H/D/gradients/A/rhs/condition/residual/Δλ/dx/returned positions/updatedλ는 기존 계산 결과에서 복사한다. 두 번째 evaluate/project/reference 호출은 없다. pin branch가true이고 위치가 같아도 실행 이벤트다. accepted-plane membership을 clamp event로 바꾸지 않는다.

최대2host attempts/returns,49152blocks,128own-tet blocks/128pin-plane phases다. internal evaluate/determinant는 source-inferred이며 unreached field는null이다. 실제 counts를 계획값으로 채우지 않는다. final AFTER120/121 p/v/cursor/time/counts를 historical bytes와 비교한다. BEFORE는 아래 controls로 검증하고 AFTER는 새 실제 결과만 쓴다.

5. 고정20 DATA-only controls — 제안

16refusal은 validateSelectedInput/selector/data adapter에서 각1회다. 모두 core/projector/host computation0, source 변경0이다.

ID 단일 변경 expected
D01 selector undefined RangeError/selection
D02 selector STEP122 RangeError/selection
D03 state null Error/auth
D04 State5 extra own key Error/auth
D05 one required key missing Error/auth
D06 positionsM accessor instead of own data Error/auth, getter calls0
D07 positionsM length374 Error/auth
D08 one velocity NaN Error/auth
D09 one position component2.01 Error/auth
D10 one velocity component100.01 Error/auth
D11 STEP120 withsourcecursor120 Error/auth
D12 timeSeconds changed to0 Error/auth
D13 one last-step counter24575 Error/auth
D14 finite in-bound sourcepos[0] changed to0 Error/auth, raw mismatch
D15 expectedsourceSHA replacedwith64zeroes Error/auth, sourceidentity
D16 cachepacketSHA replacedwith64zeroes Error/auth, cacheidentity

selection/auth는§3의 exact messages를 뜻한다. 각 guard 전후의 full original state bytes/counts/context hashes는 같아야 한다. mutable test copy만 바꾼다. badsource/cache test도 auth receipt copy만 바꾸며 실제 provider/asset은 유지한다.

4copy checks는 이미 필요한2loaded BEFORE와2returned AFTER를 serialize한 뒤 각1회 수행한다. 추가 successful calculation은 없다.

  • C17: loaded119 caller copy p/v/counts를 변경한 뒤 저장된before119/input master/source/cache가 불변인지 확인한다.
  • C18: independently loaded120 caller copy를 변경한 뒤 before120master와 STEP120input이 불변인지 확인한다.
  • C19: STEP120 captured before/after/tape nested copies를 변경한 뒤 source119/120, immutable cache, 저장 packets와 STEP121input이 불변인지 확인한다.
  • C20: STEP121 captured copies를 변경한 뒤 STEP120의 기존result/input/context/저장 packets가 불변인지 확인한다.

복사 제어는 copied fields와 aliases의 관찰이며 새 callback-fault host call은 아니다. sink가 live work를 받지 않는 경계는 source transfer와 실제 저장된2call tape/raw 대응으로 확인한다. 미실행 callback fault를 passed로 기록하지 않는다.

6. counts/stop/ownership

DATA controls는 exact20, 새 detached model computations는 최대2다. oldWorld/create/restore/step/full119replay0, oldnativeprimitive/ref/FD replay0, newrest384prepare0이다. 첫 numeric/trace/transport/auth/parity failure에서 나머지 계산을 멈추고 실제 prefix/unknown custody/raw를 보존한다. 첫 호출이 거절되면 두 번째는 unreached다.

DIAGNOSTIC_QUALIFIED는 historical finalbytes/phase 관찰의 일치다. volume20% 기준이나 physicsGO가 아니다. first120=.20143245079041205/peak121=.20312463135624437을 유지한다. 새로운 정밀도/cost gate,960/refinement/browser,stress calibration은 없다.

Root가32MiB/2MiB emergency/256MiB reserve/120s watchdog, event exactkeys/row counts/framing, native/cache/source manifests와 paths를 선택하고 freeze한다. A는 input/auth/20controls, C는 observed originalhost/projector body, B는 file-only decoder, Root는 tape/run/receipts를 소유한다. 아직 구현하지 않는다.

Selected tape plan (fresh384rest optional sentence overridden above)

#826 volume-phase tape — exact proposed selection

Status: PLAN ONLY, requiring Root selection before code. No implementation/model/reference/test execution. This refines the current Wiki Physics-Soft-Continuum-Volume-Phase-Plan.md; no candidate or inherited file was edited. Current compact FIRST is a separate cost experiment and cannot replace this diagnostic's source silently.

Authority and two calculations

Use immutable original World source7cd449491a30ce1d655cd485a0c7051155a4221f, not an unqualified scratch variant. Source locations: world.mjs:38–77 and projector.mjs:31–50 under the original examples/physics-soft-continuum-world-reference/. Preserve source scalar operations, guards/errors, original mass/pins/order, E1000/nu.3 and eight substeps/eight sweeps. Old physical volume NO_GO and public1003–1006 blocking remain.

Exactly two NEW detached computations, ordered STEP120 then STEP121, independently load saved BEFORE119 and BEFORE120. Each advances once; STEP121 never uses STEP120 diagnostic output as input. Authenticate original p/v/raw/signs/375-lengths, metadata5keys/cursor/time/counts, mesh/provider identities and saved AFTER120/121 locators first. Input120's quality failure is not a numeric admission refusal. No old World creation/restore/step, previous119-step replay, extra primitive/reference population or setter. A fresh unchanged rest-cache preparation may run ONCE384 entries to preserve arithmetic/zero signs; count this separately, compare historical numeric rest proof and do not claim old JSON contains unseen383 inverse sign bytes. Independent reference IPC0.

Root selects new private facade/selector/authentication errors and source-transfer ledger before implementation. Proposed literals remain RangeError/Unsupported continuum phase selection and Error/Continuum phase input authentication failed, both before arithmetic. Original calculation errors propagate unchanged. Unknown thrown objects never enter serialized payloads.

Common JSONL envelope and binary layouts

Every event EXACT9 keys: {seq,selector,event,substepIndex,sweepIndex,tetIndex,counts,raw,flags}.

  • seq is0-based per selector and increases1; selector STEP120/STEP121. Manifest fixes source/target119→120 or120→121, dt1/120,h1/960, tet91 directed local order[18,24,19,49]. No moving-geometry selection.
  • indices are actual0..7/0..7/0..383 or null when inapplicable. counts EXACT {tetBlockAttempts,tetBlockReturns}, copied from actual working counters at that point, not schedule formulas. Integer returns<=attempts; incomplete block may have attempts−returns1.
  • raw is null or EXACT {offsetBytes,bytes,layout} into that selector's append-only F64LE stream. Layout fixes all numeric field paths/order; no numeric arrays repeated in JSONL. Offset is8-aligned and includes no gaps. Manifest retains stream SHA/length and negative-zero/nonfinite field locators. flags is null unless defined below. All normal events and enums are ASCII; UTF8 event line including LF<=512B, checked before write.
Layout Ordered numeric fields / F64 count
HS754 positions375,velocities375,stepIndex,timeSeconds,last-step attempts,returns /754
PV24 tet91 selected positions12, selected velocities12 /24
L768 actual working multiplier bank768 /768
E18 actual gathered tet91 input12, original inverse masses4, old multipliers2 /18
R64 actual core constraints2,H12,D12,A(row-major4),rhs2,deltaLambda2,updatedLambda2,dx12,projected12,rho,normalizedCondition,residual,projectedJ /64
P12 selected positions in fixed four-node XYZ order /12
PP13 selected positions12, actual current-substep planeY /13
VR37 selected positions12,selected velocities12, actual substep BEFORE positions12,h /37

SI: positions/dx m, velocities m/s, multipliers kg·m2, gradients m^-1,A (kg·m2)^-1,rhs/C/rho/J/condition/residual dimensionless. p/v are copied from actual working arrays; E18/R64 use ALREADY computed core values. Do not call evaluate/project twice, calculate a new stress field or move a validation to fill a record.

Exact event placement and full-run maxima

Event Placement / flags Per selector Both
HOST_BEFORE / HOST_RETURN Owned authenticated input / copied fully returned candidate; HS754; flags null 1+1 4
PREDICTION_BEFORE / PREDICTION_AFTER After original before.set(nextP), immediately before damping loop / after it; PV24 8+8 32
BANK_RESET Immediately AFTER original beginSubstep; L768; null flags 8 16
TET91_ENTER AFTER attempts++ and before original core call, tet91 only; E18 64 128
TET91_RETURN AFTER returns++ and before original scatter, tet91 only; R64 64 128
SCATTER_AFTER AFTER each full four-node scatter, BEFORE its bank.write; all384tets; P12 24,576 49,152
PIN_PLANE_BEFORE / PIN_PLANE_AFTER Before/after original125-node branch loop, each sweep; PP13 64+64 256
VELOCITY_BEFORE / VELOCITY_AFTER Before original reconstruction / after original pin-velocity fill; PV24/VR37 8+8 32
SUBSTEP_VALIDATED AFTER original check returns; no raw; flags {passed:true} 8 16
HOOK_STATUS At original default-absent postmodel hook boundary; no raw; flags {present:false,called:false} 1 2
FINAL_VALIDATED AFTER original final check returns; no raw; flags {passed:true} 1 2

These rows total24,884 events/selector and49,768 complete events. Numeric payload totals310,348F64/selector=2,482,784B, or4,965,568B across both. There are128 own block attempts and returns,128 pin-plane loop returns and16 bank resets when both complete. The128 own returns are additional observations of existing blocks, not extra computations. Tet blocks total49,152 attempts/returns. Counts increment at original source locations only. Bank-write failure after SCATTER_AFTER has a reached scatter but no completed bank write; preserve that distinction in failure progress. No hidden375-node snapshot per block.

PIN_PLANE_BEFORE flags=null (branches not reached). PIN_PLANE_AFTER flags EXACT {pinMaskHex,planeMaskHex}:32 lowercase hex characters each, representing actual original branches for ALL125 nodes, LSB-first within16 bytes with the final3padding bits zero. Set pin bit only inside inverseMass===0 branch; plane bit only inside the existing else-if Y>plane branch, before assignment. Never infer them from AFTER equality. Masks must be disjoint; source pins are authenticated but a branch need not have changed already-equal coordinates. Selected before/after positions expose whether tet91 changed; all125 flags retain whether other nodes were constrained before the next sweep. No extra branch/force/impulse computation or causal claim.

Rows from later stages cannot occur before earlier required rows. For own tet91, TET91_ENTER precedes TET91_RETURN, which precedes its SCATTER_AFTER. Between two scatter records, only the prescribed own-block records may appear; pin-plane after a full384 sweep then the next sweep/prediction begins. Reached progress is not filled to maxima when a check/core/storage operation fails. Internal evaluate/determinant counts stay SOURCE-INFERRED unless instrumented, and no new numerical evaluation is added to measure them.

Failure, storage and disposition

After the first failure stop both computations. At most one optional terminal FAILURE event (no binary payload; flags EXACT {failureReceipt} with its confined filename) makes total event cap49,769. Separate failure JSON<=8KiB records actual progress, attempted/returned counters and safe known error metadata, or knownError:null/unknownThrown:true. Its raw working p375/v375/lambda768 plus reached input12/oldlambda2 have explicit nullable segment descriptors: never fill missing segments with zero. Maximum extra failure numeric payload1,532F64=12,256B. Input remains untouched; no full final result is fabricated. A storage callback throw preserves original unknown identity in memory; a failed emergency write cannot turn a prefix into a pass.

Total numerical bytes including maximal failure<=4,977,824. With49,769 event lines capped512B (25,481,728B) and all non-tape manifests/outcomes/guard/source receipts capped512KiB, the declared maximum is30,983,840B, below the30MiB normal quota31,457,280B. Reserve2MiB within the32MiB total cap for first-error/emergency metadata;256MiB free-space minimum;120s Root watcher for both computations including auth/copies/IO. Do not duplicate old archive files. Actual sizes/row counts/EOF/hashes are measured, not replaced by these maxima. Root must explicitly accept these framing/size limits before code.

Persist detached numeric packet and its completed metadata line before the next stage. Final publish and raw equality check occur after HOST_RETURN is saved; comparison failure therefore retains actual final bytes. A root failure receipt may omit FAILURE line if transport/storage prevents it, but retained prefix cannot qualify. Decoder parses saved raw only, checks stage/count/layout coverage and bit-exact final375p/v/cursor/time/counts against historical120/121, then analyses volume at selected events with independently expanded/Fraction geometry. It imports no model/cache/World and adds no reference process. Mutable views, missing required points, stale lambda/input, unrecorded guard changes, unresolved reference or byte disagreement fail diagnostic qualification.

Root chooses bounded DATA-only selector/hash/shape/raw/copy refusals before code; their arithmetic model count is0 and they cannot add a third successful computation. Successful final correspondence is DIAGNOSTIC_QUALIFIED only. Existing physical .201432/.203124 volume failures remain, and cost/browser/public1003–1006 remain separate. Root owns selection, source freeze, exact immutable input/source authentication, implementation dispatch, FIRST, archive and Wiki. This document implements none of them.

Static wire clarification before FIRST

Tape receipt adds absolute FIRSTdirectory/eventBytes/eventSha256/rawSha256. C19/C20 read existing saved files before/after captured-copy mutations and assert both actual hashes unchanged; no write or extra computation. Decoder reads streams relative to manifest directory (custody relocatable) and verifies receipt hashes separately. File-only decoder externalwatcher30s, own metadata output capped512KiB. Root knownError allowlist uses original exact Invalid tetra input/Unsafe tetra state strings. Unknownreflection failures never replace primary thrown identity. These source clarifications happen before any new numerical execution.

Full selected contract identity da851def516922b2f57ea0ccd51576187cc587aa is stored in run/decode. First failure metadata is stored before stream finalization; a secondary finalization failure is separate and unresolved block counts are null, never synthetic0/pass. No fault-injection host run is selected or claimed.

Sync stream writes check the returned actual byte count; a short write stops before the next model stage with Phase transport write refused. Partial bytes remain first-failure custody; no retry or completed-row claim. Maximum branch envelope was statically335B under512B; this is a schema calculation, not model work.

Before-FIRST static review C found emergency metadata sharing the normal512KiB quota. Root separated the2MiB emergency ledger from normal metadata, kept total32MiB, and retained primary exception plus stream finalization even if first-failure receipt writing fails. Source-only correction; no failed model run or quota injection executed.

Clone this wiki locally