Implemented client functionality · locally tested

Site improvements 1 — public workbench and bounded artifact checks

This is implemented client functionality over the existing r9 runtime, not another documentation-only integration or a new production-acceptance claim. The selected work is locally tested; production publication and independent use remain unobserved in this task.

Implemented

The new /coordination/workbench/ is served under the existing approved coordination prefix. No new runtime route, database, storage authority, credential, scheduler, or acceptance mechanism is introduced.

The existing Collaborate landing page, generated work guide and documents index now link the workbench. The documents index's duplicate report-library section/ID was removed. The guide generator was updated with its generated HTML; its contract JSON and fictional examples are unchanged.

Source decisions and implementation mapping

The selection follows the supplied reviews, not every claim in their commissioned source reports.

Bounds and authority

Each tab has 40 attempted API/document reads; each accepted response is limited to 512 KiB and cumulative received chunks to 4 MiB before stopping (the over-limit chunk is discarded). Timeout is 10 seconds per request with AbortController; this is not a real-time scheduling guarantee. A failed/cancelled request consumes an attempt. A 429 imposes a bounded Retry-After wait and does not auto-retry. At most 20 objects are displayed per page. All source URLs are fixed or generated from validated identifiers/cursors; arbitrary URLs, alternate origins, POST-only paths, redirects and credentials are rejected.

The Python helper fetches only the two fixed canonical HTTPS sources, once each, without redirects/retries; each body is limited to 512 KiB and each urllib socket operation has a 10-second timeout. These are transport limits, not an unconditional DNS/process wall-clock guarantee.

The workbench issues no application mutation request. Existing owned GET behavior may still perform its already-defined bounded retention maintenance. Browsing can be recorded in ordinary host access logs; no zero-logging claim is made. External input/artifact/evidence references are displayed as inert text, never fetched by the workbench. No participant body, identity, credential or cost profile is included in comparison/byte-check exports.

Validation

Validation is reproducible from the delivered test sources; dated counts are not coverage percentages.

Browser boundary: administrator policy blocked actual navigation to both localhost and the canonical host. Chromium interaction tests mount the packaged markup/CSS/application logic offline, remove the CSP and ESM imports for the fixture only, inject a fixed-source transport and supply a SHA adapter. They are not native page-delivery/CSP/WebCrypto acceptance. Actual module hashing is also tested under Node WebCrypto; actual route ownership/static responder/MIME checks are separate Python tests. No policy file was modified to bypass the browser restriction. Production assets retain CSP, ES modules and native browser WebCrypto.

Fixture objects are created through the real owned WSGI application with isolated SQLite transport and explicitly simulated availability metadata. They are not production records or proof of MySQL concurrency. The test fixtures and screenshots are labeled as local; no sample work is injected into the production list.

Development checks encountered these limits: the first fixture correctly reported its simulated database unavailable, and native Chromium navigation was blocked. Availability metadata was explicitly mocked only in the test fixture; production availability requirements were not weakened. Review also caught the original unregistered /workbench/ path before packaging; the delivered route uses the existing /coordination/ prefix. Per-record expiry handling was corrected so expiry of one row cannot stop later rows from being suppressed.

Test transcripts: Node module tests, new Python tests, existing runtime regression tests, and Chromium DOM case record. Generated production-activity fixtures are not included in the website.

Reproduce the checks

Run from the private source root, with Python, Node, and the project test dependencies installed. The fixture generator uses isolated SQLite and never calls the production site. Keep generated fixtures outside the webroot.

python -B tests/workbench/build_fixtures.py /tmp/concresca-workbench-fixtures.json
WORKBENCH_FIXTURES=/tmp/concresca-workbench-fixtures.json node --test tests/workbench/core.test.mjs
python -B -m unittest discover -s tests/workbench -p 'test_*.py' -v
PYTHONPATH=.:scripts python -B -m unittest test_owned_work test_owned_work_root test_concresca_work_read_client test_work_client_public_contract -v
python -B scripts/refresh_work_guide.py --check
python -B scripts/validate_report_memory_integration.py

The documented offline DOM harness additionally needs playwright, beautifulsoup4 and Chromium at /usr/bin/chromium. It uses no production network requests:

python -B tests/workbench/browser_test.py /tmp/concresca-workbench-fixtures.json /tmp/concresca-workbench-browser

The optional audit helper below is different: it deliberately makes exactly two read-only production HTTPS requests. Its success would establish only the selected live field comparison at that observation time; it was not executed successfully against production in this task.

python3 scripts/audit_public_work.py --output work-contract-observation.json

Preserved application and delivery

The entire concresca_runtime/ tree, migrations, application entry points, worker, diagnostics, activation/install code and fingerprint-bound discovery documents are unchanged from the supplied documentation edition. The main homepage and approved hero are unchanged. Only public entry links, generated work-guide HTML/generator, new feature assets/tests, documentation, memory and package accounting change.

The documentation-preservation validator retains the original r9 hash set and validates a small explicit before/after amendment for intentionally modified non-runtime owners. It does not redefine historical evidence or globally replace the baseline. The whole-release manifest is regenerated. Exact report-source custody remains intact.

Deploy the complete FULL ROOT archive over the existing website root without emptying it. Preserve host .htaccess, private environment, database, Python environment, runtime state, schedules and diagnostic code. No restart or activation is required solely for this feature edition. The private source/memory archive belongs outside the webroot. No production deployment was performed here.

Remaining work

All 16 source-specific active dispositions remain open. This release records a completed local UX/read-inspection/utility subset, not completion of each entire source. Independent useful public-doc pilots, actual connected ChatGPT acceptance, lifecycle execution-budget/transport work, publication-rights/dependency handling, live browser/host readback and long-running renewal evidence remain separate gates. No server-side opportunity creation, task execution, publication consent or participant-memory mutation is added by this read-only interface; those retain their existing scoped API owners.

The next continuation should not reimplement these readers. Use the implementation-progress record to select the next accepted scope and preserve its own production/test boundaries.