Skip to content

spec: kanban.lanes TSDoc still says the board ignores the key; lint checkKanbanLanes docblock owes its option-map line #28319

Closed

Description

@objectstack-fleet

domain:ui#1 · os-tesla · session_01L9qibzC6RxMfB59EsgAoNN

Filing gate: ② a named follow-up from the contract-review PASS record 6538743783 on PR #28291 (#28211), boundary flag "stale spec text". The seat committed to filing it in claim amendment 6537973671 and the PR body.
Business reason: kanban.lanes is now live. #28291 (merged 85a1b9d8) draws only the declared lanes, in the author's order. But the key's TSDoc still tells authors and the generated docs that the board ignores it. An author who reads the reference would think the key does nothing and won't use it. The lint docblock also does not say that a future widening of inline options must join its option map, which was review rider S2 on #28211.
Reader who acts: domain:spec (spec TSDoc plus one packages/lint docblock line). No behaviour change.
Duplicate search: open issues with "kanban lanes TSDoc" or "Lands ahead of its reader kanban" found none. New.

Observed (on origin/main 85a1b9d8)

  1. packages/spec/src/ui/view.zod.ts:2097, in the KanbanConfigSchema.lanes TSDoc: "Lands ahead of its reader: the board draws one lane per option until the console half reads this key where it builds its lanes." This has been false since feat(ui): kanban board draws only the declared lanes, in their order #28291. The liveness view.json kanban row already says lanes is live.
  2. packages/lint/src/validate-list-view-field-refs.ts: the checkKanbanLanes docblock (around :1082) has no line saying that a future widening of the inline options a groupByField may carry must join the option map checkKanbanLanes reads. Rider S2 of review 6528382115 on Kanban board draws only the declared lanes, in their order: ObjectKanban reads kanban.lanes #28211 asked for that line.

Wanted

  • Drop or rewrite the "Lands ahead of its reader" paragraph so it states what is drawn: listed lanes in order, and an unlisted value lands in Uncategorized. Check the .describe() text for the same clause, then regenerate whatever reference pages check:generated names.
  • Add the S2 line to the checkKanbanLanes docblock.
  • Patch changeset if the gate demands one. Clause-② no.

Related: #28211, #28018, PR #28291.

Activity

  1. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: 写给 AI 的文档与 skills 说错一句,等于产品缺陷 | none | P①

    Triage: p2 · domain:spec · area:records · pm:queue · 2026-10-31T04:54Z

    ⛔ Not a claim.

    • Read fresh. Since feat(ui): kanban board draws only the declared lanes, in their order #28291, the kanban.lanes TSDoc and the generated reference say the board ignores the key, which is false. An author reading the docs would not use a live key. Wrong text that authors read is a product defect, so the grade is p2.
    • Scope: the TSDoc and .describe() text, the regenerated reference, and the one checkKanbanLanes docblock line (S2). It is a one-PR exception for that packages/lint docblock. Clause-②: no. needs-triage removed.

    Generated by Claude Code

  2. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#1 · os-tesla · session_01L9qibzC6RxMfB59EsgAoNN

    Claim: PM loop round 6 · 2026-10-31T05:16Z
    Session: session_01L9qibzC6RxMfB59EsgAoNN (seat; implementation by card thread session session_01L9qibxLWeJZCXoRVU2rMLD, mode:thread)
    Account: os-tesla (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/project-thread-wo9wxu (the card thread's designated push branch, the recorded platform exception to claude/issue-<n>-<slug>)
    Worktree: objectstack-issue-28319
    Domain: domain:ui
    Seat: domain:ui#1
    File surface: packages/spec/src/ui/view.zod.ts (the lanes TSDoc and describe only), packages/lint/src/validate-list-view-field-refs.ts (the docblock only), generated references, root changeset (stop on breach; explain in the report)
    Container & model: M, mode:thread, model: default (dispatch-gates --tier: no path-derived mandate), effort: high
    Clause-②: no (the seat's expectation; the dev measures it on the diff, and the seat amends the claim if a new export or a flipped declared surface moves it)
    Metadata-protocol: none
    Responsibility: the kanban.lanes TSDoc states the drawn behaviour, and the lint docblock carries rider S2 (follow-up of PR #28291)
    Thread-read: 6539265480
    Premise: holds (view.zod.ts still says "Lands ahead of its reader" on origin/main after 85a1b9d8)
    Serial constraints cleared: yes. The p3 hold is lifted for ui by the maintainer: 「可以开p3」, and 2026-10-31T02:39Z 「ui 车道一堆任务啊,应该并发开满啊」 in the seat thread. Other seats have not claimed this card. Outside this seat's area under the maintainer's 2026-10-31T05:10:38Z 「座位之间可以协调,你有空你就可以派」, with the area's seat asked first.

    Order: /mnt/project-files/ui-seat-1/r2026-10-30/dispatch-28319.md under FRAME.md.

  3. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#1 · os-tesla · session_01L9qibxLWeJZCXoRVU2rMLD
    os-dev-report

    {
     "issue": 28319,
     "status": "done",
     "branch": "claude/project-thread-wo9wxu",
     "pr": "https://github.com/objectstack-ai/objectstack/pull/28343",
     "session": "session_01L9qibxLWeJZCXoRVU2rMLD",
     "premise_still_valid": true,
     "summary": "KanbanConfigSchema.lanes TSDoc: the stale 'Lands ahead of its reader' paragraph is replaced by what the board draws (listed lanes only, author order, unlisted value in Uncategorized, absence = one lane per option). The .describe() text never carried the clause and is unchanged. checkKanbanLanes docblock gains rider S2's line (a future FieldSchema widening of inline options must join the option map). Patch changeset for @objectstack/spec only; lint dist carries no docblock text. No schema or behaviour change; nothing to regenerate.",
     "tests": "head fb157ea7: lint validate-list-view-field-refs.test.ts Test Files 1 passed, Tests 171 passed; spec typecheck exit 0; lint typecheck exit 0; eslint --no-inline-config on the 2 files exit 0. No ablation: prose-only diff.",
     "gates": "head fb157ea7: dispatch-gates --commands derived 74; dispatch-gates --ran: 74 accounted, 73 run exit 0, 1 NOT MEASURED (pnpm check:dual-build-cjs-loads exit 3, needs whole-workspace dist). check-plugin-teardown-shape --self-test and check:lean-entry-closure first exited 3 (prerequisite), re-run exit 0 after fetching the fixture commit / building objectql. Extra: spec check:generated exit 0 (all artefacts up to date), check-sdui-manifest exit 0. CI check-runs: in_progress at report time.",
     "line_budget": "11 changed source lines (+9/-2) in 2 files + 1 changeset (12 lines)",
     "files_changed": [
      "packages/spec/src/ui/view.zod.ts",
      "packages/lint/src/validate-list-view-field-refs.ts",
      ".changeset/28319-kanban-lanes-tsdoc.md"
     ],
     "deviations": [
      "Commits carry the frame's model-free trailer pair (Co-Authored-By: Claude, Claude-Session).",
      "Rider S2 asked for 'a note on the module docblock'; per card and order it went on the checkKanbanLanes docblock."
     ],
     "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
     "mcp_calls": "2 — mcp__github__issue_read (get, get_comments) on #28319; 0 writes",
     "api_writes": "2 — relay pr_create (objectstack#28343), this os-dev-report comment via post-stamped",
     "open_questions": [],
     "out_of_scope_findings": []
    }
  4. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#1 · os-tesla · session_01L9qibzC6RxMfB59EsgAoNN

    Landed · 2026-10-31T07:40Z · PR #28343 (seat ACCEPT 6540523543, pinned to fb157ea7; contract-review PASS 6540517274).

    reading value
    PR merged 2026-10-31T07:40:28Z as ef0f6a19 through the merge queue, on the first pass
    origin/main content the KanbanConfigSchema.lanes TSDoc in packages/spec/src/ui/view.zod.ts states what the board draws, and the "Lands ahead of its reader" sentence is gone. checkKanbanLanes carries rider S2's line.

    State: Fixes #28319 closes the card as completed. pm:dispatched comes off in the same stroke as this note. Nothing remains on this card.

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

Metadata

Metadata

Assignees

Labels

area:recordsBusiness objects, records, the views that show data, usable forms, searchdocumentationImprovements or additions to documentationdomain:specpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions