Move notebook runtime and output status plus notebook run actions from the sticky banner into the status bar #128

Closed
opened 2026-05-27 13:33:28 +00:00 by steve · 0 comments
Owner

Move notebook-level execution status and actions out of the notebook body/header banner and into notebook-aware status-bar items.

Problem

Notebook leaves currently render a sticky banner ahead of the document body for runtime transport, output-state status, Safe Mode messaging, and notebook-level actions. That keeps essential state visible, but it adds notebook-specific chrome inside the content surface and duplicates patterns already moving toward declarative status-bar items elsewhere in the app.

Goal

Expose notebook runtime state, output-state badges, and notebook-level run actions through the shared status bar when a notebook leaf is active.

Scope

  • Register notebook-owned status-bar items scoped to active notebook leaves.
  • Move notebook-level run, rerun-stale, and clear-output actions out of the sticky notebook banner.
  • Preserve Safe Mode and runtime transport messaging through the status bar or related notices.
  • Add focused API/workspace/notebook coverage for notebook-specific status items.

Non-goals

  • Do not redesign per-cell notebook status chrome in this issue.
  • Do not require a generic component-hosting status-bar surface unless a minimal descriptor extension proves insufficient.
  • Do not widen into unrelated view-badge or menu-contribution work beyond the minimum notebook needs.

Acceptance Criteria

  • Notebook leaves no longer depend on the sticky notebook status banner for notebook-level runtime and action chrome.
  • Active notebook files show notebook-specific status-bar items with stable ids, visibility rules, and commands.
  • Notebook actions are represented as compact status-bar controls with icons and state text or badges as appropriate.
  • Focused tests cover notebook item registration, visibility, and command dispatch.

Implementation Notes

  • Reuse the existing notebook runtime/output status description helpers where possible.
  • Prefer context-key or view-type gating rather than ad hoc DOM visibility checks.
  • If minimal shared status-bar rendering changes are needed, keep them small and document them in the relevant cross-package spec.

Suggested Files or Specs To Inspect

  • packages/notebook/src/lib/notebook-view.ts
  • packages/notebook/src/lib/notebook-view-status.svelte
  • packages/notebook/src/lib/runtime/notebook-runtime-status.ts
  • packages/notebook/src/notebook-plugin.ts
  • packages/api/src/lib/status-bar.svelte.ts
  • packages/workspace/src/lib/components/status-bar/status-bar.svelte
  • spec/src/20-packages/plugins/notebook/index.md
  • spec/src/30-cross-package-contracts/editor-and-views.md

Validation Commands

pnpm --filter @lapis-notes/api check
pnpm --filter @lapis-notes/notebook check
pnpm --filter @lapis-notes/workspace check
make spec-lint
pnpm test:smoke

Follow-up Tasks

  • Consider toast or notice hooks for major notebook state transitions only after the status-bar ownership is stable.

Implementation Summary

Moved notebook runtime and output status plus note-level run, rerun-stale, and clear-output actions into notebook-owned status-bar items, removed the sticky notebook banner, added focused workspace coverage for the new status-bar surface, and updated the notebook specs.

Move notebook-level execution status and actions out of the notebook body/header banner and into notebook-aware status-bar items. ## Problem Notebook leaves currently render a sticky banner ahead of the document body for runtime transport, output-state status, Safe Mode messaging, and notebook-level actions. That keeps essential state visible, but it adds notebook-specific chrome inside the content surface and duplicates patterns already moving toward declarative status-bar items elsewhere in the app. ## Goal Expose notebook runtime state, output-state badges, and notebook-level run actions through the shared status bar when a notebook leaf is active. ## Scope - Register notebook-owned status-bar items scoped to active notebook leaves. - Move notebook-level run, rerun-stale, and clear-output actions out of the sticky notebook banner. - Preserve Safe Mode and runtime transport messaging through the status bar or related notices. - Add focused API/workspace/notebook coverage for notebook-specific status items. ## Non-goals - Do not redesign per-cell notebook status chrome in this issue. - Do not require a generic component-hosting status-bar surface unless a minimal descriptor extension proves insufficient. - Do not widen into unrelated view-badge or menu-contribution work beyond the minimum notebook needs. ## Acceptance Criteria - Notebook leaves no longer depend on the sticky notebook status banner for notebook-level runtime and action chrome. - Active notebook files show notebook-specific status-bar items with stable ids, visibility rules, and commands. - Notebook actions are represented as compact status-bar controls with icons and state text or badges as appropriate. - Focused tests cover notebook item registration, visibility, and command dispatch. ## Implementation Notes - Reuse the existing notebook runtime/output status description helpers where possible. - Prefer context-key or view-type gating rather than ad hoc DOM visibility checks. - If minimal shared status-bar rendering changes are needed, keep them small and document them in the relevant cross-package spec. ## Suggested Files or Specs To Inspect - `packages/notebook/src/lib/notebook-view.ts` - `packages/notebook/src/lib/notebook-view-status.svelte` - `packages/notebook/src/lib/runtime/notebook-runtime-status.ts` - `packages/notebook/src/notebook-plugin.ts` - `packages/api/src/lib/status-bar.svelte.ts` - `packages/workspace/src/lib/components/status-bar/status-bar.svelte` - `spec/src/20-packages/plugins/notebook/index.md` - `spec/src/30-cross-package-contracts/editor-and-views.md` ## Validation Commands ```bash pnpm --filter @lapis-notes/api check pnpm --filter @lapis-notes/notebook check pnpm --filter @lapis-notes/workspace check make spec-lint pnpm test:smoke ``` ## Follow-up Tasks - Consider toast or notice hooks for major notebook state transitions only after the status-bar ownership is stable. ## Implementation Summary Moved notebook runtime and output status plus note-level run, rerun-stale, and clear-output actions into notebook-owned status-bar items, removed the sticky notebook banner, added focused workspace coverage for the new status-bar surface, and updated the notebook specs. <!-- backlog:task_id=TASK-NOTEBOOK-003 source_spec=spec/src/20-packages/plugins/notebook/index.md -->
steve changed title from New issue to Move notebook runtime and output status plus notebook run actions from the sticky banner into the status bar 2026-05-27 13:45:49 +00:00
steve 2026-05-27 15:11:32 +00:00
  • closed this issue
  • added
    done
    and removed
    open
    labels
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lapis-notes/lapis#128
No description provided.