Narrow Scribe to a work system-of-record — remove calendar + person/place/list surfaces #77

Merged
bvandeusen merged 5 commits from dev into main 2026-07-19 18:24:40 -04:00
Owner

Completes milestone #194 (decision note #1759): narrows Scribe from a general "second brain" to a work system-of-record for Claude-Code-driven software work, by wholesale-removing (rule #22) the personal-assistant surfaces that grew from the original second-brain motive and were unused.

Removed

  • Calendar / events + CalDAV — model, services, route, MCP tool, scheduler jobs, settings; frontend CalendarView/EventSlideOver, /calendar route + nav + g→l shortcut; CalDAV settings card.
  • Typed person/place/list entities — MCP tool, the notes.metadata column, and the entity forms/tabs/cards in the note editor + Knowledge browser.
  • Weather card (orphan component).

Kept — shared machinery the recon protected

Recurring tasks (recurrence.py + the renamed recurrence_scheduler), task-due reminders, the note_type column (also marks process notes), RecurrenceEditor (task UI), KnowledgeView/knowledge.py (the general note/task/plan/process browser), and the graph view.

Schema + docs

  • Migration 0069 drops the events table + notes.metadata + orphan caldav settings rows (faithful downgrade; verified running on real pg17).
  • Plugin + MCP instructions trued up (plugin 0.1.11 → 0.1.12).
  • features.md / api-reference.md / README.md rewritten to the current product, resolving pre-pivot doc-rot (issue #1778).

Verification

Backend and frontend slices each landed CI-green on dev (analyzers → unit → integration on pgvector/pg17). Last code run #2589 green; the docs/plugin commits are path-filtered (no code).

Commits: b49efdc, dd60244, 12f71fa, ab9b5b6, d2f08d6.

🤖 Generated with Claude Code

Completes **milestone #194** (decision note #1759): narrows Scribe from a general "second brain" to a **work system-of-record for Claude-Code-driven software work**, by wholesale-removing (rule #22) the personal-assistant surfaces that grew from the original second-brain motive and were unused. ## Removed - **Calendar / events + CalDAV** — model, services, route, MCP tool, scheduler jobs, settings; frontend CalendarView/EventSlideOver, `/calendar` route + nav + `g→l` shortcut; CalDAV settings card. - **Typed person/place/list entities** — MCP tool, the `notes.metadata` column, and the entity forms/tabs/cards in the note editor + Knowledge browser. - **Weather card** (orphan component). ## Kept — shared machinery the recon protected Recurring **tasks** (`recurrence.py` + the renamed `recurrence_scheduler`), task-due reminders, the `note_type` column (also marks `process` notes), `RecurrenceEditor` (task UI), `KnowledgeView`/`knowledge.py` (the general note/task/plan/process browser), and the graph view. ## Schema + docs - Migration **0069** drops the `events` table + `notes.metadata` + orphan caldav settings rows (faithful downgrade; verified running on real pg17). - Plugin + MCP instructions trued up (plugin **0.1.11 → 0.1.12**). - `features.md` / `api-reference.md` / `README.md` rewritten to the current product, resolving pre-pivot doc-rot (issue #1778). ## Verification Backend and frontend slices each landed CI-green on `dev` (analyzers → unit → integration on `pgvector/pg17`). Last code run **#2589** green; the docs/plugin commits are path-filtered (no code). Commits: `b49efdc`, `dd60244`, `12f71fa`, `ab9b5b6`, `d2f08d6`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
bvandeusen added 5 commits 2026-07-19 18:24:27 -04:00
refactor(scribe): retire calendar/events + person/place/list entities (backend)
CI & Build / Python lint (push) Successful in 3s
CI & Build / TypeScript typecheck (push) Successful in 11s
CI & Build / integration (push) Successful in 30s
CI & Build / Python tests (push) Failing after 31s
CI & Build / Build & push image (push) Has been skipped
b49efdcb11
Narrow Scribe to a Claude-Code work system-of-record (milestone #194,
decision note #1759). Wholesale removal per rule #22 — backend + schema half.

Calendar/events + CalDAV: delete models/event, services/{events,caldav,
caldav_sync}, routes/events, mcp/tools/events; strip event branches from
backup (bump v3->v4), dashboard (upcoming_events), trash, recent, and the
mcp server read-only allowlist + instructions.

Typed entities (person/place/list): delete mcp/tools/entities; drop the
notes.metadata (entity_meta) column from model/service/routes and the
knowledge browse service. note_type STAYS — it also marks 'process' notes.

Scheduler: event_scheduler -> recurrence_scheduler, keeping only the
recurring-task spawn job (drops event reminders + CalDAV sync).

Schema: migration 0069 drops the events table + notes.metadata column +
orphan caldav settings rows (faithful downgrade recreates them).

KEEP: recurrence.py (task recurrence), notifications task reminders, graph
view, and every work surface. Frontend + plugin/docs true-up follow next.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BPtbSzA4JLMAKgFZ8VTg7Q
test(trash): update model-count assertions after Event removal
CI & Build / Python lint (push) Successful in 3s
CI & Build / integration (push) Successful in 13s
CI & Build / TypeScript typecheck (push) Successful in 32s
CI & Build / Python tests (push) Successful in 53s
CI & Build / Build & push image (push) Successful in 1m12s
dd60244429
restore() / purge_expired() now iterate 6 soft-deletable models (Note,
Project, Milestone, Rulebook, RulebookTopic, Rule) — Event was removed
with the calendar surface. Adjust the two count-coupled assertions
(execute.await_count 7→6; the rowcount list drops a zero so the sum
stays 4). Caught by CI run #2580.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BPtbSzA4JLMAKgFZ8VTg7Q
refactor(scribe): remove calendar + entity surfaces from web UI (frontend)
CI & Build / Python lint (push) Successful in 4s
CI & Build / integration (push) Successful in 28s
CI & Build / TypeScript typecheck (push) Successful in 33s
CI & Build / Python tests (push) Successful in 46s
CI & Build / Build & push image (push) Successful in 44s
12f71fabdf
Frontend half of the narrowing (milestone #194); matches backend b49efdc.

- delete CalendarView, EventSlideOver, WeatherCard (orphan)
- drop /calendar route + nav link + the g→l keyboard shortcut
- strip the calendar-events API client + event/metadata bits from note
  types and the notes store
- KnowledgeView: remove People/Places/Lists tabs, entity cards, create
  buttons and the upcoming-events widget; keep notes/tasks/plans/processes
  + the overdue-task badge
- NoteEditorView: remove person/place/list forms + list-builder + entity
  metadata; keep note + process editors (type select = Note/Process)
- DashboardView: drop the "Upcoming · 7 days" events rail card
- SettingsView: remove the CalDAV integration card + save/test (its
  endpoints were deleted backend-side)
- prune the now-dead entity/event CSS

RecurrenceEditor + task recurrence rules are kept (task machinery, not
calendar). Verified by a full dangler sweep.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BPtbSzA4JLMAKgFZ8VTg7Q
Milestone #194 plugin/docs slice.

- plugin.json: "second brain" framing -> "system-of-record"; bump
  0.1.11 -> 0.1.12 (any plugin/ change must bump the manifest, issue #1040)
- plugin/README.md + using-scribe SKILL + scribe_static_context: drop
  events/typed-entities from the surface lists; "second brain" -> "system
  of record" in the SessionStart context Claude reads each session
- docs/api-keys-and-mcp.md: drop the Typed-entities + Events MCP tool rows,
  add the Systems row
- README.md: rewrite the stale front-matter (chat/RAG/calendar/weather/push
  described a pre-pivot product) to the current Claude-driven work store

Deeper pre-pivot doc-rot in docs/features.md + docs/api-reference.md
(chat/journal/weather/web-research) is tracked separately as an issue.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BPtbSzA4JLMAKgFZ8VTg7Q
Resolves issue #1778 — the docs still described the pre-pivot product (in-app
LLM chat, journal, weather, web-research, push, model management) plus the
just-removed calendar/entities.

- features.md: full rewrite to the actual surfaces — notes, tasks & issues,
  projects/milestones (kanban), systems, rules & rulebooks, stored processes,
  search + knowledge-injection, graph, MCP + the Claude Code plugin, sharing,
  export/backup (v4), OIDC. Dropped chat/journal/weather/web-research/calendar/
  push/workspace/model-management; fixed the shortcuts + settings tables.
- api-reference.md: rewrite to the real endpoint surface (verified from the
  route decorators) — added Knowledge/Rulebooks/Systems/Plugin/Trash/Dashboard
  and the milestone/system sub-routes; removed Chat/Journal/Push/Quick-Capture/
  Images/assist/models.
- README.md: Quick Start no longer tells users to pull an Ollama model or size
  RAM/GPU "for LLM inference" — points at the API key + plugin instead.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BPtbSzA4JLMAKgFZ8VTg7Q
bvandeusen merged commit 71d65442d3 into main 2026-07-19 18:24:40 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/FabledScribe#77