Skip to content

Integrate complete #1398 lifecycle on latest main - #225

Merged
mindfn merged 20 commits into
develop_basefrom
feat/F117-1354-message-delivery-lifecycle
Oct 13, 2026
Merged

mindfn merged 20 commits into
develop_basefrom
feat/F117-1354-message-delivery-lifecycle

Conversation

@mindfn

@mindfn mindfn commented Oct 13, 2026

Copy link
Copy Markdown
Owner

Integrate the complete upstream PR zts212653#1398 candidate into the fork, using the exact same source branch and HEAD as the upstream PR. Operator accepted the classic experience and explicitly directed this sequence: align develop_base to latest main, then merge the original1398 branch through a fork PR.

Validation/review reuse is exact-HEAD, not similarity: independent Astra approved e775's four-file final increment, with154/154 Web regressions, complete pnpmcheck, four exact build stamps and actual classic/v2 page proofs. Earlier independent audits cover the same complete1398 source chain, including private callback/reference/read/settlement and concurrent replay fixes. Upstream exact-e775 GitHub CI has16success+1plannedskip. Operator classic acceptance: original thread source1741; workflow correction: source1758. Fork checks, if any, remain their own provider truth.

Five-axis risk: behavior high (single send/Queue lifecycle); data high (durable source/response/reference semantics); security high (private audience and exact native read ownership); contract high (all input consumers use the common owners); irreversible bounded by retained old Git source and reversible source rollout, with no runtime data deletion or migration executed by this PR. Existing independent source reviews and exact-head checks are retained; this fork step does not prove historical-state/mixed-version/off-mode or seven-day upstream witness, and does not approve upstream merge.

Running checkout remains at7adb57dfa6; its configuration, data and processes are untouched. This PR updates Git source only. Operator chooses the eventual checkout update/restart; fork soak begins only on actual deployment. Keep the original1398 branch after merge because upstream1398 still uses it. Upstream PR remains Draft pending its own maintainer acceptance and remaining version-bound evidence.

Local review: astra/gpt-6-astra, approved exacte775 in message0001791869509585-001725-18e61d14. Author: sol/gpt-6.1-sol. Provenance: originaltask300 / thread_msr51149hym0i79f / user0001791873323583-001758-508820b7.

mindfn added 20 commits October 11, 2026 06:47
Why: user, member, connector, plugin and notification inputs must share persisted target and policy identity, one Queue owner and exact execution receipts. Fold reviewed send, Redis array preservation, preparing-client readiness and formal regressions into the final backend implementation.

Reviewed-source: fdce1bc
Reviewed-tree: 6babe29
Why: the console must project the same source, response and execution identities as the backend. Keep delivery/read receipts, capability guidance, exact Stop and Steer convergence together with their consumer tests.

Reviewed-source: fdce1bc
Reviewed-tree: 6babe29
Why: reviewers need the final common send/admission and per-target Queue contract, accurate guidance and independent reading evidence. Retire new process records from the product diff. Preserve the baseline done feature status separately from PR release state and remove the reopened activity row introduced by this PR.

Reviewed-source: 1a766ee76cffabfcc549182603fab0fca7711f1c
Independent-review: astra task300/source073
Mechanical-status-source: bf8061cef2dc093028dc3e7f900fa16ba3ea3c6d (operator087)
Published-tree: 6d488a9

[砚砚/gpt-6.1-sol🐾]
Why: source recipient avatars and appended-input previews describe the same dispatch from different perspectives. Share exact receipt state and event time, preserve the role-specific names/content, and wire native first-input consumption into the existing durable observation path. Duplicate/late evidence preserves the first read time and never controls delivery or Stop.
Why: a settlement carrying an existing pending read receipt must follow the normal execution transition. Only initialization of a missing receipt is presentation-only. Keep late read evidence and first-read time intact after settlement; cover the QueueProcessor CI counterexample and the exact metadata transition.
Why: Preserve the zts212653#1584 public snapshot and its new business and UI capabilities while routing every producer through zts212653#1398 atomic send and the single persistent Queue. Retire superseded custody and compensation paths instead of restoring them, retain stable first-message retries and private audiences, and include exact native first-input read receipts.

