Repository navigation
Description
qa#3 · os-tesla · session_01L9qibw6yXcLi9aRRBpPT4W
Slice A-P0 of qa#3's round 2 part A at 8e3d4a5 (the standing smoke after four of the five p0 blockers landed and the fifth was taken off the list).
Environment fingerprint
- Framework
objectstack-ai/objectstackmain @8e3d4a54(replaces a596c03; nothing at a596c03 is scored). Fresh tree:pnpm install --frozen-lockfile,pnpm build --concurrency=2,pnpm console:build, showcase compiled once (09:07–09:10Z). The console served by/_console/is byte-identical topackages/console/dist. - Boots:
objectstack dev --ui --seed-admin --no-compile --no-watch -p PORT -d file:/tmp/qa3/A/<runner>/<db>withOS_PORT/OS_STORAGE_LOCAL_ROOTexported, stopped by process group, one boot per runner at a time. Installs and fixture apps from scratch copies;examples/app-showcase/.objectstack/installed-packagesabsent throughout;git statusclean at the end. Ports 41210–41249. - Special boots: walled
isolatedandgroup(no-active-org, walled-environment-metadata); a scratch Postgres (datasource-credential-refusal-matrix); a v17 database written by npmcreate-objectstack@17.7.0with every dependency pinned to 17.7.0 and booted once by its ownos dev --seed-admin(v18-boot-refusals, ownership ceremony; golden v17.db sha256b090628a…78cd8); the cli-18-prerelease-db recipe restore under--dev(ceremony A5). - Execution: Tier 1 pins run centrally (sequential vitest
--maxWorkers=1per package, 19 groups, cli e2e underOS_TEST_TIERS=nightly): 3,403 tests, 3,400 passed, 0 failed, 3 skipped by design (rls-multitenant ×2 —describe.skipIf(!organizationsAvailable), the organizations runtime is not resolvable in the open workspace; activation-ledger-package-key ×1 —it.skipIfmemory driver). Tier 2 by 3 runner subagents (effort high): api (12 items), browser/mixed (8), cli (4, beside the upgrade slice). - Timestamps (UTC): build 09:07–09:10; pins 09:12–09:30; api runner 09:12–09:28 (setup ≈5 min, test ≈17); browser runner 09:11–10:01 (setup ≈12, test ≈38); cli runner 09:11–10:00 shared with A-UPG (setup ≈30 incl. the 17.7.0 install, test ≈55).
Scope
Selector priority:P0 at 8e3d4a5 → 24 items, all judged. Revisions (all equal to the resolver's): rls-both-sides 11 · write-path-guards 9 · crud-permission-matrix 13 · owd-sharing-matrix 9 · anonymous-deny-surfaces 5 · no-active-org-session-semantics 10 · walled-environment-metadata-operator-only 8 · query-contract-matrix 9 · packaged-action-disabled-dispatch 13 · packaged-flow-disable-durable 10 · default-organization-boot-invariant 4 · seed-integrity 7 · mcp-stdio-fail-closed 9 · dev-boot-contract 9 · organization-ownership-ceremony 9 · v18-boot-refusals 9 · account-app-entry 9 · console-login 5 · nav-surfaces-render 10 · builtin-apps-nav-render 13 · crud-roundtrip 18 · first-run-loop 13 · boot-health 14 · datasource-credential-refusal-matrix 9.
Derived item verdicts
| verdict | items |
|---|---|
| FAIL (0) | — |
| PARTIAL (3) | access-security.rls-both-sides (A5 D11 spot-check blocked(dependency #7463), as in round 1; the rest of A5 passed) · access-security.crud-permission-matrix (A5 guest anchor blocked(dependency #23267), as in round 1) · access-security.no-active-org-session-semantics (A0 producer (1), the member-less user, blocked(fixture): knownGaps[0], no HTTP door mints one on a walled boot since #25626; everything on producer (2) passed on both walled boots) |
| PASS (21) | every other item |
#32955 re-drive (round 1 FAIL #32953, approvals.account-app-entry [3], [4])
Fixed at 8e3d4a5 (8004529). A non-admin invited contributor (showcase_contributor + showcase_finance, no setup app) who is a pending approver on two fresh flow:showcase_invoice_signoff requests: GET /api/v1/meta/object/sys_approval_request → 200 on curl and on every in-page load; Approve / Reject render from the inbox row, from a cold-loaded ?request= link and from a cold load of the record URL; "Object Not Found" never appears. Approve moves progress 0 of 2 → 1 of 2, drops the persona from pending_approvers and turns viewer.can_act false; the buttons are gone after a reload.
Fails — reproduction rule and disposition
None.
Off-clause probes (rule 8)
Every runner kept a probe budget after each item (2–5 min); per-item minutes and doors are in the probe log (record-A-P0-clauses-1.md). No product defect found; no card drafted.
Observed and not carded (low, for the seat to weigh): the stock boot logs a [sharing-rule] warning that showcase_share_new_inquiries_with_field_ops expands to no recipients; on the single posture admin/create-user answers membershipCreated:false while a sys_member row (role member) exists immediately afterwards; os dev over a v17 copy upgrades it in place with a backup (the documented ADR-0131 D10 development exception, not a finding); a plugin driver's credentials sit in cleartext in sys_metadata at rest while every read door redacts them (the boundary ruled in #21921).
Parked-on #32908
Fixture gaps: a member-less user on a walled boot (no-active-org A0 producer (1)); the D11 private write-up (#7463); a guest-anchor binding door (#23267); the cli-18-prerelease-db recipe does not re-date rotation shards, so its sys_activity__r20261027 shard (66 rows) now falls outside the 7-day window and the first refused boot drops it by designed retention (restore through fixture-as-of); marketplace catalog content blocked(environment) by the egress proxy (named "Failed to load marketplace" state, as the knownGap expects).
Per-item checklist-accuracy notes follow.
access-security.no-active-org-session-semantics
- steps[8] says the member "creates a showcase_account and a showcase_project in A": a baseline member (showcase_member_default) cannot create either (403 PERMISSION_DENIED with A active). The run had the operator create them in A; the member's own create was the showcase_task, as the clause requires. The step should name who creates the parents or grant the member a set that can.
- A re-sign-in after the clear starts a session with an active organization again (the member's next session read activeOrganizationId = A), so a run must clear per session.
access-security.walled-environment-metadata-operator-only
- The org owner already holds
organization_adminin its own organization automatically (sys_user_permission_set row reason "auto-org-admin-grant: granted from membership grade 'owner'"), so the persona in this run held manage_metadata (fixture row) plus organization_admin — still not platform admin. Not a defect; noted so the persona's grants are explicit. - install-local leg not driven live (knownGaps[1]: scored from the pins; it would need a scratch-copy boot).
approvals.account-app-entry
- A3/A4 app segment: the request page opens under com.example.showcase, not the inbox's com.objectstack.account. This is by design since objectstack#32667 (ApprovalsInboxPage.tsx requestPagePath → objectHostAppSegment: the app that lists the request's record object, showcase_invoice → Showcase). A4.verify's "/apps//sys_approval_request/record/" reads as the component route's appId — stale wording; scored on the clause (lands on that request's page, replaced in history, parity wit…
- A6: the picker offers "简体中文" and stores locale zh-Hans; the item says "中文(中国) … code zh-CN". Wording stale; the clause's strings all hold.
- The persona is the inbox SUBMITTER as well as an approver (its own invoice, per fixtures.requires for A5), so the request page also renders Recall/Reply; harmless, noted.
cli.dev-boot-contract
- steps[6]/A2: with OS_HOME exported (the per-boot isolation many runners use), the nothing-chosen Database line is
file:$OS_HOME/data/objectstack.db, not the project's.objectstack/data/objectstack.db(measured:file:/tmp/qa3/A/ap0c/home-dev/data/objectstack.db). The clause's "" covers it, but the step should say "with OS_HOME unset" so a runner does not misread the line.
cli.organization-ownership-ceremony
- A5 stale spec: the post-upgrade delivery's ref_id is
declared:com.example.showcase/showcase_task_changed, not the clause'sdeclared:showcase_task_changed— the ADR-0150 D5 (objectql: narrow the phase-1 one-holder refusal from environment to namespace for webhook, connector and email_template (ADR-0150 child B, webhook family) #31699, feat(plugin-webhooks)!: declared webhooks are held per namespace, each holder dispatched and switched as its own (ADR-0150 child B, webhook family 2/3) #32577) package-qualified subscription id (declaredWebhookRefId(name, packageId), packages/plugins/plugin-webhooks/src/declared-webhooks.ts). Product right; the clause should readdeclared:com.example.showcase/showcase_task_changed(ordeclared:[PKG/]showcase_task_changed). - Fixture gap (cli-18-prerelease-db recipe): the restore does not re-date rotation shards, so the restored telemetry sibling carries
sys_activity__r20261027(66 rows), which by 2026-11-13 is outside the 7-day rotation window; the FIRST boot (the refused one, before any plan) drops it via driver-sql ensureRotation retention (designed; packages/qa/dogfood/test/upgrade-harness/fixture-as-of.ts exists for exactly this in the harness, butrestoredoes not apply it). So "no row disappears outside… - recipe knownGaps[1] says the moved mails' attempt_count goes 2 → 3 on the second boot; this run read status
failed, attempt_count 4 in sys_identity_email after the second boot (retry against the closed SMTP port) — same class, digits differ.
identity-auth.default-organization-boot-invariant
- The admin/create-user answer carries
membershipCreated:falsetogether withorganizationId: org_mwerd5s8ogmxyh1c, yet a sys_member row (role member) exists for that user immediately after — the membership is made by another path (the single-posture default-org binding), not by create-user itself. Not a clause defect (the clause reads sys_member), but a reader of the create-user body alone would conclude the user has no membership. - Boot log also warns
[sharing-rule] active business-unit rule expands to NO recipients … sys_business_unit_member rows written by seed replay … are not organization-stamped(rule showcase_share_new_inquiries_with_field_ops, organization null) — outside this item's clauses (sys_business_unit_member is not sampled by A3), noted for the record.
integration-system.datasource-credential-refusal-matrix
- Code-author env route (OS_DATASOURCE_*_PASSWORD) and the external.connector channel: not covered by this item (knownGaps[5]), not driven.
- At rest, a plugin driver's config keeps its canonical credentials as written in sys_metadata (read via node:sqlite: url userinfo, password, authToken present) while every read door redacts them — the ruled boundary (decision: how a datasource driver with no shipped config contract keeps credentials out of metadata (declaration vs. key-name heuristic) #21921: the write door accepts plugin config unvalidated); noted, not scored.
platform-core.builtin-apps-nav-render
- Counts moved: Setup now serves 48 leaves (steps[5] says 46) and 11 settings namespaces —
access_policy(nav_settings_access_policy, "Access policy — This organization's sign-in restrictions") is new beside the 10 steps[3] lists. Recount, not a finding. - Marketplace catalog content: blocked(environment) — egress proxy, the named error renders (knownGap).
records-forms.crud-roundtrip
- After Create the console lands on the new record page, not the list; acceptance[3]'s "post-reload screenshot of the list at create" needs an explicit list navigation + reload (run r1's reload was of the record page; r2 did it properly). Minor step wording.
- Industry defaults to Technology on the create form, so steps[1]'s "fill industry" is satisfied by the default unless another value is picked.
studio-authoring.first-run-loop
- The en leg used display name 'Repair Center Pkg' (zh leg 维修中心); the id/namespace the clauses read are identical (com.example.repairs / repairs).
- Picklist option names in the zh type picker: 下拉选择 (Picklist); the author-entered labels (Status, Received…) stay as typed, so the zh end-user list shows "In Repair" — the authored label, correct.
Activity
objectstack-fleet commentedon Nov 13, 2026
qa#3 · os-tesla · session_01L9qibw6yXcLi9aRRBpPT4W
Probe log (rule 8)
owner_id = $1, count 1 = own note only), POST /query where id=A's (200, 0 rows), $select on by-id (400 VALIDATION_ERROR — unsupported on that door), updateMany (207 RECORD_NOT_FOUND), per-object /batch update (207 RECORD_NOT_FOUND), cross-object /batch update (404) and delete (403), deleteMany (207 PERMISSION_DENIED),…reason(200). Nothing found.manage_metadatacapability", ledger read 403, data-API create on sys_metadata_activation 405 OBJECT_API_METHOD_NOT_ALLOWED (admin too); toggle of an undeclared action 404 RESOURCE_NOT_FOUND;enabled:"false"string 400 VALIDATION_FAILED. Nothing found.manage_metadatacapability"; same-boot kill switch also held (runs 2 → 2). Nothing found.-d :memory:(boots, Database:memory:), the env-URL tier,OS_DATABASE_DRIVER=mingospelling, SIGTERM vs SIGINT on --fresh. Found nothing.os migrate comment-reactions --applywith stdin closed and no --yes (refused, exit 1, checksum unchanged);os migrate apply --allow-destructivebefore the reactions conversion (the reactions gate is first, as steps[3] says); reset token reuse not tried (token consumed). Found nothing beyond the notes.passwd" (current parse refuses aliases); echo PATCH of the alias row → 200 and the withheld alias keys carried forward unchanged at rest (restoreRedactedConfig); anonymous create → 401. Nothing found.os serve --devover a second v17 copy: refused, --dev spelled (above). (2)os dev --no-compile --no-watch -d file:COPY3over a third v17 copy: the guard refuses, then os dev runs the documented ADR-0131 D10 development exception ("⟳ … os dev upgrades it in place, keeping a copy first…", backup at /tmp/qa3/A/ap0c/r1/backups/organization-ownership-, warns "sys_audit_log: the pla…Per-clause tables
access-security.rls-both-sides · rev 11 · PARTIAL
{"code":"RECORD_NOT_FOUND"}(not-found-shaped denial)objectstack verify --rls: probe-persona line── 21 PROVEN (21 consistent, 0 HOLES) · 3 NOT PROVEN (0 member-visible, 0 probe-blocked, 3 skipped); total line══ all personas: 38 PROVEN (38 consistent, 0 HOLES) · 226 NOT PROVEN (131 member-visible, 62 probe-blocked, 33 skipped) [unit: one object × persona probe]; …access-security.write-path-guards · rev 9 · PASS
[{"object":"showcase_contact","fields":["lead_score"],"reason":"readonly"}], header X-ObjectStack-Dropped-Fieldslead_score;reason=readonly; GET back lead_score null{"records":[…]}wrapper → 400 VALIDATION_FAILED "the body must be a JSON array of record objects"access-security.crud-permission-matrix · rev 13 · PARTIAL
access-security.owd-sharing-matrix · rev 9 · PASS
access-security.anonymous-deny-surfaces · rev 5 · PASS
{"success":false,"error":{"code":"UNAUTHENTICATED",…,"httpStatus":401}}, not 404/400{"error":"UNAUTHENTICATED","code":"UNAUTHENTICATED","message":"Authentication is required to access this endpoint."}for /data /meta /batch /security (and the meta PUT); dispatcher-wrapper{"success":false,"error":{code,message,httpStatus:401}}for /actions /automati…{"records":[],"total":0}, GET /meta 200 (types list)access-security.no-active-org-session-semantics · rev 10 · PARTIAL
access-security.walled-environment-metadata-operator-only · rev 8 · PASS
ai.mcp-stdio-fail-closed · rev 9 · PASS
--log-level infostderr: "INFO [MCP] stdio transport principal-bound to OS_MCP_STDIO_API_KEY identity e3mgB4UzhjDVakWpZ3rnOE7bsGw9ivGo (RLS/FLS/tenant applied)" (= the contributor's userId); liaison session: "… identity vaCJhar3GZAJicUqbwLffn3jUKPsPuKQ …". stdout carried only JSON-RPC lines (0 non-JSON lines){"rows":[{"status":"draft","n":1}],"totalGroups":1}= member REST POST /api/v1/data/showcase_invoice/query[{"status":"draft","n":1}]; admin REST draft 3, paid 5, sent 5 — member counts strictly lower on every bucket it cannot fully see{"error":{"code":"PERMISSION_DENIED","message":"[Security] Field read denied: not permitted to aggregate [budget] on 'showcase_project'","status":403}}, no number; groupBy budget → same refusal naming [budget]; count_distinct(spent) → same naming [spent]; controls: count g…os start … --log-level info: health 200; "INFO [MCP] Transport not auto-started (HTTP is served per-request at /api/v1/mcp regardless). Set OS_MCP_STDIO_ENABLED=true or autoStart …"api-backend.query-contract-matrix · rev 9 · PASS
expandapi-backend.packaged-action-disabled-dispatch · rev 13 · PASS
{"error":{"code":"ACTION_DISABLED","message":<the same sentence as the REST door>,"status":409}}; re-enabled → ok true, result {accounts 16, p…[ObjectQLPlugin] Activation ledger: 2 packaged action(s) are switched off … 'showcase_bulk_reassign', 'showcase_mark_done'): mark_done → 409 ACTION_DISABLED; re-enable 200 → Mark Done on the real task 200, task re-reads done true / progress 100; ledger row same id WVeNET-BfAeUn-I3…approvals.account-app-entry · rev 9 · PASS
pnpm console:buildrun by the dispatcher on this checkout, ready line@objectstack/console:build:dist: ✓ @objectstack/console dist ready (85648 KB) from ui/apps/console, with the tracked sdui.manifest.json(/tmp/qa3/A-console.log, 09:10Z); GET /_console/ on this boot loads assets/index-BBs…automation.packaged-flow-disable-durable · rev 10 · PASS
[Automation] Activation ledger: 1 packaged flow(s) are switched off for this installation and were left unbound — 'showcase_urgent_task_alert'.; GET /automation/_status → {enabled:false, bound:false, status active, triggerType record_change}cli.dev-boot-contract · rev 9 · PASS
objectstack dev --ui --seed-admin -p 41235 -d file:/tmp/qa3/A/ap0c/dev/data.db(default compile into the copy's own dist): boot log "🎯 Environment ID: env_local / 📦 Artifact: dist/objectstack.json / 🗄️ Database: file:/tmp/qa3/A/ap0c/dev/data.db"; health 200 after ~15 s; GET /api/v1/ready 200 `{"success":true,"…--no-compile --no-watch --admin-password changed99: POST /api/v1/auth/sign-in/email admin123 → 200, changed99 → 401{"code":"INVALID_EMAIL_OR_PASSWORD"}(judged by auth responses only)-d file:/tmp/qa3/A/ap0c/dev/data.db→ that URL; explicit-d :memory:→:memory:(health 200); envOS_DATABASE_URL=file:/tmp/qa3/A/ap0c/dev/envtier.db→ that URL; config-declared default (dsproj: datasourceqa_homesqliteconfig.filename: '.objectstack/data/qa_home.db'+ da…--fresh: "🧪 Fresh OS_HOME: /tmp/objectstack-dev-h9yURl", "🗄️ Database: file:/tmp/objectstack-dev-h9yURl/data/objectstack.db" (same unified filename); dir held data/, uploads/, dev-crypto-key while up; after SIGINTls→ No such file or directory; same for a second run stopped by SIGTERM (/tmp/objectstack-dev-U5J3…-p 41235while A held 41235): "➜ API: http://localhost:41236/" and "↪ server bound to port 41236 (requested 41235)"; GET :41236/api/v1/health 200touch src/ui/actions/index.ts(2 min newer than dist/objectstack.json), server down,--no-compile: "⚠ dist/objectstack.json is OLDER than your sources — this boot serves the STALE build. / newest source: src/ui/actions/index.ts (2m newer than the artifact) / fix: runobjectstack buildor start with--compile."…--database-driver memory→ exit 2, oclif "Expected --database-driver=memory to be one of: sqlite, sqlite-wasm, postgres, mysql, mongodb, turso";OS_DATABASE_DRIVER=mingo→ exit 1, refused before any Database line (0 Database lines), namingos dev --freshand:memory:;-d memory://→ parent printed "🗄️ Datab…cli.organization-ownership-ceremony · rev 9 · PASS
os serve(exit 1): bareos migrate organization-ownership --database-url file:c1.db --out plan.jsonexit 0, "✓ Plan written … — no row or table in the database was changed"; plan kindorganization-ownership-plan, ceremonyADR-0131 D10, inventoryDigest 650f0635…a23260b4, 154 table entries ("1…--apply --plan-file plan.json --backup-taken --out apply.json --jsonexit 0; report complete true, blocking 0, steps attribution, authored-conversion, metadata-promotion, template-promotion, settings-move, sibling-moves, declared-webhooks, declared-rule-copies, rewrite, mirror-deletion, history-renumber, column-d…os serve: exit 1, 0 "Server is ready"/listening lines, "✗ This database carries no organization-ownership marker: … Run 'os migrate organization-ownership --out PLAN' … 'os migrate organization-ownership --apply --plan-file PLAN --backup-taken'", 0 hits17.x release(no --dev on the produc…os migrate apply --allow-destructive --yes --jsonfirst refusesrefused_comment_reactions_unconverted(exit 1, created [] applied [], sha = golden);os migrate comment-reactions --apply --yestwice exit 0 ("Converted 0 reaction(s) … recorded as verified"); then apply --allow-destruct…os serve --dev: exit 1, no ready line, "This database carries no organization-ownership marker … sys_flow_credential, sys_secret still carry …" with --dev ceremony commands. Plan --dev exit 0; apply --dev exit 0, complete true, blocking 0 (sibling-moves moved 10, jobsRewritten 2; declared-webhooks mirrorsDe…identity-auth.default-organization-boot-invariant · rev 4 · PASS
09:12:14.987Z INFO [default-org] created the Default Organization (org_mwerd5s8ogmxyh1c)precedes09:12:22.897Z INFO [default-org] promoted the platform admin to owner of the default organization; sys_organization row {id org_mwerd5s8ogmxyh1c, slug default, created_at 09:12:14.984Z} vs first sys_user adm…owner; the admin/create-user member (create-user 200, mustChangePassword:true, organizationId org_mwerd5s8ogmxyh1c) rolemember; an invited sign-up rolemember. get-session: admin activeOrganizationId org_mwerd5s8ogmxyh1c; member (after change-pas…integration-system.datasource-credential-refusal-matrix · rev 9 · PASS
platform-core.boot-health · rev 14 · PASS
curl …/api/v1/health→ 200 on poll 35 (0.5 s cadence); time-to-healthy 17.7 s from the setsid launchcurl …/api/v1/ready→ 20033 flow(s) 18 bound to triggers (record_change, schedule, time_relative, api) · 8 draft; exactly two unbound lines, both under ℹ (not ⚠), both the deployment-policy class ('time_relative'→ showcase_task_due_reminder;'schedule'→ showcase_scheduled_digest; "package-authored scheduled work is off ……content-type: text/html; charset=utf-8, 24124 bytes, loads assets/index-BBsDDmqN.js (byte-identical to packages/console/dist, sha256 e917fddb…)Seeds: com.example.showcase 138 rows(plain, no ⚠, noN ok / M errors, no lost links); no SeedLoader/Seeder/dropped line in the boot windowplatform-core.seed-integrity · rev 7 · PASS
••••••••(expected-masked by declaration, not a mismatch). f_multiselect ['red','green'] as a set, f_lookup = Northwind's id LVOXRxfyimyeQeop, f_lookups = [Northwind, Contoso] ids, f_master_detail = Website Relaunch…Seeds: com.example.showcase 138 rows(plain, no ⚠, no error/lost-link count); info line[Seeder] Seed loading complete {"inserted":138,"updated":0,"skipped":0,"errored":0}; nodropped record(s)line in either boot log[Seeder] Seed loading complete {"inserted":0,"updated":0,"skipped":138,"errored":0}; second sweep 20/20 equal to authored, diff against sweep 1 emptyobjectstack-fleet commentedon Nov 13, 2026
qa#3 · os-tesla · session_01L9qibw6yXcLi9aRRBpPT4W
Per-clause tables (2)
platform-core.console-login · rev 5 · PASS
platform-core.nav-surfaces-render · rev 10 · PASS
SMOKE_API_URL=http://localhost:41220 pnpm -C examples/app-showcase exec playwright test --config=playwright.config.ts e2e/showcase-smoke.spec.tsat main 8e3d4a5, 09:17:14→09:19:04Z: "Running 50 tests using 1 worker … 50 passed (1.8m)", exit 0; spec named (bulk-capability-gate /…platform-core.builtin-apps-nav-render · rev 13 · PASS
platform-core.v18-boot-refusals · rev 9 · PASS
qarig_thing+plugins: [new SecurityPlugin()], --preset minimal),os serve --dev --no-server --preset minimalexit 1: "✗ SecurityPlugin cannot boot: its authorization store reads sys_user, sys_member, and this kernel does not register sys_user, sys_member. Without them every authe…records-forms.crud-roundtrip · rev 18 · PASS
studio-authoring.first-run-loop · rev 13 · PASS
git status --porcelainof the tree empty after both legsobjectstack-fleet commentedon Nov 13, 2026
qa#3 · os-tesla · session_01L9qibw6yXcLi9aRRBpPT4W
Close-out 2026-11-13T10:39Z.
No FAIL. Parked-on: #32908 · the three PARTIALs (dependencies #7463, #23267; walled-boot fixture gap)
objectstack-fleet commentedon Nov 13, 2026
qa#3 · os-tesla · session_01L9qibw6yXcLi9aRRBpPT4W
Closed 2026-11-13T10:42Z: the standing smoke at 8e3d4a5 holds (no FAIL); close-out above.