Repository navigation
Open
Labels
area:harnessHarness module: profile, A/B loop, quality gates, evidence reportsHarness module: profile, A/B loop, quality gates, evidence reportskind:taskBounded delivery task with a delegated sliceBounded delivery task with a delegated slicestatus:acceptedThe decision owner accepted it in a recorded commentThe decision owner accepted it in a recorded comment
Description
Goal
Track the Harness retention and sealing slice required by #371 step 4 and D023-3 / V33 / T38. The Apps adapter in #446 hands over process-local bytes, actual fixed Knowledge pins, selection/omission metadata, a proposed location and SHA-256. Harness owns retention and the committed delivery reference.
Proposed acceptance
- The Harness generation orchestration consumes the injected
ContextProvider.collect(ContextRequest)before publishing a generation manifest. The implementation identifies the concrete entry point and Harness capture/commit route in its PR and exercises both through that entry point. - Harness seals
DeliveredContextwith the actual committed locator, which may differ from the draft proposal. ItsArtifactRef.sha256equals the draft digest and itssize_bytesequals the retained byte count. The proposed fixed media type isapplication/octet-stream; Harness owns this field. - Stage retention by attempt. When the same round is retried, an unsuccessful attempt's staged bytes cannot satisfy a committed read, and an existing committed delivery cannot be overwritten. If an already committed immutable object is reused, verify its exact digest and length. The draft location is a relative hint.
- T38-N1 injects two failures: before writing bytes and after staging the bytes but before commit. For each, verify no valid
DeliveredContext.artifact, no entry inGenerationManifest.context_refs, and no new sealed generation manifest for the failed delivery. - T38-P1 observes the order of retention, sealing and manifest publication. Verify the manifest's
context_refsincludes the committedDeliveredContext.artifact. Read the retained bytes in a new process under the same configuration and compare the exact bytes, digest and fixed Knowledge pins. - Exercise the actual Apps adapter with a dependency check or write-failing spy around Apps collection. The writer of record is Harness. The process-local draft stays outside the JSON schema; the committed
DeliveredContextandGenerationManifestuse the existing schema.
Shared D023-3 contract · T38 acceptance · Amy's review
Ownership and status
Proposed. @Dong1017, please confirm the concrete Harness entry point, capture/commit route, media type and accountable implementer, or link the existing delivery issue if it already covers both T38 cases. Apps can provide the real Knowledge draft and joint CPU tests once that route is available.
Metadata
Metadata
Assignees
Labels
area:harnessHarness module: profile, A/B loop, quality gates, evidence reportsHarness module: profile, A/B loop, quality gates, evidence reportskind:taskBounded delivery task with a delegated sliceBounded delivery task with a delegated slicestatus:acceptedThe decision owner accepted it in a recorded commentThe decision owner accepted it in a recorded comment
Activity
amy-why-3459 commentedon Nov 15, 2026
Thanks for splitting this out. It keeps the D023-3 boundary clear: #446 produces the process-local draft, and Harness owns retention and sealing. Some points that would make the acceptance easier to verify:
ContextProvider.collect(ContextRequest)and the capture/commit route it uses to retain the bytes (an existing artifact capture path, or a new one). That way the implementation and T38 test have a fixed entry point.ArtifactRefrequireslocation,sha256,size_bytesandmedia_type. The draft has the bytes, the digest and a proposed location, but no media type. Please state who setsmedia_type(I'd expect Harness to fix one value for delivered context) and thatsize_bytesislen(content)as retained. Please also say whether the committed locator may differ fromintended_location, and thatDeliveredContext.artifact.sha256must equal the draft'ssha256.round_id(context/<sha256(round_id)>/delivered.binin Adapt Knowledge context to a Harness delivery draft #446). Please define what happens when a round is retried after a failed retention: overwrite, a per-attempt location, or rejection. This matters for T38-N1, so leftover bytes from the failed attempt can't be picked up later.DeliveredContext, no sealed generation manifest, and nocontext_refsentry for that delivery.context_refspoint at the sealed delivery and that the manifest is written strictly after sealing.The owner is still open (Proposed, waiting for @Dong1017). Once that's confirmed, I'm happy to review the Harness slice against T38-N1/P1.
zengchuang-hw commentedon Nov 15, 2026
@amy-why-3459 the issue now incorporates your six checks. It names the generation orchestration seam and asks Harness to record its exact entry point and capture/commit route. The proposal includes a fixed media type, length and digest equality, attempt-scoped staging, both pre-commit failure points, the manifest ordering and context refs, and a check on Apps' read-only dependency boundary. The concrete route and the accountable implementer are pending @Dong1017's acceptance.
amy-why-3459 commentedon Nov 15, 2026
Thanks, I checked the updated "Proposed acceptance" against my six points (6889009504). All of them are covered:
ArtifactReffields: committed locator may differ from the hint,sha256equals the draft digest,size_bytesequals the retained length, and Harness ownsmedia_type, proposed asapplication/octet-stream(item 2).artifact,context_refsand the manifest (item 4). T38-P1 checks ordering and thatcontext_refscontains the committed artifact (item 5). A spy or dependency check enforces the writer boundary (item 6).Nothing else from me on the acceptance text. What's still open is @Dong1017's confirmation of the Harness entry point, the capture/commit route, the media type and the implementer.
Dong1017 commentedon Nov 15, 2026
Decision — T38 Harness entry / route / media / implementer (Dong-bot as @Dong1017 delegate)
Recorded 2026-11-15. Authority: Dong-bot decision authority for
@Dong1017accept/decide. Thread basis: Amy cleared proposed acceptance (6889114513); D023-3 / V33 / T38; Apps draft producer #446; Harness owner precedent #429.Accepted — proposed acceptance text
Accept this issue’s current “Proposed acceptance” as the bounded Harness retention/seal delivery for #371 step 4 / D023-3 / T38. Amy’s six checks are covered; no further acceptance-text changes required from steward.
Confirmed — concrete ownership
GenerationManifest(V24/V33). It must call the injectedContextProvider.collect(ContextRequest)before sealingDeliveredContextand before writing any sealed generation manifest. Notexecute(), and not the legacy optimization-sessioncapture_contexthelper. The implementation PR must name the concrete module/symbol for this controller and exercise T38-N1/P1 through that entry only.Claim.commitsoArtifactRefbecomes valid only with the commit (same writer family as H02 capture→commit; writer of record = H). Draftintended_locationis a relative hint only; the committed locator may differ. Failed-attempt staged bytes must not satisfy a committed read; an existing committed delivery must not be overwritten; immutable reuse requires exact digest+length verify. Capture-route identity for producer metadata:delivered-context-retention. Apps must not write the H RunStore.ArtifactRef.media_type. Fixed value for delivered context:application/octet-stream.sha256equals the draft digest;size_bytesequals the retained byte count (len(content)).Scope note
#447 is the Harness delivery issue for T38 retention/seal. #446 remains the Apps draft producer only; it does not cover T38-N1/P1 production retention. No other open issue already covers both T38 cases for Harness.
Status
Flipping
status:proposed→status:acceptedfor this bounded delivery. Apps can wire the real Knowledge draft + joint CPU tests once the named entry/route land.