Repository navigation
console UX quality (parent): five defect classes from the objectui 1fb1ced36243 browser pass — false success, missing write feedback, dead-end flows, dishonest status, labels and disabled reasons — plus three polish items #12308
Description
Filing-gate category ④ (coordination node) on the maintainer's order in PM session session_016JB93R2KcQP4GgKaUnseVF, verbatim:
按这 5 类开父单,派给 objectui 车道,以及:820px 宽度下面包屑重叠。
- 每个新库首屏都弹时区设置。
- Home 页的应用卡片不是链接,没法在新标签页打开。
What this card is: the grouping of every console UX defect the browser pass of objectstack-ai/objectstack#23104 found (records objectstack-ai/objectstack#23163 and objectstack-ai/objectstack#23166), by root-cause class, so each class is fixed once through a shared mechanism instead of page by page. ⛔ Not dispatchable itself: its members are the units of work, each in its own lane's queue. Reader who acts: the objectui domain:ui execution seat(s), plus the objectstack lanes named for the server-side members.
Order presented to the maintainer (most harmful first): 1 → 3 → 2 → 4 → 5, then the polish items. The members' priority:* labels stay triage's; this order is the recommendation the maintainer's instruction above adopted the classes from.
1 · The UI says it worked when it did not (data at risk)
Shared direction: one mutation-result layer renders the server's actual outcome (done / nothing changed / conflict) instead of each page calling a success toast; every record write carries its concurrency token; the server refuses a write it will never serve rather than answering 200.
| member | status at filing |
|---|---|
| #12292 — list inline edit saves without If-Match, silently overwriting a concurrent write | in flight (pm:dispatched) |
| #12300 — Setup › Apps Delete / Disable report success for writes that changed nothing (server half: an unserved shadow row answered 200) | in flight (pm:dispatched) |
| #12286 — master-detail grid rewrote untouched siblings' stored position | closed (completed) |
objectstack-ai/objectstack#23149 — view overlay reset answers reset:true while list reads keep serving the overlay |
objectstack domain:engine, queued |
3 · Flows that dead-end
Shared direction: a quick-create that cannot collect every required field hands off to the full form; every emailed link is clicked at least once in e2e.
| member | status at filing |
|---|---|
| #12291 — calendar quick-create stuck on a required lookup | queued |
| #12301 — OAuth consent page fetches a route the server does not serve | queued |
| objectstack-ai/objectstack#23152 — the user-import invitation link lands on INVALID_TOKEN | routed to objectstack domain:services with this card |
| objectstack-ai/objectstack#23128 — showcase Recalculate actions answer 500 | objectstack domain:cli, in flight |
2 · Writes without feedback, or feedback that names nothing
Shared direction: every write gives feedback naming its subject — the default of the class-1 result layer, so forgetting it still yields feedback.
| member | status at filing |
|---|---|
| #12303 rows 1–2 — inline Save All and Discard draft are silent | queued (family card) |
| objectstack-ai/objectstack#23157 row 1 — the approvals drawer says only "Approved." | routed to objectstack domain:services with this card |
4 · Status the user cannot trust
Shared direction: connection state follows real request outcomes; "no access" and "not found" are different screens.
| member | status at filing |
|---|---|
| #12285 — a member gets "This app can't be opened" instead of the access-denied screen (P0 checklist item) | queued |
| #12295 — the header connection chip never shows a mid-session outage | queued |
5 · Labels over machine names, and disabled controls that say why
Shared direction: one shared name display (label first, machine name secondary, user ids resolved to people) and one shared disabled-reason wrapper (the record page's Archive button is the pattern that already passes).
| member | status at filing |
|---|---|
| #12303 rows 3–6 — disabled controls with no reason / no keyboard path; the lookup Display-field picker leads with api names | queued (family card) |
| #11862 — Access list and Changes panel lead with machine names | pm:on-hold: its Restart-when: (objectstack c512c255c5's _drafts labels in an installable release) is not met — npm latest is still 17.7.0 — and ruling 6053526025 forbids a per-surface label read meanwhile, so it stays held; its independent row moved to #12303 row 6 |
| objectstack-ai/objectstack#23157 row 2 — Explain access's Principal resolution prose names the user by raw id | routed to objectstack domain:services with this card |
Polish items the maintainer named
| member | status at filing |
|---|---|
| #12306 — metadata admin breadcrumb overprints its chips at 820px | queued (priority:p3) |
| #12305 — Home "Your apps" tiles are buttons, not links | queued (priority:p3) |
objectstack-ai/objectstack#23175 — every fresh os dev database opens on the timezone dialog (the CLI seed creates the workspace without a timezone; the console path already sends one, #11908) |
objectstack domain:cli, queued (priority:p3) |
Not filed (pure polish, below the filing gate, recorded in the run records): "1 notifications", a red badge on "0 issue(s)", raw ooo_substitute keys and user ids in the approval timeline.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 18, 2026
Closed
completed: every member of the five classes is closed · triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-18T14:41ZTriage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015). ⛔ Not a claim. Closed on the maintainer's order in this seat's chat on 2026-10-18: 「epic 处理完的,你判断可以关闭的就关闭」.
Generated by Claude Code