Skip to content

runtime-shell REQ-SHELL-003 describes a toolbar removed in 18d601a0 — and its two sibling scenarios were @e2e-excluded without noticing #94

Description

@rubenvdlinde

Summary

openspec/specs/runtime-shell/spec.md REQ-SHELL-003 "Toolbar contents" describes a toolbar that no longer exists. The requirement says:

When canEdit is true, the toolbar MUST render exactly two affordances: an Add Widget dropdown button … and a Save Layout button. … The Save Layout button MUST be disabled while a save request is in flight …

That toolbar was removed deliberately in 18d601a0 ("trim shell toolbar"). src/views/WorkspaceApp.vue:46 records the decision in place of the markup:

<!-- Region 3 (edit toolbar) removed: editing actions (Edit/Save
     dashboard, Add custom widget) live in the per-dashboard cog
     menu (DashboardRowActions) so the page chrome stays clean. -->

So there is no Save Layout button to be disabled, and gate-19's remaining runtime-shell::save-button-disabled-while-in-flight finding is unsatisfiable. Found during hydra gate-19 round 2 (#92); left open rather than excluded, because @e2e exclude records "a browser cannot observe this" and the truth here is "the affordance was removed".

The part worth a second look

REQ-SHELL-003's other two scenarios already carry @e2e exclude:

  • Add-widget dropdown lists all widget types@e2e exclude registry-driven dropdown contents — covered by Vitest component test
  • Save sends layout to correct endpoint@e2e exclude PUT request shape/endpoint assertion — covered by Vitest + Newman

Both reasons are phrased as "this is better covered elsewhere". Neither mentions that the control they describe is gone from the shell. Whoever wrote them satisfied the gate without noticing the requirement had been overtaken — which is the failure mode an exclusion reason is supposed to prevent, and the reason this third one is not getting the same treatment.

What would close it

Update REQ-SHELL-003 to describe where editing actually lives now — the per-dashboard cog menu (DashboardRowActions) — including whichever control now owns the in-flight-disabled behaviour, and re-derive the three scenarios from that. If the in-flight guard genuinely has no UI any more, the scenario should be deleted rather than excluded.

At that point the surviving scenarios are browser-observable through the cog menu and can take real tests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions