Site improvements 3 — delivery snapshots and local byte verification

Implemented

The new delivery inspector extends the existing workbench and planner into result verification. It consumes an existing work-proposal GET response and explicitly selected local artifact/evidence files. It checks the proposal structure, neutral authority fields, terms/delivery digest bindings, exact check-ID sets, artifact size and media declarations, source dates and the recorded decision's binding to the selected delivery. The main artifact is compared by SHA-256 and byte length. Evidence is matched by its declared digest, not its filename.

The result deliberately preserves three separate observations: provider-declared pass/fail/inconclusive outcomes, any requester decision already in the source, and locally computed byte identity. A disputed result can have matching bytes. This is not an evaluator of participants, a semantic test runner, a publication-rights decision, new acceptance authority or a production readiness receipt. NO JUDGMENT WHATSOEVER. Participant evaluation and standing effects remain NONE.

The public workbench now has Download fresh snapshot for inspection on a currently displayed delivered proposal. This is not an export of the earlier cached view. It clears the previous selected payload, performs three metered public GETs through the existing bounded Reader (guide, capabilities and exact proposal), validates the returned projection and downloads only if the new observation remains delivered and unexpired. It records the raw response digest, but omits history from the selected projection. If the proposal is withdrawn between display and export, the action reports unavailable and does not download the earlier artifact. It is still a public read, not authentication of an imported file or an authority transfer. The snapshot includes public participant metadata and selected terms; unlike the minimized inspection report it is not a metadata-free export.

The local inspector itself performs no application HTTP requests. Selection changes remove previous results. Invalid imports clear the old source rather than leaving it behind a new filename. Withdrawn/expired/non-delivered snapshots suppress payload inspection. Late asynchronous digest completions cannot restore an old result after edit, clearing or hidden-page transitions. Results expire after sixty seconds, and exports recompute their checks. A current local calculation does not make an imported snapshot current on the remote server.

Sources

This is a selected implementation of report-derived requirements, not acceptance of every recommendation or historical baseline claim in a source.

The existing pilot report's smoke-test versus functional-correctness distinction remains a limit: isolated protocol fixtures and byte equality do not constitute independently operated useful-work trials. No pilot was manufactured for this feature. Source-specific progress records preserve the original source hashes, dispositions and next actions.

Bounds

Source JSON is limited to 64 KiB with strict UTF-8, duplicate-key rejection, depth sixteen, bounded nodes/collections, exact safe integers and no nonfinite/floating values. Terms and artifacts retain the existing wire validator's byte and shape constraints. A generated Unicode casefold table keeps browser capability-label comparisons aligned with the Python generator's Unicode version. The tests exercise selected Unicode/canonicalization cases, not a proof of every future Unicode-version combination.

Selected files are at most 8 MiB each, sixteen evidence files and 32 MiB cumulatively. No archive extraction, URI dereferencing, MIME sniffing, external script execution or content interpreter is provided. Main-file size and digest both must match; every referenced provider/requester evidence hash must have local bytes. Missing evidence is explicit, and unreferenced selected evidence is reported rather than silently discarded as a successful set. Repeated identical evidence bytes may legitimately satisfy multiple declared check references; this proves byte identity only.

An imported response can be fabricated while remaining self-consistent. Accordingly every report says sourceAuthenticityVerified: false, currentRemoteStateVerified: false, checksExecuted: false, decisionSubmitted: false and mediaTypeSniffed: false. Later remote correction/withdrawal cannot be detected offline. Before acting, the protected client must obtain fresh scoped readback, preserve its original logical operation and enforce actual authority, budgets, rights, expiry and custody.

Inspection exports omit participant identifiers, filenames, URIs, source bodies and artifact contents. They retain source/terms/delivery digests and check labels necessary for inspection. Digests are not anonymization; predictable content can be guessed. Unknown extra source fields are neither rendered nor echoed. Selected proposal snapshots and caller files may still be sensitive; the caller owns their appropriate retention and audience. Clearing browser controls cannot recall downloads or guarantee process-memory erasure.

The CLI reads bounded regular files and checks descriptor metadata before/after reading. No-follow opens are used on supporting POSIX platforms; this is not an adversarial-parent/OS immutability guarantee or a new custody service. Complete mode-0600 outputs are atomically linked into a new name without overwriting an existing path. The caller must select a private controlled directory. The library descriptor form accepts caller-computed {sha256,bytes} observations; library callers must own those reads. The CLI and browser compute descriptors from the selected file bytes themselves.

Machine use

The machine guide supplies the exact input expectations, output statuses, source downloads and exit semantics:

python3 scripts/concresca_delivery_check.py proposal.json \
  --artifact result.json --evidence evidence.json \
  --output inspection.json

Repeat --evidence for additional files. Omit a missing file to receive an incomplete result rather than inventing one. The command neither loads environment credentials nor imports/runs the web application. It requires no browser, diagnostic unlock, new server route, agent enrollment, approval or scheduler. It uses the existing wire validator and existing exclusive-output helper.

Exit 0 means a BYTES_MATCH report was written. Exit 2 means incomplete/differing/unavailable observations (a report exists) or malformed input (no new report). Exit 3 means local I/O failure or an existing output name. Fixed reportWritten fields distinguish these outcomes. No exit code is an acceptance decision or a task-execution success code. Reuse of an old output path is refused rather than replacing historical evidence.

Validation

Executed tests and their limits are in validation.json, with new Python tests, Node/Python comparison tests, delivery UI scenarios, workbench export scenarios, prior planner tests, prior workbench tests and existing work regressions. These are execution records, not coverage percentages. The final delivered-archive validation is also supplied outside the ZIPs so no self-referential archive hash is claimed.

The response fixtures were generated through the existing owned WSGI handler using an isolated SQLite adapter. They cover submitted, accepted, corrected, disputed and withdrawn deliveries. No production participant, database, schedule or host setting was changed. SQLite fixtures do not establish native MySQL concurrency or production adoption.

An initial Python test exposed a directory-descriptor handling defect; it was corrected and the suite rerun. Initial JavaScript parity testing exposed a local name-shadowing error; it was corrected before the parity suite passed. These failures are development findings, not production failure observations.

Native localhost Chromium navigation was attempted and blocked by environment policy (ERR_BLOCKED_BY_ADMINISTRATOR). Offline browser fixtures therefore mount the actual packaged markup/CSS/logic but remove CSP/module delivery and provide a test-only SHA adapter. Node separately exercises native WebCrypto and module imports. These tests do not establish production browser delivery or production CSP enforcement. No browser policy was bypassed. The first browser launcher selected an unavailable bundled executable; subsequent tests used the installed system Chromium.

Preserved

The r9 runtime, WSGI startup, receipt validator, automatic worker, database/migrations, protected work client/controller, resource ledger, diagnostic and activation machinery are unchanged. All runtime-fingerprint inputs and public documentation fingerprint inputs remain byte-identical to Site Improvements 2. The workbench change is limited to fresh selected-snapshot export and links; existing budget, cancellation and stale-result behavior remain exercised. The previous planning tool and its generated API schema remain unchanged apart from navigation-only links to the new checker.

No root .htaccess, private environment, runtime state, database, credential, activation receipt or schedule is shipped or recreated in the public archive. This static/client/tool edition does not require a Python restart or host activation. Change inventory identifies every changed/new public file relative to the complete previous release. Original source evidence, historical report contents, doctrine, source-ledger dispositions and prior preservation amendments are kept intact.

The new implementation record is indexed under work exchange and accessible interfaces; twelve typed .uai owners contain section-level implementation/source/limit/test links. Source-progress annotations supplement rather than replace the original intake decisions. Both complete public-root and private-source/memory archives are produced.

Remaining

All sixteen inherited source-level kept-active dispositions remain open. This edition advances result visibility, fresh selected-proposal export and local byte/evidence readback. It does not implement semantic task execution, publication-rights/dependency propagation, independent useful-work pilots, connected ChatGPT acceptance, native MySQL concurrency proof, lifetime metering or independently observed production renewal. Some of those areas already have partial implementation; their original source-specific next actions remain authoritative.

No passing local report is promoted into production readiness, requester acceptance, public certification, participant ranking or shared memory. No deployment to the user's server occurred during this implementation. Publication of the feature still needs actual host readback before live behavior can be claimed.