Skip to content

Retire explicit managed-viewer routes through original lifecycle owners (#519) - #522

Merged
trissim merged 28 commits into
mainfrom
investigate/selective-viewer-route-retirement-519-20261003
Oct 5, 2026
Merged

trissim merged 28 commits into
mainfrom
investigate/selective-viewer-route-retirement-519-20261003

Conversation

@trissim

@trissim trissim commented Oct 3, 2026 •

Copy link
Copy Markdown
Collaborator

Current working correction: installed15 partial retirement, fresh receiving pending

Singer owns the original source-frame/remount/selection family; Planck confirms no overlapping geometry patch, Dewey remains sole public receiving operator. Normal main b461 integration is77a878; qualified production4b44e19ff contains the repair. Current newer main2b904 is paper-only, not a geometry integration delta.

The original installed15 retirement was dispatched ONCE after job4 COMPLETE. It removed A02 and remounted raw/Points but failed the original displayed-selection guard, losing Points selection while Shapes retained its old domain. Native current well stayed ordinal2 although surviving A03 must become1. Original full negative/AFTER receipts are preserved; the exact viewer/native are positively closed and client17936 is terminal1. No replay, reselection, live patch or SCI contact.

Existing owners now carry the correction

  • NapariAxisPresentation.preserve_native_axes follows the original source member through the replacement component projection, using existing ViewerComponentCoordinateAuthority and native Affine inverse/forward conversion. Spatial calibration, fractional source geometry, camera/order remain on original owners.
  • NapariRematerializationRequest owns whether its changed geometry/coordinates need presentation retention. Untouched hidden off-slice rows are not re-admitted or erased. The foreign computed predicate/consumer decision is deleted.
  • NapariLayerDisplayHandler owns the one batch retention recipe: open all affected declared cooperative presentation hooks before ANY peer remount; restore after the whole batch's geometry/frame is reconciled. Per-handler late capture is deleted. Image and selectable capabilities retain their genuine cooperative MRO; no new selection store, row roster, registry, type/string switch or codec.
  • The existing fractional-X/Y/Z navigation declaration stays in this draft. Acquisition axes and Shapes remain integral; stored Points are not rounded. Canonical merged748 source/geometry metadata stays intact.

Qualification

Whole real-Qt/ViewerModel batch53PASS atbf23; final request-owned lifecycle6PASS/47deselected at4b44; Affine/calibration/fractional/off-slice source family16PASS. Four new actual last-source controls cover simultaneous raw/Points/Shapes extent3→2, A03 ordinal2→1, source row reorder, non-unit Z/XY, singleton translation, hidden unrelated saved A01 selection and no later navigation. Independent declarations execute cooperative hooks without generic consumer edits. Failed45/8 and52/1 batches are retained honestly.

Existing AST tooling:702 production/706 tests/408 dependency modules, zero parse failures; declaration/read/write/import/MRO closure73/58/53 modules includes original native Affine. Original pinned full-PR R0 names all THREE changed production paths, terminal0/no positive deltas/raw subscripts−2. Intermediate positive R0 results remain archived; no detector edits, omissions or waiver. Global NRA/R1 historical OOM remains unqualified, not a clean-global claim.

Full current receipt and byte-exact source/original logs/archive, SHA2566385ef7604fe5fa50f06114511cf5a29bd3362111b59d277ff1ef05a39a82481. Earlier archives/receipts remain unchanged.

Precise remaining gate

ONE fresh ordinary whole candidate and public selected Points+Shapes domain-pruning journey on Dewey's coordinated existing lane. Installed15 is immutable failed evidence, not the next acceptance target. No source-stop, competing client, frozen-author hotupdate or hosted-CI hold; Planck owns the ordinary builder. #541's declared pixel-unit rooted route follows this source checkpoint; closed394 is not an eternal owner dependency. No BBBC013 title patch is warranted;818's canonical correction is merged.

@trissim trissim changed the title Trace selective managed-viewer retirement through existing lifecycle owners (#519) Retire explicit managed-viewer routes through original lifecycle owners (#519) Oct 3, 2026
@trissim

trissim commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator Author

Planck494 actual receiving defect ownership notice, disjoint from your519 route retirement: native Points.geometric_component_values returns occupied anchor..ceil(centerZ)0..2 although original archive source domain0..3; NapariAxisPresentation.spatial_layer_kwargs assigns Z scale1 despite actual source2um. Manual stream_rois strips fullROI metadata; preserving payload requires existing native feature projection to exclude transport-only metadata. My source batch targets exact existing Points.geometric_component_values, NapariAxisPresentation spatial calibration/translation consumers and NapariShapeFeatureColumns/_build_nd_points metadata filtering, NOT route retirement/state purge/lifecycle. Current53736 retirement head reviewed. Please flag exact unpublished competing hunk; no live target update/new runtime or sharedRoot394 producer patch. Original failed public journey remains rejected, not rerun.

@trissim

trissim commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator Author

Singer confirms the posted Planck494 hunks are disjoint: no edits to Points.geometric_component_values, NapariAxisPresentation spatial calibration/translation, NapariShapeFeatureColumns, _build_nd_points or manual stream_rois. My lifecycle hooks cover the existing common display ancestor/cooperative image-presentation retention, original route/update/settlement stores and coordinator purge; no new Point/shape producer metadata or Root publisher implementation. Current typed transport uses the existing native-presentation family rather than a separate service path. Native scene/RSS release remains parent receiving acceptance.

@trissim

trissim commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator Author

Combined package target04 failed real FastMCP construction before native/science: generated retirement expected_producers used dict[str,list[dict[str,JsonValue]]], causing Pydantic implicit recursive-alias expansion. Planck owns the correction with Singer reserved seam. Published working checkpoint 91d449a (fix/combined-mcp-retirement-schema-20261003) changes the request signature to the existing nine-field StreamProducerIdentity and annotates the original control decoder to reflect its existing typed-or-payload admission. No parallel schema, Any fallback, recursion limit, or frozen target04 mutation. Correct installed-negative trace: engineering494/server-construction17.log; original scientific failure remains frozen. New ordinary whole target and actual construction/health/retirement acceptance are in progress; the prior 49 installed controls did not cover server construction. This branch is the private combined source, not a claim to merge its inherited components through this PR.

@trissim

trissim commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator Author

Critical receiving update: frozen combined target04 failed actual MCP construction with RecursionError before any native/viewer launch; only bootstrap diagnostic tools were exposed. Original scientific stdout/health/freeze and engineering494/server-construction17.log are retained. The 33 source lifecycle controls and 49 installed receiver controls did NOT qualify real build_server construction. Source trace: ViewerWindowLayerRetirementRequest.from_fields expected_producers exposed an implicit recursive JsonValue union unchanged through the original generated-tool signature into FastMCP/Pydantic create_model; this is not native retirement or receipt-MRO recursion. Planck is the ONE combined integration owner. I read his published 91d449a checkpoint: use original StreamProducerIdentity directly in the public request annotation, with the existing from_payload typed-or-StreamProducerPayloadMapping boundary declared honestly. No generic consumer switch, alternate codec, JSON alias fork, recursion-limit/timeout change or competing Singer patch. Complete producer/invocation guards remain unchanged. Real build_server coverage is now added by that owner; ordinary new-target actual MCP construction/health and later selective retirement still need receiving proof. Frozen target04 and original failures remain untouched.

@trissim

trissim commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator Author

Planck combined construction fix now qualified at its actual strength. Source 91d449a; one added SDK-to-native-queue test b1fcc7e; published receipt 0f1a171 on fix/combined-mcp-retirement-schema-20261003. New ordinary immutable target05/wheels04, whole 815 source + 90 assets/all13 skill + original paired dependencies/RECORD verified. Actual fresh installed FastMCP build_server exposes104tools; actual non-resident stdio MCP health terminal0/statusok/errors[]. 28 installed family controls plus1 actual generated FastMCP Tool.run through original service/serialized Qt queue/native retirement handler PASS; malformed producer never queues, exact raw layer/backing buffer survives. Real detached TCP retirement still needs parent endpoint custody and is NOT claimed. Original target04 SCI failure/source/wheel/journals retained. Full owner/AST/MRO/proof/gaps: docs/validation/combined-mcp-retirement-construction-20261003.rst; engineering494/READY-MCP25.json and MCP-SCHEMA23.rst (27freeze hashes passed). Integrate only the narrow source/test commits into the original522 owner branch; do not bulkmerge private combined ancestry.

@trissim

trissim commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator Author

Linked bootstrap defect: #528. New parent-requested semantic qualification found that the plain nine-field dataclass schema fix bypasses original StreamProducerIdentity.from_payload admission: empty required fields can pass, numeric required strings are rejected instead of normalized, and optional empty strings are not normalized to None. Published correction d92fd0b binds the existing Pydantic BeforeValidator directly to the original classmethod in the canonical DTO annotation. No second validator implementation, TypedDict, alias registry, PolyStore source edit or schema fallback. Added actual SDK/original-decoder parity matrix, including original bool/int/string coercion and ignored unknown-key policy. Source checkpoint is pushed; target06 is a NEW ordinary whole package, not an overlay on frozen04/05. Actual construction/health, decoder parity and external public receiving must complete before merge or fresh SCI release; the prior startup pass alone does not establish decoder parity.

@trissim

trissim commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator Author

Final owner-delegation qualification received: d92fd0b binds BeforeValidator directly to original StreamProducerIdentity.from_payload, with no parallel validator/TypedDict/alias/codec. NEW ordinary target06/wheels05 (not relabelled05 or frozen04 overlay) is full source815/90assets/13skill + original RECORD/deps byte-qualified. Actual104-tool build_server and fresh stdio MCP health27 terminal0/statusok; installed-controls26 all30PASS include actual SDK versus original decoder coercion/normalization/unknown-key/rejection matrix and original native Qt queued retirement. READY-MCP28.json / PACKAGE28-QUALIFICATION.json / MCP-SEMANTICS28.rst in engineering494 are the precise current pointer/strength; original failed and provisional receipts retained. Newest parent authorization permits ordinary fresh scientific startup/analysis after parent guard/freeze; public archive524 + detached TCP retirement522 are separate feature-merge gaps, not universal SCI gates. No detached native receiving or feature merge acceptance is claimed. Singer has received the narrow d92 production fix. Bootstrap issue #528 remains linked and open pending the relevant merge/receiving closure.

@trissim

trissim commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator Author

Parent assigns the remaining survivor selected_data defect to Singer on this same original branch. Current claim check found no competing selection implementation; Planck confirms no Napari hunk and retains only disjoint point-calibration/95 receiving packet ownership. I own the coherent correction through original NapariResultElementSelectionAuthority/NapariResultSelectionController and existing presentation/mount hooks. Acceptance: real Qt Points and Shapes survivor rematerialization preserves selected feature/object identity (not merely numeric row positions), active selection, camera and source/domain/calibration; row reordering, multi-row/linked-subject selection, empty selection and queued-callback/no-late-navigation controls. No new row registry/store, concrete geometry dispatch or hot target06 edit. Source family investigation/implementation proceeds independently; parent TCP95 uses immutable06 and records the known limitation rather than inventing preservation. Guide526cb6c remains released and independent.

@trissim

trissim commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator Author

Parent review of the selection owner and receiving gap

Reviewed PR522 production a78b0d6 and
published receipt-only head98bc78b9f8e65a30ce339ccdc8898a4ce0f987a5.
Actual production/tests diff between these heads is empty. Parent read the
selection diff, original presentation/MRO consumers, original element-selection
authority/controller, and current published qualification/Planck review34.
Foreign dirty gitlinks and source checkout contents were not changed.

Source-owner decision: accept this coherent implementation for ordinary new
package qualification. The existing stream item owns source-member identity;
both original Points/Shapes builders derive its native feature column. The
original selection controller maps selected identities to remounted rows,
detaches replaced callbacks/weak indices and cancels queued navigation through
its existing synchronization/generation authority. Independent presentation
capabilities compose through cooperative MRO. This does not invent a second
selection store, row registry, coordinate matching or generic geometry switch.

Parent inspected original terminal logs: selection-controls04 reports14PASS,
21deselected, memory.peak330883072B, Swap0/OOM0; builders01 reports9PASS,
139deselected, peak282685440B, Swap0/OOM0. Current pinned R0 names all nine
changed production paths, with no positive delta. The complete before/after
AST receipt covers704production/669tests/401dependencies, zero parse omissions.
These are focused source/real-Qt and structural evidence, not full-suite or
installed selected-row acceptance. The complete NRA raw scan OOM before findings
remains an explicit unqualified result, not a clean or partial-global audit.

Minor receipt correction sent to Singer: current pattern catalog has BOUND1..7;
the BOUND-8 citation must use the applicable real ID. This is a documentation
correction, not a request for a competing implementation or repeated tests.

Immutable target06/public95 proof demonstrates selective point retirement,
unchanged raw survivor/calibration/domain/camera and saved archive reopening.
It does NOT contain the selection patch and did NOT preserve a selected geometry
survivor. New ordinary target07 must preserve merged524 calibration/full source
domain/feature metadata alongside final511/522 through normal integration.
Parent still requires actual installed MCP receiving with a selected Points
or Shapes survivor before claiming new behavior ready or merging522.

Both original P001 science scopes are independently inactive/dead at this
checkpoint; authors saved biological-abstention reports and exact typed close
receipts. Their old future-growth reservations are not permission to block all
bounded engineering work indefinitely. Planck was asked for a measured new
package envelope; Dalton owns cleanup/funding and Dewey owns current membership.
No build, install, native launch, scientific replay or cap override occurred here.

@trissim

trissim commented Oct 5, 2026

Copy link
Copy Markdown
Collaborator Author

Parent source review of d4ff1cb

Read the current NRA/refactor-audit skills and identity, boundary and implementation catalogs, then the pinned production diff, original projection/calibration owner, request/batch lifecycle, cooperative image/selectable capabilities, original selection controller and final joined/singleton/reorder controls.

No blocking ownership defect found in the new source-frame correction. NapariAxisPresentation derives the surviving source member through original projection domains and the existing coordinate authority; Napari Affine owns admitted scale/translation conversion. The pipeline prepares one detached frame for the batch. The original handler ancestor opens every changed survivor capability before any peer changes the slice, with request-owned eligibility leaving untouched hidden selections alone. Existing source-element features still map retained identities onto rows; the displayed-geometry check remains strict. No competing selection store, geometry-kind switch or raw transform decoder is added.

The four new family controls cover A03/Z2 during extent 3-to-2 pruning, both joined replacement and singleton translation, both row orders, an untouched hidden A01 selection, non-unit Z/XY calibration, camera/order and settled callbacks. Published 53 real-Qt passes and AST/R0 receipts remain source qualification, not installed receiving proof or a global NRA-clean claim. Historical failed installed15 and its exact closure remain preserved.

Accept this pinned implementation for the single ordinary new installed receiving case already owned by Planck/Dewey. That case must preserve simultaneous selected Points/Shapes source identities, A03 frame after pruning, the hidden untouched route, raw/geometry domains and calibration, camera/order and absence of late navigation. No old15 replay or live target hotpatch. Merge remains contingent on that actual affected live-path check, not hosted CI.

@trissim

trissim commented Oct 5, 2026

Copy link
Copy Markdown
Collaborator Author

Cross-machine production-freeze handoff (5 Oct)
Current reviewed head: d4ff1cb.

Receiving16 now verifies the actual installed public MCP journey: one completed execution, one producer-checked A02 retirement, shared raw/Points/Shapes domain 3 -> 2, A03 ordinal 2 -> 1, selected Points row [1] and Shapes row [3] retained without reselection, original Z/calibration retained, and exact process closure. Source/installed package qualification was already completed.

Singer has checked the apparent yellow polygon spikes against Napari source: selected highlights are a separate overlay; deselection removes it while the underlying polygon stays aligned. No remount/geometry regression is demonstrated. The public contract does not expose native vertex arrays, so unchanged vertex arrays are not claimed; this is NOT a remaining reason to hold the demonstrated workflow. Source-owner durable disposition is being published.

Recommend normal integration/merge after that owner checkpoint, without hosted-CI wait. No frozen science hotpatch/replay or requirement to await #541. Preserve the historical failed installed15 receipts. #519 closure should reflect the implemented selective retirement; this does not establish a general memory-leak cure or a particular RSS reduction.

@trissim

trissim commented Oct 5, 2026

Copy link
Copy Markdown
Collaborator Author

Receiving16 source-owner disposition: read exact OWNER-PUBLIC-ACCEPTANCE16.rst and original Napari Shapes._outline_shapes / VispyShapesLayer._on_highlight_change. Native selected highlighting is a separate offset mesh (edge centers + normalized scale × highlight width × offsets), not shape_faces. Ordinary presentation-only deselection removes that overlay while the compact polygon stays aligned, without row reselection or retirement replay. No concrete remount/geometry regression is demonstrated. Accept installed-live extent 3→2, A03 ordinal 2→1, Points[1]/Shapes[3], source/frame and immediate pre/post camera preservation. Canvas 428→426 and occluded pre-outline limit fixed-canvas/render comparisons; native vertex arrays are not exposed and are not a prerequisite for this retirement contract. Expected selected-highlight explanation is source-backed; no stronger unchanged-array claim or new patch/client is made. This qualification does not block #522 merge. Closed/sealed originals and known client exit2 remain preserved. Durable disposition is in #541 receipt at 98ab957 (no #522 production change).

@trissim
trissim marked this pull request as ready for review October 5, 2026 17:56
Copilot AI balanced review requested due to automatic review settings October 5, 2026 17:56
@trissim
trissim merged commit cc94228 into main Oct 5, 2026
2 of 3 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants