V48 Gate 4 (spec-impl): Depositor packs finalization - #251
Conversation
Resolve tool constructor names from path tool:Name, stream stubs, and host telemetry; title tool-use rows as that name, not "tool".
Drop raw backticks around tool:Name in a comment inside the embedded live pipeline runner template so SWC/Vercel can parse the host file.
Finish depositor batch admit and packs measurement projection: per-option ledger rows with absolute catalog chips, no session candidate/admitted counts on pack detail, soft compensation no longer drops confirmed deposits, deposit synthesis reload rehydrates options, patchfile download on deposit/read review only (never network packs). Gate 4/5 plans recorded in NOTES/QA.
Point /api/deck at .bd/the-pitch.pdf (application/pdf) instead of the Keynote package; keep .key for authoring only.
Track .bd/the-pitch.pdf as the served pitch-deck SoT for /api/deck.
Keep ProductDetailStage stageKey stable across compose → synthesize so source pickers and entrance motion do not remount on CTA click.
Project depository admission rows with per-pack absolute measurements flattened onto context/output and strip legacy session aggregates. Record live monitor run e359b78a.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Align Gate Quality PR title validation with AGENTS abbreviated categories (spec-only|impl-only|spec-impl).
Live sandbox deposit completed with 3 measured options; operator admit→packs verify remains for closure.
docs:refresh openapi drift so docs-refresh CI stays green.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cbb8f03482
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const expectsOptions = | ||
| run.contextSource === "deposit-option-synthesis" || | ||
| String(run.type || "").includes("deposit") || | ||
| /deposit|asset.?pack|synthes/i.test(String(run.summary || "")); |
There was a problem hiding this comment.
Limit option hydration to synthesis rows
When a completed non-synthesis AssetPack row is selected (for example a read-settle-asset-pack execution or an admission/history row whose summary contains “AssetPack”), this heuristic sets synthesisRunExpectsOptions even though the row has no output.depositOptionSynthesis. The resume effect then fetches that history row, finds no synthesis payload, and marks the deposit detail as failed instead of showing a telemetry-only detail; the previous check only opted in deposit-option-synthesis rows. Please keep this broad fallback from matching non-synthesis AssetPack activity.
Useful? React with 👍 / 👎.
| if (input.evaluation.compensation.state !== 'eligible-if-approved-and-selected') { | ||
| blockers.push('compensation-route-repair-required-before-admission'); | ||
| if (depositorApproved) { | ||
| warnings.push('compensation-route-not-fully-eligible'); | ||
| } else { | ||
| blockers.push('compensation-route-repair-required-before-admission'); |
There was a problem hiding this comment.
Keep soft-incomplete deposits unsettled
For depositor-approved options with an incomplete compensation route, these lines now admit the pack and the receipt later records compensationState: "not-eligible-for-compensation". The Packs ownership filter uses depositPackLooksSettled() and treats any state containing compensat as settled, so these newly admitted-but-unsettled packs will disappear from my-deposited-unsettled and show under my-deposited-settled. Please either avoid emitting a compensation-looking state for open inventory or tighten the settled predicate before admitting this new state.
Useful? React with 👍 / 👎.
P0–P2: synthesis detail stays on parent run after admit; packs Kind + BTD estimate columns; path-op patchfile download; measurement descriptors; DIV pass badge; admitted policy honesty copy.
Avoid false "options not found" when status completes before depositOptionSynthesis is visible on history GET.
58d523f to
5d45fe6
Compare
Deposit /deposits showed false "options not found" after
a successful SDIVF Finish because two layers mixed signals:
Shared (deposit+read synthesis streams):
- ExecutionStreamAdapter mapped store key "completion"
(e.g. finish/completion) to terminal stream completion
- That closed the client mid-run before product output
Deposit-only product close + hydrate:
- finalizeExecutionRow must write depositOptionSynthesis
before emitEvent(completion, {depositOptionsReady,...})
- Deposit UI hydrates from row/event envelope first;
history GET retry is fallback only
Proof: execution-stream-adapter + deposit hydrate tests
Guide deposit synthesis: Finish store ≠ product terminal; shared stream-adapter law; deposit hydrate order.
Add knowledge-in-a-box AssetPack icon. Marketing strip: BTD + AssetPack (green) exchange BTC/ETH/SOL triangle with brand glows; title Code/Coin.
Ship public SVGs used by the marketing Code/Coin exchange triangle.
Bitcode-side C + AssetPack use 2-size slots; chain triangle stays smaller 3-size so the pair reads larger than the coin stack.
Restore chain triangle to full optical size; enlarge C + AssetPack further and use left corner free space (wider badge padding).
Spell out which close/hydrate laws are deposit-only and which stream-adapter rules apply to all synths.
5d45fe6 to
34ee36a
Compare
Summary
Closes the Gate 4 depositor website + packs measurement surface after Gate 3 deposit SDIVF:
admitted-to-depository.candidateCount/admittedCount/ report root as fake measurements)./api/packs/activity; no patch on network packs.ReadsOptionCard.e359b78a-7c73-49bb-a54b-35e32dd1ef94in QA ledger.Live monitor
Deposit synthesis
e359b78a-7c73-49bb-a54b-35e32dd1ef94on staging-testnet is being monitored while this PR is open. When terminal, verify optionCount ≥ 1 with absolutes, then admit all selected → N packs rows with absolute chips only.Test plan
depositAdmissionActivity+packActivityModel+depositPageClienttsc --noEmit+ lint