Base: 0fc7e37 (zts212653#1584 merged)
Reference: 922ea0a1db630cab411f75e161ba46ea848ea12a (local capability migration)
Receipt successor: d77c4f7 (zts212653#1398)

[砚砚/gpt-6.1-sol🐾]
Thread-Context: threadId=thread_msr51149hym0i79f invocationId=1239f4ff-2c89-48af-828a-e7332a25c6b4 catId=cat-eqdvbcxw
…ence

Why: a concurrent winner can retire its pending Queue row before the producer adapter resumes, so the common send replay must acknowledge the original durable message rather than report unavailable. Live inbox read facts likewise require independent inputRead evidence instead of response membership. Migrate formal producer, SDK, preview and projection tests to the canonical send, sender identity and exact-parent policies while retaining audience and authority checks.

Continues task300/source834 on actual zts212653#1584 merged base; no runtime, fork deployment or legacy custody recovery changes.
Why: the original PR history remains an ancestor of the published successor, while the validated rebuild already reconciles its complete lifecycle and receipt changes with the actual zts212653#1584 merged baseline. This merge records that continuity without changing any file in the approved candidate.

Approved candidate: 7072f8f; tree f5e0a6a. Previous public HEAD d77c4f7; merged baseline 0fc7e37. Astra approval source860, original task300. No runtime or fork deployment changes.
Why: private carriers intentionally lack public response references. Resolve their witnesses from scoped durable execution records without exposing private identities or restoring queue compensation. Preserve full authorized callback bodies and owner-visible search, and migrate retired test consumers to the single send/Queue/History contract.

Authored-by: 砚砚 / gpt-6.1-sol
Why: private review returns accepted by common Append were included in public response inputMessageIds, while rejection and native read paths depended on that public projection. Apply the existing whisper boundary to durable Append metadata and failures; retain exact internal execution binding for read receipts and terminal source settlement.

Validate: API build, 134 compiled regression tests including owned Redis reopen, and pnpm check passed. Actual private callback acceptance and independent Astra review follow before publication.
Why: route terminal output can restore a private causal trigger filtered at admission. Project reply references from admitted public inputs while retaining raw owner execution facts. Provider done can precede response commit, so retain exact accepted inputs in the existing execution list before tracker retirement and settle only matching source refs after terminal persistence.

Validate: compiled regression matrix and pnpm check passed. Fresh native private callback and play-mode reader acceptance follows before independent review or publication.
Why: The rebuilt PR combines a new main presentation with accepted fork A2A interactions. Record the exact three-way source cuts, preserved capabilities and classic UI gaps before changing shared presentation components, and distinguish restored behavior from new operator requests. This changes documentation only; v2 redesign and runtime/fork rebuild remain deferred until the requested classic acceptance.

[砚砚/gpt-6.1-sol🐾]
Thread-Context: threadId=thread_msr51149hym0i79f invocationId=7484b3b9-8925-412b-89c1-e3a5c9ed3021 catId=cat-eqdvbcxw
Why: Match the accepted develop_base classic composer and remove the
reintroduced duplicate progress header. Expand truncated source previews
in place and follow each source theme without changing delivery facts
or the v2 menu and reading actions.

Validation: 118 focused Web tests, Web typecheck, scoped Biome, and a
headless real-component overflow/theme/menu journey. Full product UI
acceptance and independent review follow on this exact candidate.

[砚砚/gpt-6.1-sol🐾]
Why: The actual classic page showed expanded provenance consuming the
author row and truncating the member name to one character. Let classic
metadata wrap and put expanded source text on its own left-aligned row
with the existing preview text size. Keep the v2 source action unchanged.

Validation: 118 focused regressions, Web types, scoped Biome and the
actual pre-fix layout screenshot; exact successor page proof follows.

[砚砚/gpt-6.1-sol🐾]
Why: Stored reply previews contain only a short excerpt, so enlarging the
pill still hid most of the source after refresh. Keep the excerpt while
collapsed and supply full text from the unique source in the authorized
timeline of the rendered thread. Recalled/deleted previews, ambiguous or
missing sources, and another thread store never supply the body. The v2
preview and direct navigation stay unchanged.

Validation: exact-body red/green, 126 focused tests, Web types, scoped
Biome and frontmatter. Actual full-body rendering follows on the frozen
revision. No backend or runtime configuration changed.

[砚砚/gpt-6.1-sol🐾]
Why: Compact human rows reuse the legacy header even in v2, so the new
wrap behavior must be gated by the presentation switch. Keep its v2
layout intact while retaining the validated classic full-source row.
The browser proof requires an explicit installed driver instead of
referring to the retired ppt-forge package.

Validation: 126 focused tests, Web types, scoped Biome/frontmatter and
the configured headless component journey. Actual classic/full-source
UI is proven at 26d6eb9; final build identity remains to be renewed.

[砚砚/gpt-6.1-sol🐾]
Why: retain upstream border-box and pane-width sizing while remeasuring the actual guidance or whisper placeholder after it changes. Preserve the reviewed classic parity and single Queue contract; keep F308 rerun-artifact evidence selection in its owning workstream.
Why: operator screenshots show that classic retained new-shell action placement. Keep source before trajectory and speech inside the existing message action strip, with the runtime copy/reply/select/branch/delete order. Retain native trajectory access and v2 ownership. Document main capability migration into the single zts212653#1398 send and Queue contract without restoring retired state.
Why: Append privacy projection and terminal settlement are existing F117 responsibilities; the integration map must not describe their implementation gaps as new main mechanisms.
Why: the portaled action sheet reused the author-row absolute positioning, overlapping its heading and first control. Preserve the desktop slot and v2 while placing classic sheet controls in normal flow and wrapping narrow rows.
@mindfn
mindfn merged commit c50957e into develop_base Oct 13, 2026
@mindfn

mindfn commented Oct 13, 2026

Copy link
Copy Markdown
Owner Author

Exact-source merge gate for this fork PR:

  • E1: provider head is e77577e1ffe238838e774a766fd4a9a0ff53e955, identical to local source and upstream feat: complete unified message delivery lifecycle zts212653/clowder-ai#1398. Provider base is dc582b899ebdcb6f7bb3c6abf2eb81090f8c1c3d, also identical to upstream feat: complete unified message delivery lifecycle zts212653/clowder-ai#1398. Complete local binary diff SHA256: d1134331ce51185720f5b2e01e58c76bf2e2ceaa7ab4d621aa090094e76e2cc3. GitHub diff endpoint returned HTTP406 (>300 files); equality is established through exact provider refs and the complete Git diff, not a truncated response.
  • E2/E3: no post-review code change. Independent reviewer astra/gpt-6-astra approved the complete source chain: 1b936b4, private-boundary 6bce64e, classic 1e20504, main integration ed16c49, and final e77577e. Final source review message 0001791869509585-001725-18e61d14; accepted UI source messages1651/1654/1668/1677/1688 are immutable. Four source hashes and61 supplied evidence hashes were reread and match. Author sol is a different individual; no shared-login GitHub self-approval is asserted. headChangeCause=pr-meta, nextGateOwner=merge_owner, stale=false.
  • E4: no unresolved P1/P2 in the reviewed source chain. Operator source 0001791871681493-001741-40165536 accepted the classic experience; sources 0001791873323583-001758-508820b7 and 0001791874038188-001773-14ad6708 explicitly directed the original1398 branch into fork develop_base. Earlier pre-experience restrictions on creating the fork PR are superseded by these operator instructions; upstream merge is not authorized.
  • E5: reviewed154/154 Web regressions, full pnpm check, Web types, component browser, exact four-product builds and actual page proofs; current git diff --check and check-feature-truth pass. Exact upstream head CI has16SUCCESS+1plannedSKIP. This fork PR has no check runs: CI/Windows pull_request.branches=[main] does not select develop_base. No empty fork check set is called a green run. Repeating the same base/head suites supplies no new integration coverage; original source evidence is reused.

Five-axis behavior/data/security/contract risks remain as described in the PR. Source rollback is available through the retained7adb backup; no persistent data migration/deletion is performed. No new source or independent judgment is introduced by this carrier step, so cloudReview=not-selected: the existing stateful independent review chain and exact-head validation cover this unchanged candidate. This is a normal complete-feature integration, not a temporary hotfix or a Feature completion verdict.

Fork Git source may land. Runtime checkout remains7adb and live=dormant for this candidate; no checkout update/restart is included. Runtime acceptance and fork soak remain pending. Preserve the original head branch used by upstream Draft zts212653#1398.

mindfn added a commit that referenced this pull request Oct 13, 2026
Why: fork #225 squashed the already reviewed e775 tree. Preserve the original zts212653#1398 branch while making follow-up PRs against develop_base show only the three-file Steer feedback increment. The resulting tree must remain identical to reviewed 0fbf196.

# Conflicts:
#	packages/web/src/components/__tests__/queue-panel-steer.test.ts
#	packages/web/src/components/execution-row/queue-toast-copy.ts
#	packages/web/src/components/useQueueActionConvergence.ts
mindfn added a commit that referenced this pull request Oct 15, 2026
* refactor(F117): unify durable message admission and execution

Why: user, member, connector, plugin and notification inputs must share persisted target and policy identity, one Queue owner and exact execution receipts. Fold reviewed send, Redis array preservation, preparing-client readiness and formal regressions into the final backend implementation.

Reviewed-source: fdce1bc
Reviewed-tree: 6babe29

* feat(web): render canonical delivery feedback and member guidance

Why: the console must project the same source, response and execution identities as the backend. Keep delivery/read receipts, capability guidance, exact Stop and Steer convergence together with their consumer tests.

Reviewed-source: fdce1bc
Reviewed-tree: 6babe29

* docs(F117): align final delivery and ownership contracts

Why: reviewers need the final common send/admission and per-target Queue contract, accurate guidance and independent reading evidence. Retire new process records from the product diff. Preserve the baseline done feature status separately from PR release state and remove the reopened activity row introduced by this PR.

Reviewed-source: 1a766ee76cffabfcc549182603fab0fca7711f1c
Independent-review: astra task300/source073
Mechanical-status-source: bf8061cef2dc093028dc3e7f900fa16ba3ea3c6d (operator087)
Published-tree: 6d488a9

[砚砚/gpt-6.1-sol🐾]

* fix: unify receipt tooltips and observe first-input reads

Why: source recipient avatars and appended-input previews describe the same dispatch from different perspectives. Share exact receipt state and event time, preserve the role-specific names/content, and wire native first-input consumption into the existing durable observation path. Duplicate/late evidence preserves the first read time and never controls delivery or Stop.

* fix: preserve input settlement with pending read receipts

Why: a settlement carrying an existing pending read receipt must follow the normal execution transition. Only initialization of a missing receipt is presentation-only. Keep late read evidence and first-read time intact after settlement; cover the QueueProcessor CI counterexample and the exact metadata transition.

* feat(F117): rebuild unified delivery on merged source baseline

Why: Preserve the zts212653#1584 public snapshot and its new business and UI capabilities while routing every producer through zts212653#1398 atomic send and the single persistent Queue. Retire superseded custody and compensation paths instead of restoring them, retain stable first-message retries and private audiences, and include exact native first-input read receipts.

Base: 0fc7e37 (zts212653#1584 merged)
Reference: 922ea0a1db630cab411f75e161ba46ea848ea12a (local capability migration)
Receipt successor: d77c4f7 (zts212653#1398)

[砚砚/gpt-6.1-sol🐾]
Thread-Context: threadId=thread_msr51149hym0i79f invocationId=1239f4ff-2c89-48af-828a-e7332a25c6b4 catId=cat-eqdvbcxw

* fix(F117): acknowledge retired producer replays and require read evidence

Why: a concurrent winner can retire its pending Queue row before the producer adapter resumes, so the common send replay must acknowledge the original durable message rather than report unavailable. Live inbox read facts likewise require independent inputRead evidence instead of response membership. Migrate formal producer, SDK, preview and projection tests to the canonical send, sender identity and exact-parent policies while retaining audience and authority checks.

Continues task300/source834 on actual zts212653#1584 merged base; no runtime, fork deployment or legacy custody recovery changes.

* fix(a2a): complete private witnesses and canonical message projections

Why: private carriers intentionally lack public response references. Resolve their witnesses from scoped durable execution records without exposing private identities or restoring queue compensation. Preserve full authorized callback bodies and owner-visible search, and migrate retired test consumers to the single send/Queue/History contract.

Authored-by: 砚砚 / gpt-6.1-sol

* fix(a2a): keep private append identity out of public responses

Why: private review returns accepted by common Append were included in public response inputMessageIds, while rejection and native read paths depended on that public projection. Apply the existing whisper boundary to durable Append metadata and failures; retain exact internal execution binding for read receipts and terminal source settlement.

Validate: API build, 134 compiled regression tests including owned Redis reopen, and pnpm check passed. Actual private callback acceptance and independent Astra review follow before publication.

* fix(a2a): preserve admitted public references and private settlement

Why: route terminal output can restore a private causal trigger filtered at admission. Project reply references from admitted public inputs while retaining raw owner execution facts. Provider done can precede response commit, so retain exact accepted inputs in the existing execution list before tracker retirement and settle only matching source refs after terminal persistence.

Validate: compiled regression matrix and pnpm check passed. Fresh native private callback and play-mode reader acceptance follows before independent review or publication.

* docs(f117): map classic A2A frontend parity from develop_base

Why: The rebuilt PR combines a new main presentation with accepted fork A2A interactions. Record the exact three-way source cuts, preserved capabilities and classic UI gaps before changing shared presentation components, and distinguish restored behavior from new operator requests. This changes documentation only; v2 redesign and runtime/fork rebuild remain deferred until the requested classic acceptance.

[砚砚/gpt-6.1-sol🐾]
Thread-Context: threadId=thread_msr51149hym0i79f invocationId=7484b3b9-8925-412b-89c1-e3a5c9ed3021 catId=cat-eqdvbcxw

* fix(f117): restore classic A2A presentation and source expansion

Why: Match the accepted develop_base classic composer and remove the
reintroduced duplicate progress header. Expand truncated source previews
in place and follow each source theme without changing delivery facts
or the v2 menu and reading actions.

Validation: 118 focused Web tests, Web typecheck, scoped Biome, and a
headless real-component overflow/theme/menu journey. Full product UI
acceptance and independent review follow on this exact candidate.

[砚砚/gpt-6.1-sol🐾]

* fix(f117): keep author details readable during source expansion

Why: The actual classic page showed expanded provenance consuming the
author row and truncating the member name to one character. Let classic
metadata wrap and put expanded source text on its own left-aligned row
with the existing preview text size. Keep the v2 source action unchanged.

Validation: 118 focused regressions, Web types, scoped Biome and the
actual pre-fix layout screenshot; exact successor page proof follows.

[砚砚/gpt-6.1-sol🐾]

* fix(f117): expand the exact authorized source body in classic

Why: Stored reply previews contain only a short excerpt, so enlarging the
pill still hid most of the source after refresh. Keep the excerpt while
collapsed and supply full text from the unique source in the authorized
timeline of the rendered thread. Recalled/deleted previews, ambiguous or
missing sources, and another thread store never supply the body. The v2
preview and direct navigation stay unchanged.

Validation: exact-body red/green, 126 focused tests, Web types, scoped
Biome and frontmatter. Actual full-body rendering follows on the frozen
revision. No backend or runtime configuration changed.

[砚砚/gpt-6.1-sol🐾]

* sync: cat-cafe 2c7987ca2bf5 → clowder-ai (daily draft)

Why: keep one reviewable draft current with the checked public export.

Daily-Public-Sync: v1
Source-Commit: 2c7987ca2bf538aa806ff0f8ddb6fbeb6c5f929d
Public-Base: 0fc7e37

[小星星·砚砚/GPT-6-astra🐾]

* fix(f117): fence classic wrapping from compact v2 presentation

Why: Compact human rows reuse the legacy header even in v2, so the new
wrap behavior must be gated by the presentation switch. Keep its v2
layout intact while retaining the validated classic full-source row.
The browser proof requires an explicit installed driver instead of
referring to the retired ppt-forge package.

Validation: 126 focused tests, Web types, scoped Biome/frontmatter and
the configured headless component journey. Actual classic/full-source
UI is proven at 26d6eb9; final build identity remains to be renewed.

[砚砚/gpt-6.1-sol🐾]

* fix(web): restore classic author and action strip parity

Why: operator screenshots show that classic retained new-shell action placement. Keep source before trajectory and speech inside the existing message action strip, with the runtime copy/reply/select/branch/delete order. Retain native trajectory access and v2 ownership. Document main capability migration into the single zts212653#1398 send and Queue contract without restoring retired state.

* docs: distinguish A2A private fixes from main capability migration

Why: Append privacy projection and terminal settlement are existing F117 responsibilities; the integration map must not describe their implementation gaps as new main mechanisms.

* fix(web): keep classic compact actions below the sheet heading

Why: the portaled action sheet reused the author-row absolute positioning, overlapping its heading and first control. Preserve the desktop slot and v2 while placing classic sheet controls in normal flow and wrapping narrow rows.

* Integrate complete zts212653#1398 lifecycle on latest main (#225)

* refactor(F117): unify durable message admission and execution

Why: user, member, connector, plugin and notification inputs must share persisted target and policy identity, one Queue owner and exact execution receipts. Fold reviewed send, Redis array preservation, preparing-client readiness and formal regressions into the final backend implementation.

Reviewed-source: fdce1bc
Reviewed-tree: 6babe29

* feat(web): render canonical delivery feedback and member guidance

Why: the console must project the same source, response and execution identities as the backend. Keep delivery/read receipts, capability guidance, exact Stop and Steer convergence together with their consumer tests.

Reviewed-source: fdce1bc
Reviewed-tree: 6babe29

* docs(F117): align final delivery and ownership contracts

Why: reviewers need the final common send/admission and per-target Queue contract, accurate guidance and independent reading evidence. Retire new process records from the product diff. Preserve the baseline done feature status separately from PR release state and remove the reopened activity row introduced by this PR.

Reviewed-source: 1a766ee76cffabfcc549182603fab0fca7711f1c
Independent-review: astra task300/source073
Mechanical-status-source: bf8061cef2dc093028dc3e7f900fa16ba3ea3c6d (operator087)
Published-tree: 6d488a9

[砚砚/gpt-6.1-sol🐾]

* fix: unify receipt tooltips and observe first-input reads

Why: source recipient avatars and appended-input previews describe the same dispatch from different perspectives. Share exact receipt state and event time, preserve the role-specific names/content, and wire native first-input consumption into the existing durable observation path. Duplicate/late evidence preserves the first read time and never controls delivery or Stop.

* fix: preserve input settlement with pending read receipts

Why: a settlement carrying an existing pending read receipt must follow the normal execution transition. Only initialization of a missing receipt is presentation-only. Keep late read evidence and first-read time intact after settlement; cover the QueueProcessor CI counterexample and the exact metadata transition.

* feat(F117): rebuild unified delivery on merged source baseline

Why: Preserve the zts212653#1584 public snapshot and its new business and UI capabilities while routing every producer through zts212653#1398 atomic send and the single persistent Queue. Retire superseded custody and compensation paths instead of restoring them, retain stable first-message retries and private audiences, and include exact native first-input read receipts.

Base: 0fc7e37 (zts212653#1584 merged)
Reference: 922ea0a1db630cab411f75e161ba46ea848ea12a (local capability migration)
Receipt successor: d77c4f7 (zts212653#1398)

[砚砚/gpt-6.1-sol🐾]
Thread-Context: threadId=thread_msr51149hym0i79f invocationId=1239f4ff-2c89-48af-828a-e7332a25c6b4 catId=cat-eqdvbcxw

* fix(F117): acknowledge retired producer replays and require read evidence

Why: a concurrent winner can retire its pending Queue row before the producer adapter resumes, so the common send replay must acknowledge the original durable message rather than report unavailable. Live inbox read facts likewise require independent inputRead evidence instead of response membership. Migrate formal producer, SDK, preview and projection tests to the canonical send, sender identity and exact-parent policies while retaining audience and authority checks.

Continues task300/source834 on actual zts212653#1584 merged base; no runtime, fork deployment or legacy custody recovery changes.

* fix(a2a): complete private witnesses and canonical message projections

Why: private carriers intentionally lack public response references. Resolve their witnesses from scoped durable execution records without exposing private identities or restoring queue compensation. Preserve full authorized callback bodies and owner-visible search, and migrate retired test consumers to the single send/Queue/History contract.

Authored-by: 砚砚 / gpt-6.1-sol

* fix(a2a): keep private append identity out of public responses

Why: private review returns accepted by common Append were included in public response inputMessageIds, while rejection and native read paths depended on that public projection. Apply the existing whisper boundary to durable Append metadata and failures; retain exact internal execution binding for read receipts and terminal source settlement.

Validate: API build, 134 compiled regression tests including owned Redis reopen, and pnpm check passed. Actual private callback acceptance and independent Astra review follow before publication.

* fix(a2a): preserve admitted public references and private settlement

Why: route terminal output can restore a private causal trigger filtered at admission. Project reply references from admitted public inputs while retaining raw owner execution facts. Provider done can precede response commit, so retain exact accepted inputs in the existing execution list before tracker retirement and settle only matching source refs after terminal persistence.

Validate: compiled regression matrix and pnpm check passed. Fresh native private callback and play-mode reader acceptance follows before independent review or publication.

* docs(f117): map classic A2A frontend parity from develop_base

Why: The rebuilt PR combines a new main presentation with accepted fork A2A interactions. Record the exact three-way source cuts, preserved capabilities and classic UI gaps before changing shared presentation components, and distinguish restored behavior from new operator requests. This changes documentation only; v2 redesign and runtime/fork rebuild remain deferred until the requested classic acceptance.

[砚砚/gpt-6.1-sol🐾]
Thread-Context: threadId=thread_msr51149hym0i79f invocationId=7484b3b9-8925-412b-89c1-e3a5c9ed3021 catId=cat-eqdvbcxw

* fix(f117): restore classic A2A presentation and source expansion

Why: Match the accepted develop_base classic composer and remove the
reintroduced duplicate progress header. Expand truncated source previews
in place and follow each source theme without changing delivery facts
or the v2 menu and reading actions.

Validation: 118 focused Web tests, Web typecheck, scoped Biome, and a
headless real-component overflow/theme/menu journey. Full product UI
acceptance and independent review follow on this exact candidate.

[砚砚/gpt-6.1-sol🐾]

* fix(f117): keep author details readable during source expansion

Why: The actual classic page showed expanded provenance consuming the
author row and truncating the member name to one character. Let classic
metadata wrap and put expanded source text on its own left-aligned row
with the existing preview text size. Keep the v2 source action unchanged.

Validation: 118 focused regressions, Web types, scoped Biome and the
actual pre-fix layout screenshot; exact successor page proof follows.

[砚砚/gpt-6.1-sol🐾]

* fix(f117): expand the exact authorized source body in classic

Why: Stored reply previews contain only a short excerpt, so enlarging the
pill still hid most of the source after refresh. Keep the excerpt while
collapsed and supply full text from the unique source in the authorized
timeline of the rendered thread. Recalled/deleted previews, ambiguous or
missing sources, and another thread store never supply the body. The v2
preview and direct navigation stay unchanged.

Validation: exact-body red/green, 126 focused tests, Web types, scoped
Biome and frontmatter. Actual full-body rendering follows on the frozen
revision. No backend or runtime configuration changed.

[砚砚/gpt-6.1-sol🐾]

* fix(f117): fence classic wrapping from compact v2 presentation

Why: Compact human rows reuse the legacy header even in v2, so the new
wrap behavior must be gated by the presentation switch. Keep its v2
layout intact while retaining the validated classic full-source row.
The browser proof requires an explicit installed driver instead of
referring to the retired ppt-forge package.

Validation: 126 focused tests, Web types, scoped Biome/frontmatter and
the configured headless component journey. Actual classic/full-source
UI is proven at 26d6eb9; final build identity remains to be renewed.

[砚砚/gpt-6.1-sol🐾]

* fix(web): restore classic author and action strip parity

Why: operator screenshots show that classic retained new-shell action placement. Keep source before trajectory and speech inside the existing message action strip, with the runtime copy/reply/select/branch/delete order. Retain native trajectory access and v2 ownership. Document main capability migration into the single zts212653#1398 send and Queue contract without restoring retired state.

* docs: distinguish A2A private fixes from main capability migration

Why: Append privacy projection and terminal settlement are existing F117 responsibilities; the integration map must not describe their implementation gaps as new main mechanisms.

* fix(web): keep classic compact actions below the sheet heading

Why: the portaled action sheet reused the author-row absolute positioning, overlapping its heading and first control. Preserve the desktop slot and v2 while placing classic sheet controls in normal flow and wrapping narrow rows.

* fix(web): report queued Steer results using current client state

Why: HTTP 200 can mean the exact guidance input remains pending during native client startup. Consume that result and reconcile Queue before showing thread-scoped feedback, without claiming Append or read acceptance or retaining a stale wait notice after drain.

* fix(web): preserve saved Steer outcome when Queue refresh disconnects

Why: a rejected Queue GET is a read failure after the guidance request was saved. Return the existing refresh-failed result without misreporting a failed submission or inviting a duplicate retry; retain POST failures as errors.

* fix(web): preserve accepted steer intent after follow-up disconnect

Why: target mapping persists intent and wakes Queue before the per-target request. A lost follow-up must not report the accepted input as failed or skip the remaining targets; interruption itself stays unconfirmed.

* fix(a2a): execute Steer through one Queue operation

Why: Console split one Steer into target persistence and per-target execution requests, duplicating backend orchestration and obscuring partial delivery. Run existing guide or claimed interruption from the target request, report the durable handoff before advancing siblings, and share transport feedback without retrying mutations.

Author: astra / gpt-6-astra

* fix(a2a): advance Steer targets at Queue handoff

Why: The combined guide request waited for each native ACK after its Queue claim had already been released, blocking ready siblings. Observe the existing durable handoff to advance targets while retaining every final result and target-specific rejection facts. Cover slow acceptance, rejection and thrown dispatch without adding delivery state.

Author: astra / gpt-6-astra

* fix: retain visible canceled response mentions and validate Redis test leases

Why: canceling outbound execution does not retract a published response. Match Redis mention publication to the canonical predicate while preserving excluded sources and acknowledgment boundaries. Exercise real owned runner leases instead of treating an isolated flag as authority.

Validation: canceled-response parity and isolation-consumer red/green; 232 API tests passed (6 skipped), 86 isolated Redis passed, API/MCP build and governance passed. Full check and exact four-product builds follow this commit before non-author review.

[astra/gpt-6-astra🐾]

* test(api): align cursor read regression with mention handling result

Why: the delivered read endpoint reports handledMention alongside advanced and
caughtUp. Five successful owner-read assertions still expected the older JSON
shape, causing exact public candidate 2d3 CI failures. Preserve every existing
owner, mutable-stream and cursor guard; require handledMention=false where no
user request was handled.

The original five failures and 20-test passing rerun are archived. This is a
test-only save of the frozen feature, not a new public export or runtime change.

[砚砚/gpt-6.1-sol🐾]

* fix(test): retain bounded cleanup scan failure evidence

Why: Linux CI returns cleanup=unknown after a successful isolated Redis
lease probe, but discards the scanner failure before the runner can report
it. Preserve safe operation/code/PID evidence without error text, environment
bytes or child stderr. Unknown cleanup still fails immediately.

Diagnostic only: the original Linux CI cause remains unconfirmed.

[astra/gpt-6-astra🐾]

* fix(ci): bound public test cleanup to an isolated PID domain

Why: Linux cleanup scans same-UID procfs entries, while the public lane
previously isolated only networking. Real CI encounters EACCES on a host
visible PID after the owned Redis lease probe succeeds. Create a fresh PID
namespace and matching private procfs before dropping privileges, rather
than treating unreadable processes as absent. Retain the protected network
receipt, privilege checks, token cleanup and failure policy.

Add native Linux boundary, denied-process, detached-child and monitor-death
regressions. Local macOS checks pass; native Linux execution remains a CI
requirement, not a locally proven fix of the original failure.

[astra/gpt-6-astra🐾]

* fix(ci): preserve parent-death signal across runner credential drop

Why: changing UID/GID clears unshare parent-death SIGKILL, so a killed
monitor could leave the isolated test process domain alive. Ask setpriv
to restore the signal, probe the actual unprivileged PID 1, and reclaim
the birth-identified test init even when the teardown assertion fails.

Native Linux tests remain a CI requirement; macOS validation is not
claimed as native evidence.

Author: Astra / cat-xlbldqjc / gpt-6-astra

* fix(mcp): bind completion cutover to the delivered target

Why: formal zts212653#1600 already retired run_task_test, so the current target delta removes only the three completion tools. Declare that exact delta and matching layer evidence, while testing that all four tools remain absent from the canonical registry. Official generation and both fixed-7b and default checks pass; validator and A2A behavior are unchanged.

Author: Astra / cat-xlbldqjc / gpt-6-astra

* fix: verify Linux terminal processes and namespace identities

Why: isolated Linux CI rejected legal namespace-zero coordinates and could not distinguish a fully exited execution from unreadable live processes. Require same-birth complete terminal-thread evidence, retain fail-closed cleanup, and migrate the removed carrier test to the current remote cancellation capability. Add native lease and thread-group probes without changing the 1398 A2A lifecycle.

* fix: reap adopted children in isolated public test domains

Why: b188 Linux shards retain descendant presence after termination because the shard runtime occupies PID 1 without an orphan reaper. Keep an unprivileged supervisor at PID 1, preserve command status and kernel teardown, and compare the old topology with the new one using bounded process facts. Production A2A and process ownership predicates remain unchanged. Native Linux validation remains pending CI.

---------

Co-authored-by: 小星星·砚砚 (GPT-6-astra) <codex-astra@cat-cafe.local>
Co-authored-by: lang <lang@langdeMacBook-Pro.local>
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.

1 participant