Code review disposition for 2.2.10¶
The repository report separates P0 before the next hosted release, P1 next minor release, and P2 backlog. Version 2.2.10 closes the P0 release blockers and includes several related P1/P2 fixes. The entries below distinguish delivered fixes from work retained for a compatibility-focused release.
| Findings | Disposition |
|---|---|
| SEC-01 | Harden the existing rootful OCI agent with an explicit capability set, loopback-only network access, protected kernel settings and inaccessible host secrets. Refuse writable source or exposed credentials before startup. Rootless OCI migration remains a deployment follow-up; root is still needed by the current storage/mount setup. |
| SEC-02 | Cache the complete built-in catalog using file stat fingerprints, return independent records, and classify catalog/model reads as expensive. |
| SEC-03 | Delete both personal-code loaders and import-time backend/style changes; apply bundled styling within plotting calls. |
| SEC-04/05/06 | Release-only PyPI publishing, tag input through the environment, modern build metadata, pruned source archive, CI archive assertions, commit-pinned actions and Dependabot. |
| SEC-08/09/10 | Tunnel loopback firewall, hashed GPU/VM locks, current-head maintainer review check and wider code ownership. Dashboard-managed ingress remains available under the host firewall. |
| SEC-11 | Public automatic dataset publication remains disabled. Local explicit contributions retain their workflow; enabling anonymous publishing under a dedicated identity still requires an operator decision. |
| SEC-12/13/14/15 | Recover cleanup health independently of dispatch health; synchronize tenant removal with GPU results; tolerate a container that exits during cancellation; read the VM bridge token from a file. Structured operator error codes and central runtime-deadline configuration remain follow-ups. |
| SEC-16 | Add service hardening and source/credential assertions, anchor broad ignore rules, ignore local output, handle QMP EOF, remove fixed browser test secrets, require instrument credentials, fix Makefile shell, modernize package license metadata, separate docs PR concurrency and omit unused PR Pages uploads. The offline data footprint and administrator-only VM baseline provisioning remain deliberate deployment choices. |
| SEC-17/18/19/20 | Document and test process-lifetime bootstrap reuse for launcher reopening; preserve both the redirect and manual form entry points. Readiness suppresses workspace paths; consumed package archives are removed even after rejection. |
| DQ-01/02/11 | Explicit argument construction, no package/step path mutations, registry-derived CLI choices, shared lazy backbone constructors, no swallowed initialization exceptions, shared QGRU recurrence and corrected output initialization. Full recurrent/delta layer unification is deferred to checkpoint-compatibility validation. |
| DQ-03/04/05/18/19 | Extract repeated mutation admission into a declarative table; share error envelopes, identifier primitives and hashed-store directory checks; move core HTTP contracts to strict schema models. Full outer-router replacement and model-descriptor schema unification remain P1. |
| DQ-09/10/23/28/30/31 | Public supervisor accessors and explicit worker module selection, one worker identity helper, paged event export, bounded foreign-run indexing, off-thread SSE polling, joined heartbeat threads, removal of dead split-import and broken project model-builder code. Some worker/sweep lifecycle and helper cleanup remains P2. |
| DQ-15/17 | Terminal spawn failure with a queue-slot regression; one cancellation-safe threaded upload consumer shared by local upload routes. Public raw CSV quarantine keeps its separate ASGI streaming boundary. |
| DQ-16/20/21/24 | Add semantic workspace error types for new shared paths and malformed hardware input; atomic random-temp writes and validated imported manifests; direct paired-array imports for generated/virtual/synthetic data. Migrating every legacy service error and route dependency remains P1. |
| FE-01/02/03/04/05/07/08/10/13 | HTML-sink and hook lint rules, root error recovery and safe run-path parsing in both layouts, validated links, top-frame restriction, hardened upload fetch, event shape guard, cancellable query factory, shared session query, production gallery exclusion and checked vendor-bundle digest. |
| SEC-07, DQ-12/13/14/22/25/26/27, FE-06/09/11/12 and remaining FE-13 | Compatibility/backlog work: relocate generic legacy packages, unify all historical split/data contracts, remove remaining global trainer state, refactor all state machines and large functions, consolidate all query keys/formatters/URL builders, finish prose translations and split large UI panels. These are not represented as completed security fixes. |
Changing default desktop dependencies back into optional extras conflicts with the requested automatic installation experience. Removing packaged measured data would break offline built-in workflows. Both remain included; the hosted images install their own limited, pinned runtime instead.
The legacy top-level namespace collision remains a packaging limitation until the P1 migration. Historical split behavior and long-standing checkpoints require explicit compatibility tests before a broad relocation or scientific data protocol change. The patch removes import-time data I/O without silently rewriting existing data splits.