Story: ORE Studio Emacs dashboard

Table of Contents

This page documents a story in Sprint 18. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

Goal

Replace the broken per-mode ores.lisp approach — where scripts from one checkout bleed into another — with an env-aware emacs-dashboard console. The dashboard binds to the active checkout via .env, groups all dev commands (DB, services, compass, build), provides bookmarks to key directories, links to recipes and the user manual, offers an ORE Studio shell, and shows the ORE splash image.

Status

Field Value
State DONE
Parent sprint Sprint 18
Now Nothing.
Waiting on
Next
Last touched 2026-05-29

Acceptance

  • ores-dashboard.el loads without error via (require 'ores-dashboard).
  • Dashboard binds dynamically to the current checkout's .env — two Emacs instances on local1 and local2 run independent commands.
  • Command groups cover: DB (init, migrate, reset), Services (start/stop server, NATS), Compass (list, where, add), Build (configure, build, test, deploy site, deploy skills).
  • Bookmarks section resolves log dir and bin dir from .env.
  • Links section opens key recipes and the user manual inside Emacs.
  • "Open ORE Studio shell" launches a comint shell bound to the active env.
  • ORE splash image displayed in dashboard header.
  • Superseded per-mode modules (ores-db.el etc.) are removed or gutted.
  • A dashboard chapter exists in the user guide.
  • Reusable helpers (ores-env.el, ores-shell.el, ores-shell-mode.el) are retained and wired in.

Tasks

Task State Start End Description
Audit existing ores.lisp modules and design dashboard architecture DONE 2026-05-24 2026-05-25 Survey all .el files under projects/ores.lisp, identify what is reusable vs superseded, and produce the design for ores-dashboard.el.
Implement ores-dashboard.el DONE 2026-05-24 2026-05-26 Create the ores-dashboard.el core: env binding, .env reading, command groups (db, services, compass, build), bookmarks, ORE shell, splash image.
Remove superseded ores.lisp modules BACKLOG 2026-05-24   Delete or gut ores-db.el and other per-mode modules that are superseded by the dashboard; keep reusable helpers (ores-env.el, ores-shell.el).
Write the ORE Studio dashboard user manual section BACKLOG 2026-05-24   Add a dashboard chapter to the user guide covering: launching the dashboard, each command group, bookmarks, and the ORE Studio shell.
Make compass output paths clickable in dashboard output pane DISCOVERED 2026-05-25   Post-process compass where/list/status output so that org-mode file paths appear as clickable links that open the target file in the dashboard output pane.
Fix DB dashboard operations to use .env database name DONE 2026-05-25 2026-05-25 Kill connections, Teardown DB and Recreate DB all prompt for a database via completing-read instead of reading ORES_DATABASE_NAME from .env.
Add SQLite connections DB entry to dashboard DB card DONE 2026-05-25 2026-05-25 Add an item to the dashboard DB card that opens ~/.local/share/ores.qt/connections.db in sql-sqlite, loading the project sqliterc for ergonomic display.

Decisions

  • Used a custom special-mode-derived major mode rather than emacs-dashboard: the card/box layout, keyboard shortcuts, and full-frame output display are all home-grown and tightly fitted to ORE Studio's needs.
  • Dashboard is dev-only; no production-environment integration.
  • Each Emacs instance reads .env at load time; default-directory is set to the checkout root on the buffer so project-current always resolves correctly from action lambdas.
  • All .el sources moved to projects/ores.lisp/src/; modeling/ directory added with component_overview.org.

Out of scope

  • Integration with production or staging environments.
  • A new Emacs minor-mode API surface (the dashboard replaces the old per-mode approach entirely; no shim layer).

Emacs 29.1 (Org mode 9.6.6)