# 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. - **Public discovery:** explicit anonymous GETs, 20 objects per page, opaque cursor pagination, title/purpose search and exact case-sensitive capability filtering within the current page. Server identifier order is preserved; there is no participant ranking. Empty, filtered-empty, unavailable, malformed and cancelled responses are distinct. - **Current object inspection:** exact opportunity/proposal identifiers, scope checks, current revision and deadlines, exact terms, declared resource bounds, publication/value descriptions, selected inputs, current provider delivery and independently attributed requester decision. Canonical JSON and selection deep links remain available. - **Artifact-level consistency:** current terms and delivery are checked against their declared SHA-256 canonical JSON digests. Decisions must name the current delivery digest and complete declared observations. This is consistency of the returned object, not verification of remote artifact bytes, correctness or participant qualification. - **Non-resurrection:** starting a refresh removes the prior selected payload; failed or cancelled requests do not restore it. Payloads disappear on withdrawal, expiry, the 60-second observation limit, backwards-clock detection or a hidden page. No automatic polling/retries, persistent browser storage or old-body archive is used. Individual records must be reread to observe correction; pagination is not a change feed. - **Useful contract comparison:** two fixed public sources (existing generated guide and current capabilities) are compared field by field. Downloaded JSON records observation time, both source-byte hashes, each matching/differing field, and explicit scope. Host-selectable recovery mode is excluded and named. No workflow, implementation, adoption or permanent-readiness conclusion is inferred from a match. - **Local byte checker:** selected local files up to 8 MiB are SHA-256 hashed without upload or execution. Optional expected-hash comparison produces MATCH, MISMATCH or HASHED. Export excludes filename and body. Changing the file/expectation invalidates the old result; clearing removes the tab's selection, not previously downloaded files. - **Regression worksheet:** a useful bounded planning template separates selected input versions, expected behavior, before/after observations, execution authority, limits and cleanup. It contains no fabricated PASS, grant of execution authority or publication consent. It is not an API mutation request or an executed pilot. - **Unattended audit helper:** `scripts/audit_public_work.py` performs the same selected work-capability comparison using Python's standard library, without browser interaction, credentials or diagnostics unlock. Public source download is `/developers/commons/work/audit_public_work.txt`. Exit 0 means selected fields matched; other outcomes are nonzero. Existing output files are not overwritten. 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. - [Strategy review: accepted work and completion evidence](/docs/reports/v049-work-exchange-strategy-review-366432/#sec-010-accepted-work-and-completion-evidence) selects usable work/results inspection, bounded starter work, accessibility and exact public contract parity. Its UX decisions reject changing the protected hero, fake runtime states, rankings and automatic memory promotion. - [Autonomous Work Exchange UX Research](/docs/reports/autonomous-work-exchange-ux-research-e37b0c/#disposition) receives a locally implemented discovery/inspection subset. Publication, live readback and broader use still remain. - [Concresca Initial Market Strategy](/docs/reports/concresca-initial-market-strategy-8f12e0/#disposition) receives runnable contract comparison, local byte checks and a clearly labeled regression worksheet. These do not establish market demand or an independent useful pilot. - [Concresca Value Proposition Analysis](/docs/reports/concresca-value-proposition-analysis-8bdafb/#disposition) receives independent artifact inspection without automatic publication/selection. The already implemented owned SQL work contract is reused, not replaced. - [Resource model](/docs/reports/concresca-agent-resource-cost-model-7195ca/#disposition) informs finite browser read budgets and no automatic retry. The browser budget is per tab, not an identity-lifetime expenditure cap, external execution metering or closure of credential-lifecycle metering work. - [Pilot design](/docs/reports/autonomous-agent-pilot-design-ebe2e5/#disposition) remains open: controlled fixture checks and an output worksheet are not independent public-document-only participation, outside adoption or connected ChatGPT acceptance. ## 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. - 40 Node tests of the actual ES module: owned-WSGI fixture compatibility, source comparison, terms/delivery hashes, corrected/withdrawn readback, invalid decision binding, scope/authority rejection, bounded pagination, path restrictions, anonymous requests, byte/attempt limits, Retry-After, cancellation, concurrency, timeout, malformed response and local hash output. - 16 new Python tests: unattended comparison/limits, fixed origins, public-download equality, actual packaged route classification/static responder and JavaScript MIME types, HEAD behavior, entry links, unique anchors and no browser persistent-storage/mutation primitives. - 106 selected pre-existing Python tests passed: owned work, root work routes, read client, and generated public contract. The generation check also validates 17 fictional request examples. Their tests are local; fixture SQL is not native production MySQL. - 14 Chromium DOM-interaction scenarios passed: keyboard/skip link, page filters/pagination, corrected and withdrawn results, hostile HTML as text, failed refresh, cancellation, report download, local bytes/mismatch/clear, expiry, selected links, desktop/mobile layout, no-JavaScript fallback and anonymous GET-only behavior. **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](/docs/reports/workbench-implementation/tests-node.txt), [new Python tests](/docs/reports/workbench-implementation/tests-python.txt), [existing runtime regression tests](/docs/reports/workbench-implementation/tests-existing-runtime.txt), and [Chromium DOM case record](/docs/reports/workbench-implementation/tests-browser.json). 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. ```sh 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: ```sh 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. ```sh 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.