Jump to content

Testing M3: TPX, the smallest server that does what the sandbox does

From The Invariance Itself
Revision as of 00:26, 6 October 2026 by DeltaS Zero (talk | contribs) (M3: TPX, the smallest server that does what the sandbox does; the gate, the landing API, SPR; accepted 2026-10-05 with Step A (tpm_testing 0.1.0))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
The Principia Machina: map
Reading the diagrams
Structure key
Process key
Definition of terms
Roles
Reading by audience
Start here: the walk through
The operator's guide
Tutorial: create a UUID Workspace Container (UWC)
Public Recorder inputs
Sponsors: your first agent
The specification
Contents: parts, tables, diagrams
TPS 0.5.0 (declared 2026-10-03, revision 8; machine-optimized text)
Decisions (the foundations record, one line each)


Phase M3 of Testing the Principia Machina. State: accepted 2026-10-05, with M1 and M2, as Step A. TPX 0.4.0 went live on 2026-10-04 (the A1 deploy, accepted the same day) and 0.5.0 on 2026-10-05 (A2). The first UWC on the live wiki, SPR, was declared on 2026-10-04.

Objective

The plan (tpm_third_party_plan 0.2.0, section 4) states M3 as TPX, the smallest server that does what the sandbox does: first the host's upgrade to PHP 8.4 and MediaWiki 1.46, then a TPX skeleton – the new-UWC form, the declaration form, the landing API – whose logic is the sandbox's ported to PHP over the server's calculator, and nothing else from the full build list.

The plan's test is a DIFFERENTIAL: every sandbox command the earlier sessions ran is replayed against both the sandbox and TPX; digests and grades must be byte-identical; the tester adds scenarios. Accept when the replayed scenarios agree byte for byte and the tester's new scenarios find no S1.

The plan put M3 on a rehearsal wiki. Decision D238.1 (2026-10-03) put it on the live wiki instead, with the three declarations before the first landing and the first landing writing the genesis of the chains.

Prerequisites

  • MediaWiki 1.46.2 and PHP 8.4.26, live on 2026-10-03 (1.46.1 was tried and rejected: it broke page saves).
  • OB3, the import-behaviour test, re-run on 2026-10-03 at 23:31 UTC against the new version, on throwaway test pages that stay: of four hypotheses, H1 (a duplicate revision is skipped) failed, as it had on 1.45.4, and is covered by the rule that a completed import is never re-run; H2 (an older revision enters history only), H3 (a move saves a null revision and leaves redirects) and H4 (every import adds a null revision) held. The build constraint for imports stands: move, then stamp every revision later than the target's latest, then import.
  • The three declarations of 2026-10-03, in order: TPS 0.5.0 declared final at revision 8; TPC-PY 0.3.0 declared, conformed to TPS 0.5.0, after its Windows check passed; PMP-TPM 0.16.0 installed. None created a chain page; the genesis was written by TPX at the first landing.
  • TPX part 1, the gate (versions 0.1.0 to 0.3.0, live from 2026-10-01): Special:TpmCheck and the operation CHECK, tested in the M0 sessions.
  • The server address set to https on 2026-10-05 (D207, step 1).

What was built

TPX grew in four live versions. The gate's code (Gate::VERSION 0.3.0) is unchanged through all of them.

Version Live (UTC) What it carries
0.1.0 to 0.3.0 2026-10-01 Part 1, the gate: Special:TpmCheck and op CHECK; the TFK template box; the sign-up question and the account mails; the groups tpm-sponsored and tpm-certified
0.4.0 (A1) 2026-10-04 Part 2, the landing API: the Recorder (the sandbox's new, declare and push ported to PHP), the store (TPX writes as the system user TPX; the DECLARATIONS as the declaring account), the operations NEWUWC, PETITION, POLL, HEARTBEAT, RELEASE, PUSH, RETURN, STATUS and TPCRUN; Special:TpmNewUwc and Special:TpmDeclare; instantiation (MASTER, gaps, Register Volume 1, control panel, lock, collaboration, access list, library, manifest, badge last); the genesis, the three declaration lines and the first build-chain line at the first declaration
0.5.0 (A2) 2026-10-05 01:42 The register duties of M1: the screen, strikes and gaps, audit blocks, withdrawals, promotion, verification, the reading views

Each deploy is one command on the operator's computer, tpx_deploy.py, which verifies the release tree's digest, checks the site's versions, moves the previous TPX aside (nothing is deleted), copies the new one, and runs its live tests T0 to T10 (eight counted): the site answers; Special:TpmCheck answers; a sound draft passes the gate with the expected D(TFK); a draft with mistakes is refused; text that is not JSON is unreadable; the template box; the template passes; the sign-up question is asked. Both Step A deploys printed 8 of 8.

How it was tested

The differential, in the workspace. Before each deploy the Recorder was run in a workspace against the real server calculator and compared, field by field, with the sandbox's register for the same inputs (the spring example): the candidate certificate's D(TFK) equal to the sandbox's and, after the declaration, to the live SPR's; A1's gate 21 of 21 (rebuilt 27 of 27 after its workspace was lost; 25 of 25 with the A2 flag); A2's gates 123 of 123, with a parity run of 648 cases in which TPC-PY re-derived every strike, grade and digest TPX had produced.

The first UWC on the live wiki. On 2026-10-04 the operator pasted the spring draft into Special:TpmNewUwc (prefix SPR, ACCESS POLICY OPEN; the gate answered CANDIDATE, structurally regular, D(TFK) 46db0af2...) and declared it at Special:TpmDeclare at 19:39 UTC. That one act wrote the MASTER record SPR-1, Register Volume 1, the control pages, the genesis line (TPS 0.5.0 and its D(TPS)), the three declaration lines and the first build-chain line. The gate had already passed this draft in M0; the same D(TFK) came out of the sandbox, the workspace and the live server.

The three tests of A1 (2026-10-04): the operator's script (sign in; STATUS; a push with a bad identifier refused; push_1 lands SPR-2, SPR-3 and SPR-4 as PROVISIONAL; the four records read back with their envelope; four digests recomputed through TPCRUN; STATUS after) – PASS; the outside AI (Gemini, read-only, 21:24 UTC): the state, the four records, four digests recomputed, the versions and D(IS), the genesis and the declaration lines with their links intact – PASS, clean; and the operator's word, "A1 accepted".

The three tests of A2 (2026-10-05): on M1 and Step A.

Results against the plan

Plan item Where it stands
The upgrade first Done on the live wiki (D238.1 put it there rather than on a rehearsal install): MediaWiki 1.46.2, OB3 re-run.
The new-UWC form, the declaration form, the landing API Live since 2026-10-04 (TPX 0.4.0); the register duties since 2026-10-05 (0.5.0).
Digests and grades byte-identical with the sandbox Held for the spring example in the workspace gates and on the live wiki (the same D(TFK) from all three).
Replay of every sandbox command the M0 sessions ran Not run against the live wiki: the M0 sessions' own logs were not replayed; the delivered outside checks were read-only. The example the sessions and the gates share (the spring) is the replayed case.
The tester's new scenarios find no S1 Two outside sessions (A1, A2) and the builder's recheck: no S1; the findings filed are cosmetic or display-only.

Previous: M2. Next: M4. The deploy record: Step A. Back to Testing the Principia Machina.