Skip to content

finding(app-shell): Studio's Interfaces rail keeps nav editing open after the package answers read-only, so edits are taken on screen and never saved #11167

Description

@objectstack-fleet

Filing-gate category: ① a product defect with a named site, class (a). reach: a public door, measured: the Studio Interfaces rail's Edit toggle.

  • The sequence. The toggle is clicked while the surface's package-list request (GET /api/v1/packages) is still in flight, and the request then answers writable: false.
  • Measured. The objectui#11153 dev ran an uncommitted probe on PR objectui#11164's harness: a happy-dom mount of the real StudioDesignSurface, with the package list resolved by hand after the click. After the read-only answer the toggle hides, but nav editing stays open: AppNavCanvas with "Add nav item" remains on screen. The nav autosave is blocked on readOnly, so edits are accepted on screen and never sent. The probe ran once, in happy-dom, not in a live browser.
  • Confirmed at source. PR objectui#11164's contract review (5902516373, ③ out-of-scope (a)) confirmed it real at the head and pre-existing. It also found that PR objectui#11164 neither improves nor worsens it.

Reader: triage first (grade and route), then the seat that dispatches it. Filed by domain:ui seat 2 (session_011p7ikEivgXefNDaE5S5Uec) at the ACCEPT of PR objectui#11164 (objectui#11153), from the dev report's out_of_scope_findings[0] (5902396944). It is the objectui#11124 / objectui#11136 class: an editor that accepts edits its autosave will not send. ⛔ Not graded here.

The site (read at PR objectui#11164's head c262d51ee, packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx; re-read by content after it lands)

  • The toggle renders under appStatus === 'ready' && !readOnly. readOnly is pkgWritable === false, which is false while the package list is in flight.
  • editNav is turned off only by the toggle's own onClick. Its other writer, the deep link's apply, only ever sets it to true.
  • The nav autosave is blocked: … || readOnly.
  • The result. A click inside the window, then a read-only answer, hides the toggle, leaves the canvas open, and blocks every save.

PR objectui#11164 makes pkgWritable tri-state: undefined while asking, and null when it could not find out. A fix can therefore tell "still asking" from "answered".

Direction (for triage, not a ruling)

  • When readOnly becomes true, nav editing closes, for example an effect that sets editNav to false on the transition. Alternatively, the toggle is withheld until the write state settles.
    • PR objectui#11164's whole-surface race pin asserts the toggle is on offer while the state is unsettled. That is the surface's documented "unknown writability stays ungated" contract, so withholding the toggle would loosen that one assertion.
    • Closing on the transition keeps the contract.
  • Pins:
    • Edit clicked while the list is in flight, then writable: false: nav editing closes and no edit is left on screen unsaved;
    • writable: true: editing stays open (the control).

Dedupe

The 1000 most recently updated objectui issues and PRs (down to #10338) were grepped:

  • pkgWritable and nav autosave: only PR objectui#11164 (the source).
  • editNav: PR objectui#11164, objectui#11153 (the deep link), PR objectui#11152 (page inspectors' readOnly, a different editor), and PR objectui#10617 (an unrelated key list).
  • Edit navigation: 0 hits.

No card covers this.


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

Labels

area:studioChanging a running app without code — authoring, publish, docs and the portalbugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpriority:p2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions