Files
2026-11-10 16:26:26 -05:00

97 lines
6.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Issue #799 resolution gates
Status: prospective procedure under review, **not approved for launch**. The
retained cold failures remain failures. This document does not change the plan's
resource budgets, establish a replacement baseline, or authorize release.
## Separate the evidence
| Question | Evidence required | Current boundary |
|---|---|---|
| Finite generated-code startup | Fixed canonical operation sequence and bounded, lossless trace windows | Candidate saturation met the selected factory criterion. Summed native MethodSize does not explain all RSS. |
| Cross-version lifecycle ownership and memory | Equivalent operations, token invalidation, dropped harness roots, resource-owner checks and matched executable hosts | Original closed objects retain continuation lists while held by the harness; usable steady-state comparison is not established. |
| Continuing macOS native retention | Private-key import attribution, bounded native inventory, supported ownership correction and verification | Balanced managed disposal alone has not stopped Apple Security object accumulation. Linux results cannot close this component. |
The coordinator owns integration and long executions. Two independent Sol agent
lanes own `baseline-canonical/` and `native-retention/` respectively; use high
effort for control implementation and ownership analysis. Astra at xhigh reviews
each control design, its result, any production correction, and the complete
acceptance procedure before execution. No worker changes the other lane's files,
production factory architecture, immutable baseline, or acceptance denominator.
## Short controls before a new long run
The original-SDK lane must demonstrate removal from SessionManager, rejection of
the old authentication token, and rejection of old browse/history continuation
tokens from a fresh session. A helper boundary must drop all strong Session,
continuation and harness references before bounded GC/weak-reference observations.
Observe closed-session/point weak references while the same host remains live,
then separately observe application/validator/store roots after normal host stop;
teardown must not hide retention of closed sessions. Inventory separately
identifies which resource owner releases each object.
Retain the earlier held-object failure. Do not explicitly dispose abandoned
objects or clear caches merely to make the baseline pass. Unsupported original
ownership probes remain unsupported, rather than being reported as zero.
The native lane must attribute configured-store private-key loads separately
from public certificate and shared-handle operations using fixed counts and
identical certificates. Include a separate bounded store-update semantic control
so registry reuse cannot silently bypass configured-store rotation. Review exact
SDK 2.0.1 public ownership seams before any
application correction. A supported correction needs a failing-before/passing-
after ownership control and preserved trust, private-key availability, reconnect
and shutdown behavior. Custom crypto, copied transport negotiation, SDK forks,
factory substitution and certificate-policy changes require a separate design;
they are not fixes authorized by this procedure. Keep private PKI out of Git.
## Prerequisites for reviewing warmed acceptance
1. Establish operation/status/order parity and semantically valid close/ownership
checks across versions. Match executable host, runtime, architecture and
instrumentation. A growing original process is not an accepted denominator.
2. Freeze source commits, all artifact hashes, runtime/image identities, private
PKI identity, fixtures and the serial same-host schedule before launch.
3. Submit the actual harness change, negative controls and immutable artifact
receipts to Astra. Approval of diagnostics is not approval of acceptance.
4. Resolve continuing macOS native growth independently. A Linux acceptance run
cannot waive it, even if the Linux resource guard passes.
Before this draft becomes executable, define version-appropriate standard-node
loading/factory trace coverage for the original binary. The absence of SDK2's
`Opc.Ua.OpcUaExtensions` type must not let the original pass an irrelevant zero
counter. Also predeclare identical retained-managed/GC and RSS sampling cadence
and statistics, including exactly which samples feed the relative 15% comparison.
These details remain pending; observed results cannot select them retroactively.
## Proposed fixed warmup and measurement
This section is a review proposal only. If the prerequisites and Astra gate pass,
qualification uses exactly 384 canonical cycles / 96 restarts plus one settling
cycle within 1,800 seconds. The fixed trace windows are cycles 321–352 and
353–384, with the continuous veto across their boundary. Require zero generated-
factory JIT/load events, zero new SDK assembly loads and zero lost events. Reject
missing markers, wrong identity or observer faults. Do not extend or retry the
qualification until a favorable sample appears.
Prospectively select exactly the post-cycle-385 sample as the measurement
baseline; do not choose a minimum, median or later sample from observed RSS.
Retain all cold, peak and rejected rows. Measurement must then last at least
7,200 actual seconds **after** warmup, retaining the +64 MiB managed, +128 MiB
RSS and +32 descriptor caps, all canonical operations and semantic/native/
ownership guards. Latch the first failure permanently. No resource resets,
skipped operations or completion claim on a rejected run.
Setup, warmup and final cleanup do not count toward measurement duration. Final
shutdown and ownership checks are mandatory after that duration completes.
For uninstrumented acceptance, first perform an identical fresh paired
qualification rehearsal, then use the fixed warmup without EventPipe or
allocation StackTrace tracking. The earlier tracked candidate run cannot be
relabelled as this evidence. Predefine sampling and statistics for at least three
matched representative runs to assess the separate plan-relative throughput,
latency, allocation and RSS budgets. A two-hour absolute-cap pass alone does not
satisfy those comparisons.
Only verified results meeting these distinct requirements can support closing
#799. Keep #782 G4 and draft PR #802 on hold until their remaining gates also
pass; Windows/runtime and licensed interoperability evidence remain separate.