This website requires JavaScript.
7ce5bb8450
fix(lifecycle): OAuth pw 500, invite lockout, reminder re-arm, partial-unique
bvandeusen
2026-06-02 19:23:35 -04:00
2fd9a2300a
fix(caldav): point-event round-trip, recurrence push, delete propagation
bvandeusen
2026-06-02 19:20:14 -04:00
c016bd664e
fix(status-enum): add paused to ProjectStatus, validate, fix progress
bvandeusen
2026-06-02 19:16:45 -04:00
4a220db513
test(mcp): import resolve_bearer at module level
bvandeusen
2026-06-02 19:12:14 -04:00
aef5009fc2
fix(contract-drift): MCP read-only scope, shared-note writes, event TZ
bvandeusen
2026-06-02 19:02:19 -04:00
c363a5a6df
fix(retention): add cleanup sweeps + CalDAV orphan reconciliation
bvandeusen
2026-06-02 18:55:23 -04:00
5fe0fd126d
fix(soft-delete): filter trashed rows across read/write paths
bvandeusen
2026-06-02 18:51:40 -04:00
8b49ea896a
fix(schedulers): wire recurring-task spawn + deliver event reminders
bvandeusen
2026-06-02 18:47:54 -04:00
e70fe545cc
fix(trash): owner-scope all trash ops — close cross-tenant IDOR/disclosure
bvandeusen
2026-06-02 18:44:32 -04:00
0e980ee4b0
Merge pull request 'Project rule + topic suppressions' (#54 ) from dev into main
v26.06.01.2
bvandeusen
2026-06-01 08:01:59 -04:00
7861607fb8
feat(rules): project rule + topic suppressions
bvandeusen
2026-06-01 02:26:20 -04:00
b5870d4694
Merge pull request 'Rules consolidation: Scribe-first check, project-scoped rules, enter_project handshake' (#53 ) from dev into main
bvandeusen
2026-06-01 01:16:55 -04:00
c5469214e3
feat(rules): enter_project handshake (S4)
bvandeusen
2026-06-01 01:14:37 -04:00
43a860c3ac
feat(rules): project-scoped rules (S3)
bvandeusen
2026-06-01 01:10:18 -04:00
658348f208
feat(rules): always_on rulebook flag + Scribe-first prompt
bvandeusen
2026-06-01 00:56:08 -04:00
c810d63bee
Merge pull request 'MCP plan-prompt tune + Flutter docs removal' (#52 ) from dev into main
v26.06.01.1
bvandeusen
2026-06-01 00:13:31 -04:00
fd20b67b22
docs: remove Flutter companion app from project surface
bvandeusen
2026-05-31 23:37:35 -04:00
7031e36670
chore(mcp): tighten plan-instruction to override .md plan habit
bvandeusen
2026-05-31 23:31:46 -04:00
a3a056d6fd
v26.05.30.1 — MCP-first pivot + Rulebook + Plans + Soft-delete
v26.05.30.1
bvandeusen
2026-05-29 22:50:34 -04:00
2f577fee58
fix(mcp): stateless HTTP transport so client reconnects after redeploy
bvandeusen
2026-05-29 13:16:38 -04:00
e5565b73dc
feat(trash): Settings retention field (trash_retention_days, 0=keep forever)
bvandeusen
2026-05-29 12:12:04 -04:00
b579aa1c88
feat(trash): TrashView page, nav links, and g+x shortcut
bvandeusen
2026-05-29 12:10:27 -04:00
e5796b6f5c
feat(trash): frontend trash API client + Pinia store
bvandeusen
2026-05-29 12:07:44 -04:00
d8f577e753
feat(trash): daily retention purge scheduler (03:30 UTC) wired into app lifecycle
bvandeusen
2026-05-29 11:47:02 -04:00
a40334312f
test(trash): update delete-tool tests to soft-delete contract (patch trash_svc.delete)
bvandeusen
2026-05-29 09:24:58 -04:00
bfeed67cfe
feat(trash): /api/trash blueprint + flip REST DELETE handlers to soft-delete
bvandeusen
2026-05-28 21:13:31 -04:00
580e4a2c0a
feat(trash): list_trash/restore/purge_trash MCP tools + register + instructions
bvandeusen
2026-05-28 21:10:47 -04:00
c3af24ef51
feat(trash): MCP delete tools soft-delete via trash; add delete_task/project/milestone
bvandeusen
2026-05-28 21:10:13 -04:00
eb41e772cd
feat(trash): exclude trashed rows from events/projects/milestones/rulebooks/embeddings reads + filtering tests
bvandeusen
2026-05-28 20:33:40 -04:00
e7f214fc80
feat(trash): exclude trashed rows from notes + knowledge read paths
bvandeusen
2026-05-28 20:30:23 -04:00
f80c327ecf
feat(trash): restore/list_trash/purge/purge_expired + alive() helper
bvandeusen
2026-05-28 20:02:21 -04:00
ce47ebc7de
feat(trash): services/trash.py — delete() + cascade-stamp by batch
bvandeusen
2026-05-28 20:01:35 -04:00
7f0d99d383
feat(trash): SoftDeleteMixin applied to the 7 soft-deletable models
bvandeusen
2026-05-28 19:54:01 -04:00
84b75f7a73
feat(trash): migration 0057 — deleted_at + deleted_batch_id on 7 tables
bvandeusen
2026-05-28 19:53:19 -04:00
30fbf7b117
docs(mcp): add conceptual primer (what each entity is for) to MCP instructions
bvandeusen
2026-05-28 18:25:38 -04:00
d04b6f4bba
style(rulebook): narrow the Topics column in /rules
bvandeusen
2026-05-28 11:42:08 -04:00
311322fdc8
fix(plan): export startPlanning from tasks store (type-check)
bvandeusen
2026-05-28 11:20:44 -04:00
dc93675470
feat(plan): KnowledgeView Plans facet + plan badge (knowledge endpoints + UI)
bvandeusen
2026-05-28 11:12:59 -04:00
2f5ef9124a
feat(plan): Start planning button on project view
bvandeusen
2026-05-28 10:44:40 -04:00
b30cf06096
fix(plan): move Applicable Rules panel to TaskEditorView (the routed task surface)
bvandeusen
2026-05-28 10:43:41 -04:00
75d3d40038
feat(plan): plan-task viewer shows Applicable Rules panel
bvandeusen
2026-05-28 10:42:03 -04:00
1d5f49fe3b
feat(plan): frontend startPlanning API + store action + task_kind type
bvandeusen
2026-05-28 10:41:24 -04:00
b250141e15
feat(plan): REST /api/tasks/planning endpoint
bvandeusen
2026-05-28 10:17:38 -04:00
4609abacd8
feat(plan): start_planning MCP tool + get_task rules augmentation + instructions
bvandeusen
2026-05-28 10:17:20 -04:00
e269ac9d5c
feat(plan): services/planning — start_planning aggregator
bvandeusen
2026-05-28 10:16:36 -04:00
737467f996
feat(plan): REST task routes — kind on create + list
bvandeusen
2026-05-28 08:22:54 -04:00
fc4a1627b5
feat(plan): MCP task tools — kind on create_task + list_tasks
bvandeusen
2026-05-28 08:22:31 -04:00
50d2a0e9c0
feat(plan): services/notes — task_kind create param + list filter
bvandeusen
2026-05-28 08:21:59 -04:00
8754b1c94d
feat(plan): task_kind on Note model + to_dict
bvandeusen
2026-05-28 08:15:29 -04:00
ac462d1203
feat(plan): migration 0056 — task_kind column on notes
bvandeusen
2026-05-28 08:15:13 -04:00
5f3da7c004
feat(rulebook): port script — parse FabledRulebook .md → Scribe DB
bvandeusen
2026-05-27 22:39:50 -04:00
9658e9a35c
feat(rulebook): Project Rules tab — applicable rules + subscription chips
bvandeusen
2026-05-27 22:20:19 -04:00
f2afb2a8bf
feat(rulebook): /rules route, nav entry, g+r shortcut
bvandeusen
2026-05-27 22:01:54 -04:00
447adf816c
feat(rulebook): subscription panel — toggle projects per rulebook
bvandeusen
2026-05-27 22:01:03 -04:00
75d8e7ab49
feat(rulebook): RulesView three-pane shell + child panes + rule editor
bvandeusen
2026-05-27 22:00:32 -04:00
605dd0a13a
feat(rulebook): frontend API client + Pinia store
bvandeusen
2026-05-27 21:59:23 -04:00
eab5c5a026
feat(rulebook): augment get_project with applicable_rules + MCP instructions
bvandeusen
2026-05-27 21:52:18 -04:00
a1a6c5e47e
feat(rulebook): MCP tools — 16 tools for rulebook/topic/rule/subscription
bvandeusen
2026-05-27 21:51:39 -04:00
bbbd6b2f28
feat(rulebook): REST routes — rules, subscriptions, applicable rules
bvandeusen
2026-05-27 21:34:53 -04:00
0219c673c1
feat(rulebook): REST routes — rulebook + topic endpoints
bvandeusen
2026-05-27 21:34:25 -04:00
45fe198d54
feat(rulebook): service layer — subscriptions + get_applicable_rules
bvandeusen
2026-05-27 21:19:14 -04:00
d3833ba5a4
feat(rulebook): service layer — Rule CRUD with multi-filter list_rules
bvandeusen
2026-05-27 21:18:35 -04:00
38e4220015
feat(rulebook): service layer — Topic CRUD
bvandeusen
2026-05-27 21:17:54 -04:00
cfd801d181
feat(rulebook): service layer — Rulebook CRUD + find_rulebook_by_title
bvandeusen
2026-05-27 21:17:21 -04:00
45c2197cdf
feat(rulebook): SQLAlchemy models for rulebooks, topics, rules
bvandeusen
2026-05-27 21:16:49 -04:00
05e379263a
feat(rulebook): migration 0055 — rulebooks, topics, rules, subscriptions
bvandeusen
2026-05-27 21:16:24 -04:00
4806c34a3c
refactor: Phase 10 — Ollama service, image cache, config, frontend orphans
bvandeusen
2026-05-27 19:10:25 -04:00
b3fca3ced4
migration: drop chat/journal/push/curator/weather tables (Phase 9)
bvandeusen
2026-05-27 18:16:18 -04:00
8d73f553ca
test: drop test_tools_calendar_always_available
bvandeusen
2026-05-27 18:10:06 -04:00
42861142db
chore: remove benchmark notes that were accidentally committed
bvandeusen
2026-05-27 18:09:32 -04:00
91bafb641f
refactor: Phase 8 — backend deletion (chat / voice / push / journal / curator)
bvandeusen
2026-05-27 17:47:18 -04:00
8bec68abc0
fix(ui): restore missing </div> closing the Notifications tab
bvandeusen
2026-05-27 15:38:06 -04:00
ba6f2c7614
refactor(ui): purge SettingsView dead JS left over from Phase 7
bvandeusen
2026-05-27 15:26:51 -04:00
18eb1e7ab2
refactor(ui): Phase 7 — strip chat/voice/journal/workspace/home surfaces
bvandeusen
2026-05-27 15:14:00 -04:00
05b0bf97d7
fix(mcp): list_events tz-aware UTC range + end-of-day inclusive
bvandeusen
2026-05-27 14:57:38 -04:00
02fe500d61
fix(mcp): disable DNS-rebinding protection on FastMCP
bvandeusen
2026-05-27 14:16:47 -04:00
06a532b0e6
test(mcp): include Host header in raw-ASGI test scope
bvandeusen
2026-05-27 13:11:39 -04:00
65d3711a11
fix(mcp): start FastMCP session manager via Quart serving lifecycle
bvandeusen
2026-05-27 12:59:29 -04:00
1fd303abe3
fix(mcp): don't strip /mcp prefix; FastMCP's handler is mounted there
bvandeusen
2026-05-27 12:55:47 -04:00
0cc09f917d
fix(ui): claude mcp add takes URL as positional arg, not --url
bvandeusen
2026-05-27 12:45:28 -04:00
6aa84002b3
refactor(mcp): drop fable_ prefix from tool names; rebrand to Scribe
bvandeusen
2026-05-27 11:48:55 -04:00
97c22941a8
feat(ui): configurable MCP server name + scope; start Scribe rebrand
bvandeusen
2026-05-27 11:22:28 -04:00
27b5c45f27
feat(ui): MCP Access tab — HTTP transport, in-app endpoint
bvandeusen
2026-05-26 21:23:06 -04:00
52d6a8ed53
feat(embeddings): swap Ollama for fastembed (in-process ONNX)
bvandeusen
2026-05-26 21:02:30 -04:00
12d0ebeb84
migration: clear note_embeddings for fastembed swap (768d → 384d)
bvandeusen
2026-05-26 21:01:23 -04:00
5a9859e12f
deps: add fastembed (ollama client stays for now, removed in phase 7)
bvandeusen
2026-05-26 21:01:00 -04:00
d4f3516552
feat(mcp): typed-entity tools (person/place/list)
bvandeusen
2026-05-26 20:53:36 -04:00
6961144c3a
feat(mcp): fable_list_tags + fable_get_recent
bvandeusen
2026-05-26 20:51:59 -04:00
9a76c4718b
feat(mcp): event CRUD tools
bvandeusen
2026-05-26 20:50:54 -04:00
4d6bae77b4
feat(mcp): project + milestone CRUD tools
bvandeusen
2026-05-26 20:24:07 -04:00
d086c9b606
feat(mcp): task CRUD tools + add_task_log
bvandeusen
2026-05-26 20:22:30 -04:00
b026421985
feat(mcp): note CRUD tools (list/get/create/update/delete)
bvandeusen
2026-05-26 20:20:27 -04:00
fd0431dfb6
feat(mcp): tools/ package + fable_search
bvandeusen
2026-05-26 20:18:36 -04:00
3579db2f06
feat(mcp): per-request user_id contextvar for tool handlers
bvandeusen
2026-05-26 20:17:04 -04:00
3cc5c7dcab
test(mcp): drop the bypass test (covered implicitly)
bvandeusen
2026-05-26 19:58:45 -04:00
38265906f1
test(mcp): drive ASGI app directly, skip Quart test_client
bvandeusen
2026-05-26 19:54:46 -04:00
94f7a6de37
feat(mcp): mount /mcp endpoint with bearer-token auth
bvandeusen
2026-05-26 19:15:42 -04:00
caa504913f
feat(mcp): bearer-token auth resolver
bvandeusen
2026-05-26 19:13:31 -04:00
198f11ee09
feat(mcp): scaffold in-app FastMCP package
bvandeusen
2026-05-26 19:12:57 -04:00
b97a8ce457
deps: add mcp[cli] for in-app MCP server
bvandeusen
2026-05-26 19:12:35 -04:00