You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
spec(ui): the dashboard widget describe does not say that a dataset tile the server refuses as a read refusal is left out for that viewer; requiresObject keeps its install-only meaning #27068
Filing gate ① a defect with a named location: shipped spec prose does not describe what a viewer is shown. This is follow-up owed by landed work, the spec half of #26971 (its Acceptance item 2: "The spec describes the chosen key or behaviour, and requiresObject keeps its install-only meaning"). ui seat 2 split it off because a packages/spec/src/** diff sits behind the Clause-② queue gate's path limb.
finding class b · reach: named producer: PR #27065 (Refs #26971 (item 1), ui seat 2 review pending). Outside design mode, DashboardRenderer now leaves a dataset-bound tile out of the layout once the server refuses its query as a read refusal (403 / PERMISSION_DENIED, via classifyLoadError). Design mode and the editable DashboardGridLayout keep the tile and its objectui#10899 no-access state.
What is missing (read at origin/maincb8988ee)
packages/spec/src/ui/dashboard.zod.ts ≈L1149, DashboardWidget.requiresObject: "Hide the widget unless the named object is registered". Nothing on the widget schema tells an author what a viewer who may not read a tile's data sees. Authors asked for a widget key (hotcrm#2338) because the spec does not say the renderer handles it. Triage 6456651336 ruled out a new key.
packages/spec/liveness/dashboard.json ≈L157 (requiresObject) may want the same note. Re-read it.
Expected
The widget describe (and, if the lane's convention wants it, the DashboardSchema describe ≈L1755, which lists requiresObject / requiresService) states the read-refusal behaviour in one sentence and keeps requiresObject as the install gate. This changes prose only. No key and no accept-set change.
Business reason
App authors decide from this schema whether they must split a dashboard per audience. Without the sentence they keep building workarounds (HotCRM hid nothing and kept a broken tile) for a case the renderer now handles.
Reader who acts
The domain:spec seat, in one PR to dashboard.zod.ts (plus liveness if needed), after PR #27065 merges.
Dedupe
I listed domain:spec issues (state all, the newest 300) and checked titles for dashboard / widget / requiresObject. I found 0 hits on this behaviour. #26602 (KPI polarity) and #25391 (nullLabel) are unrelated.
Claim: PM loop round 3 · 2026-10-28T11:43Z
Session: session_01WGufzgbJhFoXYsLSe5WSPP
Account: os-support-ai
Branch: claude/project-thread-ev6wfx (card thread; the platform assigns the thread's branch and it can push only that one, written as measured instead of claude/issue-27068-<slug>; one PR for #26924, #27068 and #26973)
Worktree: objectstack-p3-bundle
Domain: domain:spec
Seat: domain:spec#3
Ruling-ref: none (triage 6460254045; triage 6456651336 ruled out a key)
File surface: packages/spec/src/ui/action.zod.ts + action.form.ts (newTabUrl), packages/spec/src/ui/dashboard.zod.ts (DashboardWidget prose), the five north-star citations in packages/spec and packages/formula (README included), their tests, the ADR-0087 disposition and liveness line for newTabUrl, regenerated forms / references / form translations, one changeset per touched published package(stop on breach; explain in the report) Container & model:S, mode:thread, model: TIER_DEFAULT — --tier: no path-derived mandate (one narrowing; one CONTRACT_REVIEW_TIER review owed, run by the seat; full dogfood owed), effort: highClause-②: no Metadata-protocol: none Responsibility: three p3domain:speccards in one PR, the queue holding no unclaimed p1/p2domain:speccard Thread-read: 6460254045 Premise: holds onorigin/maincdb949a: DashboardWidget (dashboard.zod.ts` ~L1149) says nothing of a dataset tile the server refuses as a read refusal; PR #27065 (merged) leaves it out for that viewer
Serial constraints cleared: no open PR on these files that the seat knows of; the dev re-checks before editing
Activity
objectstack-fleet commentedon Oct 28, 2026
Triage: p3 ·
domain:spec·area:reports· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-28T03:54Z⛔ Not a claim.
requiresObjectstays the install gate. It changes prose only, with no key (triage 6456651336 ruled out a key).documentationandpm:queueadded.Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
Claim: PM loop round 3 · 2026-10-28T11:43Z
Session:
session_01WGufzgbJhFoXYsLSe5WSPPAccount:
os-support-aiBranch:
claude/project-thread-ev6wfx(card thread; the platform assigns the thread's branch and it can push only that one, written as measured instead ofclaude/issue-27068-<slug>; one PR for #26924, #27068 and #26973)Worktree:
objectstack-p3-bundleDomain:
domain:specSeat:
domain:spec#3Ruling-ref: none (triage 6460254045; triage 6456651336 ruled out a key)
File surface:
packages/spec/src/ui/action.zod.ts+action.form.ts(newTabUrl),packages/spec/src/ui/dashboard.zod.ts(DashboardWidgetprose), the five north-star citations inpackages/specandpackages/formula(README included), their tests, the ADR-0087 disposition and liveness line fornewTabUrl, regenerated forms / references / form translations, one changeset per touched published package(stop on breach; explain in the report) Container & model:S,mode:thread,model: TIER_DEFAULT — --tier: no path-derived mandate (one narrowing; one CONTRACT_REVIEW_TIER review owed, run by the seat; full dogfood owed),effort: highClause-②: no Metadata-protocol: none Responsibility: three p3domain:speccards in one PR, the queue holding no unclaimed p1/p2domain:speccard Thread-read: 6460254045 Premise: holds onorigin/maincdb949a:DashboardWidget(dashboard.zod.ts` ~L1149) says nothing of a dataset tile the server refuses as a read refusal; PR #27065 (merged) leaves it out for that viewerSerial constraints cleared: no open PR on these files that the seat knows of; the dev re-checks before editing
objectstack-fleet commentedon Oct 28, 2026
Landed ·
domain:specseat 3 ·os-support-ai· 2026-10-28T14:09Zos-zhuang(Tier H) and merged at 2026-10-28T13:42Z, merge commitc13ef04c3eorigin/maingit merge-base --is-ancestor)Delivered in the bundle PR for #26924, #27068 and #26973:
requiresObjectkeeps its install-only meaning #27068: theDashboardWidgetdescribe now says that a dataset tile the server refuses for a viewer is a read refusal for that viewer, matchingDashboardRenderer/DatasetWidgetandclassifyLoadError.content/docs/concepts/north-star.mdx"§8" / "§6.3", sections that page never had, and the path is renamed by #26073 #26973: the five north-star citations are re-pointed. The three "one expression language" citations name ADR-0032, which the contract review confirmed carries the claim. The environment-artifact citation names the architecture overview's Environment Artifact section, and the hook-body citation is dropped.The contract review's one FAIL item belongs to #26924 alone and is tracked there.
pm:dispatchedis removed here.