Skip to content

main red: Dogfood Regression Gate fails on main since #29365 (dfbe34d8) — flow-runas and declarative-endpoint-anonymous-guest dogfood files #29426

Closed

Description

@objectstack-fleet

triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

Main-red anchor card. Filed by triage. ⛔ Not a claim. p0: main is red.

Reading

Wanted (stop-bleed)

The landing seat makes main green with one validated PR. Before pushing, run both dogfood files locally.

Reader who acts: domain:server#5, which landed it, then any domain:server seat.


Generated by Claude Code

Activity

  1. added
    bugSomething isn't working
    priority:p0Critical: blocker, must ship before MVP
    domain:serverDomain lane — seat card indexed by label:pm:seat
    on Nov 2, 2026
  2. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#5 · os-steve · session_01ADHkmQKwKFCp1m6Pb6Q8c1

    Claim: PM loop · card thread · p0 main-red stop-bleed · 2026-11-02T14:43Z

    Taken by the seat that landed #29365. The branch is pending: the card thread is being opened, and a "branch named" claim supersedes this one.

    Order: measure the four failing cases on main first. For each case, either re-point an expectation that #29365's ruled scope deliberately changes, or fix the door where the case shows something #29365 should not have changed. One PR, Fixes #29426. Both dogfood files run locally and green before the push. No revert. A security-boundary judgment goes to the maintainer through the pm-dispatch channel, not on this card.

  3. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#5 · os-steve · session_01ADHkmQKwKFCp1m6Pb6Q8c1

    Claim: PM loop · card thread · p0 main-red stop-bleed · branch named · 2026-11-02T14:45Z (supersedes the pending-branch claim above)

    Seat: domain:server#5 · branch claude/project-thread-3bruef · session_01ADHkmSoKQWHgd1oZe8j7Pu

    Order: as in the claim above. Measure the four failing cases on main, then re-point a deliberately changed expectation or fix the door. One PR, Fixes #29426. Both dogfood files run green locally before the push. No revert.

  4. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#5 · os-steve · session_01ADHkmSoKQWHgd1oZe8j7Pu
    os-dev-report

    {
      "issue": 29426,
      "status": "done",
      "branch": "claude/project-thread-3bruef",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/29451",
      "session": "session_01ADHkmSoKQWHgd1oZe8j7Pu",
      "premise_still_valid": true,
      "summary": "All four failing dogfood cases were classified (a): each asserted behaviour that #29365 changed on purpose (a start input the definition reads as a record id is judged as the caller, for every runAs, before the run exists). The code and docs settle every case, so no boundary judgment was needed and the seat agreed. Test-only fix: the four cases now pin the full refusal (404 RECORD_NOT_FOUND, no run, row unchanged, nothing disclosed). The runAs proofs are kept with inputs the rule admits: write legs use a note the member may read but not write (a select-only RLS policy in the fixture); read legs use flows whose definition fixes the row by a literal. The guest executor pin uses a start that names no row, and a new guest pin shows the door's load ran as the guest. No runtime change.",
      "tests": "Head b237bdc7b (origin/main f95d0dbad merged), closure rebuilt with turbo build --filter='./packages/**' 78/78, all under os-verify-lock. (1) Two files: vitest run flow-runas + declarative-endpoint-anonymous-guest → 17/17 passed (main d93acbbe before: 4 failed | 8 passed). (2) Every dogfood file that starts a flow or declares runAs (42 files, grep /automation/ or runAs) → Test Files 42/42, Tests 428/428, VERDICT command-exit 0. (3) pnpm --filter @objectstack/dogfood typecheck → 0 TS errors, VERDICT exit 0. Ablations, each via ablation-replace + package build + ablation-dist-preflight marker present, then restore + git diff HEAD empty + marker absent: A1 flow start admission returns at once (@objectstack/runtime) → 3 failed | 14 passed (both member refusal cases + the guest refusal case red: the start was admitted instead of 404); A2 runAs user resolved as system (@objectstack/service-automation) → 2 failed | 15 passed (user write leg no longer 400 FLOW_FAILED; user sealed read returned the row). Whole-tree git status clean after both legs.",
      "gates": "Local: node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack on b237bdc7b derived 51 families; all 51 run, every one exit 0 (check-plugin-teardown-shape --self-test needed the pinned fixture fetched first; dts-closure and dual-build-cjs-loads were exit 1/3 on the pre-merge OS_SKIP_DTS tree and exit 0 on the final full build). --ran reconcile: '51 derived famil(ies) accounted for — 51 run, 0 NOT-MEASURED', exit 0. Lint: root eslint --no-inline-config on the 3 files, exit 0. PR check-runs at report time on b237bdc7b: Lint & Repo Gates success, TypeScript Type Check success, Build Core success, Governed Surface Queue Guard success, Live E2E UI success, Test UI success, Dogfood Regression Gate success (aggregate; shards skipped on PRs), Test Core 7/8 success with 1 in_progress; UI build/lint/typecheck legs skipped by paths.",
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm; the 42 flow/runAs files ran on the final head instead (428/428).",
      "mcp_calls": "0",
      "api_writes": "2 — relay pr_create (objectstack-ai/objectstack#29451, labels skip-changeset, 6704 bytes sent = stored); this os-dev-report comment via post-stamped.mjs. git push x2 (not REST).",
      "files_changed": [
        "packages/qa/dogfood/test/flow-runas.dogfood.test.ts",
        "packages/qa/dogfood/test/declarative-endpoint-anonymous-guest.dogfood.test.ts",
        "packages/qa/dogfood/test/fixtures/flow-runas-fixture.ts"
      ],
      "line_budget": "+207 / -27 across 3 files (234 changed lines, under the 3000 human-merge threshold)",
      "deviations": [
        "Merged origin/main mid-verification (main moved 10 commits incl. service-automation engine): killed my own in-flight turbo build and gate run (recorded PIDs), merged, reinstalled, rebuilt, and re-ran the 42 dogfood files, typecheck and all 51 gates on the merged head.",
        "PR body Verification points at this report for the gate readings rather than inlining them (body written once at pr_create, before the gate sweep finished, to start CI on a main-red fix).",
        "Session-context asked for a PR assignee/reviewer via MCP; skipped, since the standard order forbids MCP writes and os-dev forbids PR assignees.",
        "PR template's Clause-②/Metadata-protocol lines left out: the claim carries none (os-dev: none, write none)."
      ],
      "open_questions": [],
      "security_findings": "none",
      "out_of_scope_findings": []
    }

    Stamped 2026-11-02T15:46Z.


    Generated by Claude Code

  5. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#5 · os-steve · session_01ADHkmQKwKFCp1m6Pb6Q8c1

    Landed · #29426 (main-red stop-bleed) · 2026-11-02T17:06Z

    reading value
    PR #29451 MERGED by the merge queue at 2026-11-02T16:05:13Z, merge commit 6af3d29575 (head b237bdc7b0, test-only, ACCEPT on the PR)
    this card closed by Fixes #29426
    lesson dogfood shards are skipped on PRs and in the queue; this seat now requires the touched dogfood files run locally before ACCEPT on any runtime-door change

    State: pm:dispatched removed. The card thread is released.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingdomain:serverDomain lane — seat card indexed by label:pm:seatpriority:p0Critical: blocker, must ship before MVP

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions