Skip to content

Commit 9036d40

Browse files
committed
Document progress-aware catalog preparation
1 parent f678e2e commit 9036d40

7 files changed

Lines changed: 98 additions & 63 deletions

File tree

docs/audits/architecture_a_m.json

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@
280280
},
281281
{
282282
"path": "openhcs/agent/services/endpoint_function_catalog_service.py",
283-
"sha256": "62389b06a31ad89044dae301d1f93601ccdd9122e79758113b49a3747d26fd90",
283+
"sha256": "f7197b4fad765af2cd112596e1d44770e4f7008e0e9fdb576c6ab5297e8a2c3a",
284284
"role": "Owns the shared asynchronous endpoint catalogue, exact revision state, and selected-reference projection for desktop and local MCP consumers."
285285
},
286286
{
@@ -313,7 +313,8 @@
313313
"On 2026-08-25, re-read the complete page against the painted-ready background-service startup boundary and producer-before-executor shutdown order; revised its startup wording and confirmed the remaining claims against current source and tests.",
314314
"On 2026-08-25, re-read the complete explanation against the shared endpoint catalogue service and its single revision/projection state; focused unit tests and a live Function Selector probe confirmed non-blocking preparation and exact selected-reference resolution.",
315315
"On 2026-08-26, re-read the complete page after ZMQRuntime allowed the catalog preparation owner to carry one cancellation authority through endpoint startup and request polling; the documented GUI cleanup and prewarm lifecycle remains accurate.",
316-
"On 2026-08-27, re-read the complete explanation and endpoint observation owner after startup rows began projecting each typed lifecycle phase through its nominal declaration; the page already describes the snapshot as the single status and browser-row input, so its ownership claims remain accurate."
316+
"On 2026-08-27, re-read the complete explanation and endpoint observation owner after startup rows began projecting each typed lifecycle phase through its nominal declaration; the page already describes the snapshot as the single status and browser-row input, so its ownership claims remain accurate.",
317+
"On 2026-08-27, re-read the complete explanation against cancellation propagation through the endpoint catalogue projection; the documented asynchronous prewarm and unconditional cleanup ownership remain accurate."
317318
]
318319
},
319320
{
@@ -1657,7 +1658,7 @@
16571658
},
16581659
{
16591660
"path": "docs/source/architecture/mcp_distribution.rst",
1660-
"source_sha256": "b0c4e8986b01737d0fd6fddb2a1b3d5e6534864ecf1a46102f43c7036430627b",
1661+
"source_sha256": "106d60484efc7007f9f319fdac883209e9bb580640dfbe583e8f5315c26e62b4",
16611662
"audience": [
16621663
"OpenHCS MCP maintainers",
16631664
"packaging and hosted-deployment integrators"
@@ -1677,7 +1678,7 @@
16771678
},
16781679
{
16791680
"path": "openhcs/mcp/dev_client.py",
1680-
"sha256": "38fae8370065e5dedadf48c9848232f2124afff7f28fefdaf75055cd49449ab8",
1681+
"sha256": "df0e10ea02d1567d7bc1cab0a9bb2c617470995818363c008507133f4846d749",
16811682
"role": "Validates commands before dispatch through an initialized persistent development session."
16821683
},
16831684
{
@@ -1810,7 +1811,8 @@
18101811
"Constructing the complete UIConfig in a local MCP process pulled Qt-only shortcut validation across the headless boundary; MCP now projects the unique execution endpoint field from the canonical saved document and dataclass schema.",
18111812
"Local and hosted initialization instructions were dispatched again inside the MCP server; the CapabilityTransport declaration now delegates to a transport-owned nominal strategy.",
18121813
"Claude Desktop registration repeated Windows and macOS path decisions inside one target; registered platform leaves now own those paths while the target retains client identity, detection, and configuration format.",
1813-
"Separate UI and viewer timeout profile classes had become behaviorally identical after timeout derivation moved to the connection contracts; the generated binders now use the sole command policy directly."
1814+
"Separate UI and viewer timeout profile classes had become behaviorally identical after timeout derivation moved to the connection contracts; the generated binders now use the sole command policy directly.",
1815+
"The persistent development client wrapped a progress-aware MCP request in a second absolute wall-clock timeout; the duplicate ceiling was removed and the explanation now names transport inactivity as the client boundary."
18141816
],
18151817
"disposition": "revise",
18161818
"validation": [
@@ -1841,7 +1843,8 @@
18411843
"On 2026-08-27, rechecked the complete explanation after native CI exposed the detached updater's standalone boundary; the update plan now carries the declaration-derived package-source policy without importing application code, and the page reflects that ownership.",
18421844
"On 2026-08-27, re-read the complete distribution explanation after Windows native acceptance exposed an install-root-dependent Numba cache path; process environment semantics now derive the cache through the existing registered host-platform application-data authority, while desktop launchers remain projections of that declaration.",
18431845
"On 2026-08-27, rechecked the complete distribution explanation after the pinned formatter normalized its desktop-deployment authority; the change is mechanical and all ownership and launcher projections remain unchanged.",
1844-
"On 2026-08-27, re-read and revised the complete distribution explanation after Intel native acceptance exposed an upstream wheel-availability boundary; one desktop profile now projects its binary-wheel policy into both initial installation and staged update."
1846+
"On 2026-08-27, re-read and revised the complete distribution explanation after Intel native acceptance exposed an upstream wheel-availability boundary; one desktop profile now projects its binary-wheel policy into both initial installation and staged update.",
1847+
"On 2026-08-27, applied the Diataxis explanation boundary and re-read the complete page against the MCP wire session and progress binder; revised it to name progress-aware transport inactivity and the absence of a duplicate absolute client ceiling."
18451848
]
18461849
},
18471850
{

docs/audits/architecture_n_z_development.json

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@
414414
},
415415
{
416416
"path": "openhcs/processing/backends/lib_registry/registry_service.py",
417-
"sha256": "17370a6251b994795a78d88ff87d41603141d13d0ea6294e4ab3fb40ad937c86",
417+
"sha256": "004c26000258d08ae64fffb76b140a4a7317d59c327a6ddb27f339860d75d41f",
418418
"role": "Canonical callable catalogue preparation, declaration-local projection, lookup caching, and complete derived-view clearing."
419419
}
420420
],
@@ -431,7 +431,8 @@
431431
"Passed ./.venv/bin/python scripts/validate_docs.py docs/source: 154 files, 23 Python blocks, and 153 audited RST pages.",
432432
"Passed ./.venv/bin/python -m sphinx -E -W --keep-going -b html docs/source <temporary-build-directory>: 153 source files rendered without warnings.",
433433
"On 2026-08-21, re-read the transition and rebuilt the python-introspect owner documentation after adding declaration projection.",
434-
"On 2026-08-25, re-read the complete page against metaclass-registry 0.2.1, ArrayBridge 0.3.3, the public native-catalogue projection, declaration-derived child environments, and the updated package floors; revised the page where those semantics are user-relevant and confirmed its remaining claims against current source and tests."
434+
"On 2026-08-25, re-read the complete page against metaclass-registry 0.2.1, ArrayBridge 0.3.3, the public native-catalogue projection, declaration-derived child environments, and the updated package floors; revised the page where those semantics are user-relevant and confirmed its remaining claims against current source and tests.",
435+
"On 2026-08-27, re-read the complete redirect against the changed RegistryService preparation owner; generic callable projection remains owned by python-introspect and the redirect requires no prose revision."
435436
]
436437
},
437438
{
@@ -650,7 +651,7 @@
650651
},
651652
{
652653
"path": "openhcs/agent/services/endpoint_function_catalog_service.py",
653-
"sha256": "62389b06a31ad89044dae301d1f93601ccdd9122e79758113b49a3747d26fd90",
654+
"sha256": "f7197b4fad765af2cd112596e1d44770e4f7008e0e9fdb576c6ab5297e8a2c3a",
654655
"role": "Owns the shared asynchronous endpoint catalogue used by desktop startup, the Function Selector, and local MCP authoring."
655656
},
656657
{
@@ -687,7 +688,8 @@
687688
"On 2026-08-24, re-read the complete reference against the unconditional client teardown path; 58 focused OpenHCS regressions and the real-GUI startup cancellation smoke passed with no retained endpoint process.",
688689
"On 2026-08-24, re-read the complete page against the changed declaration, dependency, UI state, knowledge, and test authorities named by this record; the documented behavior and ownership boundaries remain accurate.",
689690
"On 2026-08-25, re-read the complete page against the painted-ready background-service startup boundary and producer-before-executor shutdown order; revised its startup wording and confirmed the remaining claims against current source and tests.",
690-
"On 2026-08-25, re-read the complete service reference against the endpoint-owned catalogue used by desktop and local MCP authoring; focused tests and a live Function Selector probe confirmed asynchronous preparation and exact selection."
691+
"On 2026-08-25, re-read the complete service reference against the endpoint-owned catalogue used by desktop and local MCP authoring; focused tests and a live Function Selector probe confirmed asynchronous preparation and exact selection.",
692+
"On 2026-08-27, re-read the complete service reference against the catalogue projection's propagated cancellation authority; the endpoint remains the single callable authority and cleanup still retires in-progress work through its owner."
691693
]
692694
},
693695
{
@@ -1386,7 +1388,7 @@
13861388
},
13871389
{
13881390
"path": "openhcs/runtime/zmq_execution_server.py",
1389-
"sha256": "55c2fa2f5c614f163d8f34a4c2ba3d49a86ca3c2ccc055111d2b0cd6b4ad8f4d",
1391+
"sha256": "5074b4b09dd3193d9f4b83003b49beb877fedaf9f8f1ef21df5042d681c0812a",
13901392
"role": "Releases execution-session process resources when the execution server stops."
13911393
},
13921394
{
@@ -1460,7 +1462,8 @@
14601462
"Three isolated real desktop, MCP, ZMQ, execution, and Napari rehearsals completed all nine acceptance requirements; ROI summaries returned in 0.063-0.485 seconds and bulk isolation in 0.078-1.078 seconds within the 2-second command budget, with no UI-log errors.",
14611463
"On 2026-08-25, re-read the complete explanation against the visualizer contract, transactional acquisition path, lifecycle owner, and rollback regressions; revised it to distinguish owned-process cleanup from external-client release.",
14621464
"On 2026-08-25, 162 focused component, microscope, source-binding, streaming, viewer-protocol, and rollback tests passed; documentation validation checked 154 files, 24 Python blocks, and 153 audited sources, and warning-free Sphinx rendered all 152 active pages.",
1463-
"On 2026-08-26, re-read the complete page after the generic endpoint connection lifecycle gained shared cancellation authority; the viewer transport and lifecycle ownership claims remain accurate."
1465+
"On 2026-08-26, re-read the complete page after the generic endpoint connection lifecycle gained shared cancellation authority; the viewer transport and lifecycle ownership claims remain accurate.",
1466+
"On 2026-08-27, re-read the complete explanation against execution-server catalogue shutdown; the changed preparation process does not alter the documented viewer acquisition, settlement, or exact process-group ownership."
14641467
]
14651468
},
14661469
{
@@ -1719,7 +1722,7 @@
17191722
},
17201723
{
17211724
"path": "docs/source/architecture/zmq_execution_service_extracted.rst",
1722-
"source_sha256": "5a47e55bd99a336088fbc58dde56b330548fbade4a2c05bbededdc4477df4628",
1725+
"source_sha256": "cf224a588300889446e62265d56b0225024012ef633368e376a2deac6d63d0dd",
17231726
"audience": [
17241727
"OpenHCS contributors following the former local ZMQ execution-service URL"
17251728
],
@@ -1733,7 +1736,7 @@
17331736
},
17341737
{
17351738
"path": "openhcs/runtime/zmq_execution_server.py",
1736-
"sha256": "55c2fa2f5c614f163d8f34a4c2ba3d49a86ca3c2ccc055111d2b0cd6b4ad8f4d",
1739+
"sha256": "5074b4b09dd3193d9f4b83003b49beb877fedaf9f8f1ef21df5042d681c0812a",
17371740
"role": "OpenHCS compiled-execution adapter over the generic execution server."
17381741
},
17391742
{
@@ -1798,7 +1801,7 @@
17981801
},
17991802
{
18001803
"path": "openhcs/runtime/function_catalog_preparation.py",
1801-
"sha256": "3961de7612d56d0733015612a9f665dce528a7e626834d29a6a2d72c371fd173",
1804+
"sha256": "63abd2cc72de8baacff723e4a574a74f0f6ef422b17eb32ca5fabead689505fc",
18021805
"role": "Owns persistent registry preparation and the live endpoint's single asynchronous catalogue-preparation operation."
18031806
},
18041807
{
@@ -1813,7 +1816,7 @@
18131816
},
18141817
{
18151818
"path": "openhcs/processing/backends/lib_registry/registry_service.py",
1816-
"sha256": "17370a6251b994795a78d88ff87d41603141d13d0ea6294e4ab3fb40ad937c86",
1819+
"sha256": "004c26000258d08ae64fffb76b140a4a7317d59c327a6ddb27f339860d75d41f",
18171820
"role": "Prepares the canonical catalogue in a child environment projected by ArrayBridge declarations."
18181821
},
18191822
{
@@ -1828,7 +1831,7 @@
18281831
},
18291832
{
18301833
"path": "tests/unit/test_library_registry_discovery.py",
1831-
"sha256": "2f29b963996ded68005ee93871f4c7d40e1b66774228f21df86a036cb4613bd3",
1834+
"sha256": "37124d970423a26f6422534bc5003e64d8082589dbf03ce2fc565307fe296327",
18321835
"role": "Proves source-revision cache invalidation, stable optional-runtime admission, declaration-owned projection, runtime-owned external-signature exclusions, and no partial catalogue after failure."
18331836
},
18341837
{
@@ -1924,7 +1927,8 @@
19241927
"The endpoint-version restart transaction lacked direct failure-path evidence for executor shutdown, saved-session capture, and detached worker launch.",
19251928
"Owner-requested connection-attempt cancellation was not a typed result, so GUI teardown could only surface it as a generic asynchronous failure; ZMQRuntime now owns the explicit cancellation outcome.",
19261929
"The execution reference omitted the shared MemoryType child environment and the public-only native catalogue projection.",
1927-
"The catalogue cache used one physical document for distinct framework-admission contexts, allowing concurrent CPU-only and GPU-capable preparation to replace each other's valid result."
1930+
"The catalogue cache used one physical document for distinct framework-admission contexts, allowing concurrent CPU-only and GPU-capable preparation to replace each other's valid result.",
1931+
"Cancelling a cold catalogue request could leave its isolated capability-discovery child alive; the server-owned preparation now carries one cancellation authority to the exact process and joins it before backend cleanup."
19281932
],
19291933
"disposition": "revise",
19301934
"validation": [
@@ -1955,7 +1959,8 @@
19551959
"On 2026-08-27, re-read the complete transition reference against the changed installed-desktop evidence authority; its ZMQ ownership and lifecycle claims remain accurate.",
19561960
"On 2026-08-27, rechecked the complete transition reference after installed-desktop acceptance advanced the installer schema; its ZMQ ownership and lifecycle claims remain accurate.",
19571961
"On 2026-08-27, re-read the complete transition explanation after Windows installed-demo execution exposed the Numba cache path budget; the execution and catalogue ownership claims remain unchanged, and the native harness now consumes the declaration-owned current-platform cache path.",
1958-
"On 2026-08-27, re-read the complete transition explanation after library registries gained declaration-owned runtime-parameter exclusions; endpoint catalogue ownership and transport claims remain unchanged."
1962+
"On 2026-08-27, re-read the complete transition explanation after library registries gained declaration-owned runtime-parameter exclusions; endpoint catalogue ownership and transport claims remain unchanged.",
1963+
"On 2026-08-27, applied the Diataxis reference boundary and re-read the complete page against the server, preparation, registry, and cancellation tests; revised the cold-cache lifecycle to identify its exact child-process and joined-shutdown owners."
19591964
]
19601965
},
19611966
{
@@ -2576,7 +2581,7 @@
25762581
},
25772582
{
25782583
"path": "docs/source/development/mcp_development.rst",
2579-
"source_sha256": "843ef50b3b2dae29048e7c9e890a85f77965605acea503bce1f7ecf184b73de6",
2584+
"source_sha256": "7137b6cd7c04f36782bb3aac4bdaa08dab43dbe1748190cebffbcce9a82722cc",
25802585
"audience": [
25812586
"OpenHCS MCP developers"
25822587
],
@@ -2585,7 +2590,7 @@
25852590
"authority": [
25862591
{
25872592
"path": "openhcs/mcp/dev_client.py",
2588-
"sha256": "38fae8370065e5dedadf48c9848232f2124afff7f28fefdaf75055cd49449ab8",
2593+
"sha256": "df0e10ea02d1567d7bc1cab0a9bb2c617470995818363c008507133f4846d749",
25892594
"role": "Current development-client parser, persistent shell entry point, and persistent-session selected-surface preflight."
25902595
},
25912596
{
@@ -2655,7 +2660,7 @@
26552660
},
26562661
{
26572662
"path": "tests/unit/test_mcp_dev_client_persistent_session.py",
2658-
"sha256": "a27e2edc8b3bbf47f141f04b115a0b1803419741c31b23738dd40c1d7b93fc3b",
2663+
"sha256": "9288d5092062f6ede46fb34db82d1a1ed5d024b3bbddb1707b03d1eb63fc1d43",
26592664
"role": "Regression proof for persistent dev-client parsing, reuse, errors, and stop-on-error semantics."
26602665
},
26612666
{
@@ -2713,7 +2718,8 @@
27132718
"Capability-local stdout guards left delayed imports and background native output able to corrupt the persistent JSON-RPC stream; process stdout is now reserved once by the stdio transport.",
27142719
"The command examples omitted the bounded ROI-summary and atomic viewer-isolation probes needed to validate current viewer agent workflows.",
27152720
"The how-to did not state that the development client validates commands against the selected declaration-derived surface before starting or dispatching; the selected-profile workflow now fails early with compatible registered profiles.",
2716-
"The UI window-snapshot command could not select the request DTO's declared output directory even though the underlying capability and viewer command supported it; the CLI now projects that field through the shared request-option authority."
2721+
"The UI window-snapshot command could not select the request DTO's declared output directory even though the underlying capability and viewer command supported it; the CLI now projects that field through the shared request-option authority.",
2722+
"The guide called --timeout-seconds a generic client timeout even though standard progress renews it; it now distinguishes transport inactivity from operation-owned maximum duration."
27172723
],
27182724
"disposition": "revise",
27192725
"validation": [
@@ -2743,7 +2749,8 @@
27432749
"On 2026-08-26, re-read the complete development how-to after child MCP processes began retaining the platform authority's declared temporary root; the current-checkout commands, path-policy guidance, and snapshot workflow remain accurate.",
27442750
"On 2026-08-26, re-read and revised the complete how-to after execution submissions gained a declaration-owned budget distinct from status and stop controls; explicit submit_timeout_ms overrides and known pre-dispatch timeout guidance remain accurate.",
27452751
"On 2026-08-26, re-read the complete how-to after execute-source and the installed demo began deriving the submission deadline from OpenHCSZMQConfig; the page now names that authority and the documented timeout boundary remains accurate.",
2746-
"On 2026-08-26, re-read the complete development how-to after function-catalog endpoint startup joined the request cancellation authority; the documented MCP and submission timeout boundaries remain accurate."
2752+
"On 2026-08-26, re-read the complete development how-to after function-catalog endpoint startup joined the request cancellation authority; the documented MCP and submission timeout boundaries remain accurate.",
2753+
"On 2026-08-27, applied the Diataxis how-to boundary and re-read the complete page against persistent-session progress tests; revised --timeout-seconds as a renewable inactivity deadline while keeping operation maxima separate."
27472754
]
27482755
},
27492756
{

0 commit comments

Comments
 (0)