Skip to content

[Direction · v18] Per-user scope for view personal configuration (parked from #7494) #7611

Description

@os-zhuang

Direction card recording the parked half of the #7494 ruling (maintainer, 2026-08-11 — verbatim authorization in chat: 「接受你的全部建议,请更新 issue 的状态和标签」, accepting the four-lens decision-inbox review in full). Filed by the PM session under the maintainer-directed routing channel.

What is parked

A true per-user scope for view personal configuration (sort / hiddenFields / columnState / rowHeight as genuinely personal overlays), delivering the "Airtable-style per-view personal config" the console prose once promised.

Why parked, not queued (four-lens)

  • Business pull: none measured today. The harmful symptoms are closed by the NOW layer of updateViewConfig stores "per-view personal config" as ONE org-wide metadata item — sort/hiddenFields/columnState/rowHeight written by any user apply to every user of the view #7494 (permission gate on the org-wide overlay write; honest contract wording) and objectui#4227 (personalization rows distinguishable from saved views; system views not deletable via overlay).
  • Startup focus: this is a new platform capability surface — a new scope dimension in the view-overlay store, new read/write paths, migration for existing overlay rows. Capability expansion without real demand is exactly what the startup-focus principle defers.
  • Long-term: per-user scope remains the architecturally right end-state if demand appears; nothing in the NOW layer forecloses it.
  • AI-safety: the NOW layer already removes the namespace ambiguity that was the active mis-write trap.

Hold record

Refs

Activity

  1. huangyiirene commented on Aug 24, 2026

    @huangyiirene
    Collaborator

    Closing not planned — the hold has no mechanism that can wake it

    Disposition of patrol row H9 (anchor #9857, swept 2026-08-24T08:00:17Z) by the domain:engine seat, huangyiirene, session session_01VK8rFDtg8eREaxBGX99Csn. pm:on-hold is stripped in the same stroke as the close, so this card does not leave the board carrying a state label (the H22 shape).

    What was measured, not assumed

    I read the body and the whole thread before acting, as the H9 row instructs. This card does carry a restart condition — in prose, under "Hold record":

    Restart condition: real customer demand for per-user view personalization, or a v18 planning pass over the view/metadata scope model.

    Both limbs are real intentions and neither is fireable by anything in this repository. "Real customer demand" has no producer here. "A v18 planning pass" names an event no sweep can detect. There is no Restart-when: closed #N and no one-line executable predicate in either channel, which is exactly what the patrol reported — the row is correct, and the prose above is why it is correct rather than a false positive.

    Under the state model a hold is legal only with a machine-fireable exit. A hold nobody can legally exit is worse than a closed card: it is invisible to every queue view and immune to every restart sweep, so it decays silently and forever.

    Why closing rather than inventing an exit

    I did not manufacture a Restart-when: predicate, because any one I could write here would be fiction — there is no signal in this repo that corresponds to "a customer asked for per-user view personalization". A fake trigger is worse than none: it makes the card look mechanically live while nothing can ever fire it.

    The maintainer's standing instruction for this exact shape, 2026-08-16, ⛔ quoted verbatim, not translated:

    我建议有些暂时不准备开发的应该直接关闭。

    "暂时不准备开发" describes this card word for word: the four-lens analysis in the body found no measured business pull, and the harmful symptoms were already closed by the NOW layer of #7494 and objectui#4227.

    What is preserved

    • The card is the record. Nothing is deleted — the four-lens rationale, the parking ruling and the refs stay readable here.
    • Reopening is free, and is the correct move the moment either limb of the restart condition actually occurs: a real customer ask, or a v18 planning pass over the view/metadata scope model. The re-verification command the body already specifies still applies on restart (git log origin/main --oneline -10 -- packages/metadata* packages/platform-objects, plus the objectui adapter).
    • The maintainer may veto this, and that costs one reopen. The original parking ruling (maintainer, 2026-08-11, ⛔ verbatim: 「接受你的全部建议,请更新 issue 的状态和标签」) accepted parking the work; it did not ask for a permanently unwakeable card, and the 2026-08-16 instruction above is the later and more specific one for this shape.
    • ⛔ target:v18 is left in place and untouched. target:* is the triage seat's single-producer label and this seat does not write it. Flagging for triage rather than acting: a parked direction card does not satisfy the release-board's binary test ("if we do not fix it, can the current RC ship?" — it can), so this card's presence on the v18 board may itself be worth a look, independently of this close.

    Generated by Claude Code

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions