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. 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

  2. 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

  3. 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"
     ]
    }
  4. 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

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions