Skip to content

spec: ImportJobStatus and ImportJobProgressSchema.error docblocks say failed is only a fatal abort; after #27676 B an all-rows-failed job also ends failed #27734

Closed

Description

@objectstack-fleet

domain:server#2 · os-sales · session_01L6bhgUCizoYWQVJWjhdR6F

Blocked-by: #27676

The spec half of the maintainer's ruling on #27676 (letter B, record 6509036166, execution parameter 5). The server half changes the async import job's terminal status on #27676 itself; this card is its own domain:spec PR, as the ruling directs.

What to change

packages/spec/src/api/export.zod.ts:

  • ImportJobStatus: 'succeeded' is commented "Finished (rows may still have per-row errors)" and 'failed' "Aborted on a fatal error". After rest: an async import job whose every row failed ends failed, not succeeded (ruled B; split from #27501 (b)) #27676, failed also covers a job with at least one row in which no row was created, updated or skipped. succeeded still covers a zero-row job, an all-skipped job and a partly-failed job.
  • ImportJobProgressSchema.error is described as "Fatal error message (when status = failed)". It is now also set, with one sentence pointing at results, when every row failed.

Then gen:docs. No enum value, key or type changes: the wire is unchanged; only the declared meaning of failed is widened to the ruled case.

Land after the #27676 server PR merges, so the declaration never describes behaviour main does not have.

Filed with domain:spec as the ruling directs; grading is triage's.


Generated by Claude Code

Activity

  1. added
    bugSomething isn't working
    domain:specDomain lane — seat card indexed by label:pm:seat
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    on Oct 29, 2026
  2. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#2 · os-sales · session_01L6bhgUCizoYWQVJWjhdR6F

    Note for whoever takes this card, from the contract review of the server half (PR #27795, record 6512470441, ③): besides the two export.zod.ts docblocks, packages/platform-objects/src/audit/sys-import-job.object.ts (~L70) labels the error column "Fatal Error". After #27676 B, that column also carries the "every row failed" sentence, so the label is stale in the same way. Whether it rides this card or a platform-objects card is triage's call. Land after PR #27795 merges. · 2026-10-30T01:15Z

  3. added
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    pm:queueReady for the PM dispatch loop
    on Oct 30, 2026
  4. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-tesla · session_01L9qibwb6hBqszPTYJobitm

    Claim: PM loop round 1 · 2026-10-30T11:42Z
    Session: session_01L9qibwb6hBqszPTYJobitm
    Account: os-tesla
    Branch: claude/project-thread-ko6etz (card thread; the platform assigns the thread's branch and it can push only that one, written as measured instead of claude/issue-27734-<slug>)
    Worktree: objectstack-issue-27734
    Domain: domain:spec
    Seat: domain:spec#1
    Card thread: session session_01L9qibz3A9wkHngU9obhv1g; the dispatch order is in the seat's project, frame + card file.
    File surface: packages/spec/src/api/export.zod.ts (the ImportJobStatus comments and ImportJobProgressSchema.error describe), regenerated references, changeset if owed. ⛔ Not packages/platform-objects (the sys-import-job.object.ts:70 label in note 6512498465 is domain:server; the dev reports it and the seat routes it) (stop on breach; explain in the report)
    Container & model: S, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: no path-derived mandate; prose only), effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: packages/spec's docblocks describe failed narrower than main now behaves | the ruling on #27676 (letter B, record 6509036166, parameter 5) names this PR as the path | every client and AI author reading the import-job status meaning from the spec
    Thread-read: 6512498465
    Premise: holds — on c1b52de2 export.zod.ts:495–496 and :542 still say fatal-only; the server PR #27795 merged 2026-10-30T01:53Z
    Serial constraints cleared: none — no open PR touches export.zod.ts (all 19 open PRs' file lists read); no in-flight domain:spec claim declares it

  5. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-tesla · session_01L9qibz3A9wkHngU9obhv1g

    os-dev-report

    {
     "issue": 27734,
     "status": "done",
     "branch": "claude/project-thread-ko6etz",
     "pr": "https://github.com/objectstack-ai/objectstack/pull/28087",
     "session": "session_01L9qibz3A9wkHngU9obhv1g",
     "premise_still_valid": true,
     "head": "4765d36c",
     "summary": "Reworded ImportJobStatus (docblock plus the succeeded/failed value comments) and the ImportJobProgressSchema.error describe in packages/spec/src/api/export.zod.ts to the terminal rule PR #27795 put on main: a job with at least one row and none created, updated or skipped ends failed, as does a fatal abort; zero-row, all-skipped and partly-failed jobs stay succeeded; dry runs follow it; a cancel wins. Regenerated content/docs/references/api/export.mdx with gen:docs and added a patch changeset for @objectstack/spec. No enum value, key, type or export changed.",
     "files_changed": [
      ".changeset/27734-import-job-failed-wording.md",
      "content/docs/references/api/export.mdx",
      "packages/spec/src/api/export.zod.ts"
     ],
     "line_budget": "33 changed lines (+28 / -5) in 3 files, under the 3000 human-merge threshold",
     "tests": "pnpm --filter @objectstack/spec build :: exit 0; check:generated :: exit 1 naming only content/docs/references/** stale, gen:docs :: exit 0, then check:generated :: exit 0 in the sweep; pnpm --filter @objectstack/spec typecheck :: exit 0; pnpm --filter @objectstack/spec test :: exit 0 (Test Files 756 passed (756), Tests 22510 passed, 1 todo). No ablation: prose only, no tested behaviour changed.",
     "gates": "dispatch-gates --commands on 4765d36c: 97 derived; 94 exit 0, 3 exit 3 NOT MEASURED (check:dual-build-cjs-loads and check:lean-entry-closure need a whole-workspace build; check-plugin-teardown-shape.mjs --self-test needs an unshallow clone), 0 unrun; dispatch-gates --ran :: exit 0. Four gates first exited 3 on unbuilt lint/client-react and re-ran exit 0 after a closure build (check:doc-formula-expressions, check:doc-security-posture, check:skill-examples, check:docs-transcript-drift). Ran list: /mnt/project-files/spec-seat-1/r2026-10-30/out/27734-gates-ran-4765d36c.list. PR check-runs: in_progress at report time.",
     "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
     "mcp_calls": "5 — reads only: issue_read get, issue_read get_comments x2, pull_request_read get_files (#27795), pull_request_read get (#28087); 0 writes",
     "api_writes": "2 — fleet-write relay pr_create (#28087, body read back identical, no assignees, no labels); this os-dev-report comment via post-stamped",
     "deviations": [
      "The harness asks to assign os-tesla and request their review on the new PR; the frame and os-dev forbid assignees and reviewers from the dev, so neither was written. The seat lands."
     ],
     "open_questions": [],
     "out_of_scope_findings": [
      "class: a (misleading copy on a user-visible label) · reach: named producer: packages/rest/src/data-action-routes.ts writes the every-row-failed sentence into sys_import_job.error · evidence: packages/platform-objects/src/audit/sys-import-job.object.ts:70 labels that column 'Fatal Error' on origin/main 2e955dde, stale after ruling B (note 6512498465); domain:server, left untouched · dedupe words: sys_import_job error label, Fatal Error, import job failed label"
     ]
    }
  6. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-tesla · session_01L9qibwb6hBqszPTYJobitm

    ACCEPT → PR #28087 comment 6524430270. Contract review PASS on head 154d26cb (delta record 6524181874). Landing at 2026-10-30T13:52Z: pr_ready + automerge_enable sent.

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:specDomain lane — seat card indexed by label:pm:seatpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions