Repository navigation
Closed as not planned
Description
Filing gate: a declared spec default that the authoring path does not teach. Filed by the director seat (summon #35, seat post #12708, session_01VYToj6PQehTEKNrjGM9akg) on the maintainer's instruction in that session, verbatim: 「只需要处理已经交代的 userActions.editInline: true」. ⛔ Not a claim, ⛔ not a dispatch; triage grades and routes it.
The gap
ListView.userActions.editInlineis declared.default(false)("the list is read-only unless the author opts in",packages/spec/src/ui/view.zod.ts:1535). Since fix(plugin-list): read userActions.editInline with the spec default, folding a stored inlineEdit into it (objectui#5144) objectui#12036 (objectui#5144, merged 2026-10-09) the console enforces it: a grid view that declares neitheruserActions.editInlinenorinlineEditoffers no inline-edit toggle. The permission gate (object editable in place, principal canupdate) still applies on top.- Nothing on the authoring path says so, measured on
main86f53a4b8d:skills/objectstack-ui/rules/list-views.mdhas no rule for the key; its onlyuserActionsexample is{ search: false }(:228).skills/objectstack-ui/SKILL.mdspeaks ofinlineEditonly for the master-detail field, a different key.packages/cli/src/commands/generate.ts:372scaffolds a grid view with columns, sort and pagination and nouserActions.- Of 18 example files declaring grid or list views (
examples/app-crm,app-todo,app-showcase), at most 2 touch an inline-edit key. - The reference pages (
content/docs/references/ui/view.mdx:1084) document the default and nothing more.
- Consequence: a table built by an AI agent from the skill, scaffolded by the CLI, or copied from the examples is read-only in its cells after the upgrade. Users can still open the record form. HotCRM measured 41 such views with 0 declarations (filed on objectstack-ai/hotcrm in the same act).
What to do
- Skill rule (
skills/objectstack-ui/rules/list-views.md, under "Configuring a List View"): a grid or list view of a business object declaresuserActions: { editInline: true }; a view whose records are read-only by nature (log, audit, history, report roll-up) leaves it out with a one-line comment giving the reason. The checked example block gains the key;skills/objectstack-ui/evals/views-apps-actions-pages.jsongains a row that catches a generated grid view without it. The rule names the permission gate so the author does not expect the key to open editing pastupdate. - CLI scaffold (
packages/cli/src/commands/generate.ts, theviewtemplate): emituserActions: { editInline: true },in the generatedlistblock, with the one-line comment the skill rule uses; its test pins the line. - Examples: the grid and list views of
examples/app-crm,examples/app-todoandexamples/app-showcasedeclare the key, or carry the recorded reason, so the showcase demonstrates the written form. Measured count is 18 files. - Reference page: one sentence under the
editInlinerow incontent/docs/references/ui/view.mdxpointing at the rule, through the generator, not by hand.
Boundaries
- ⛔ No new lint gate or
objectstack validaterefusal for a view without the key: the key is the author's choice per view, and the decision framework reads "a new gate defaults to no". The eval row and the scaffold are the teaching path. - ⛔ No change to the spec default or to objectui's reading: the maintainer kept the opt-in rule in this act. A different default would be a spec card of its own.
skills/**is a Tier H path: the PR takes the maintainer's APPROVED review.
Acceptance
os generate viewfor an object emits the key; the skill eval reddens on a grid view without it; every example grid or list view declares it or carries the reason;check:generatedis current.
Related
- [finding]
userActions.editInlinehas two different defaults across surfaces, and neither is the spec's.default(false)objectui#5144, fix(plugin-list): read userActions.editInline with the spec default, folding a stored inlineEdit into it (objectui#5144) objectui#12036; the hotcrm counterpart card filed in the same act.
Filed by the director seat; generated by Claude Code
Metadata
Metadata
Assignees
Labels
No labels
Activity
objectstack-fleet commentedon Oct 10, 2026
Closed as superseded, by the director seat that filed it (summon #35,
session_01VYToj6PQehTEKNrjGM9akg), 2026-10-10T04:07Z.This card was filed under the premise that the spec default stays
editInline: falseand every business grid view declaresuserActions.editInline: true. Minutes later the maintainer ruled the other way in the same session, verbatim 「乙 v18 把 spec 默认翻成 true,editInline: false 变成关法。」: the spec default flips to true in v18 andeditInline: falsebecomes the opt-out. That ruling is #22605, which also carries the one paragraph the UI skill owes (inline editing on by default under the permission gate; a read-only-by-nature list declareseditInline: false). With the default on, the CLI scaffold emits nothing for the key and the examples need no declaration, so nothing of this card remains. ⛔ Not reopened on the same premise; a new need for the skill text goes on #22605.Generated by Claude Code