dorfteich/apps/api/src
Claude Fable 5 6c98a71d34
Some checks failed
CD / Build and push images (push) Successful in 3m57s
CD / Deploy to Test (push) Successful in 11s
CI / Lint, typecheck, test (push) Successful in 4m32s
CI / Build container images (push) Has been skipped
CD / Smoke tests against Test (push) Successful in 1m14s
CD / Promote to Int (push) Successful in 11s
CI / Auth e2e pack (push) Failing after 2m51s
CI / Import/export fidelity gate (push) Has been skipped
Favorites: personal page stars, golden icons, sidebar filter (#132)
Semantics changed from the issue during planning (documented there,
comment 1192): favorites are PERSONAL per user, not pond-wide — the
sys-fav label approach is dropped entirely. Storage is a page_favorites
table (userId+pageId, FK cascade); PUT/DELETE /pages/:id/favorite
toggles idempotently and needs read access only (#60 404 semantics —
a star is a note-to-self, not a page modification), GET
/ponds/:id/favorites lists the account's stars sliced to still-readable
pages. Trashed pages keep their rows, so restore keeps the star; purge
cascades it away.

Web: one shared ['favorites', pondId] query feeds the TopBar star
(between labels and history, golden when set), the golden tree icons in
the sidebar, and a latching "Favorites" filter button next to the view
switch that narrows either view (combinable with the label filter).
No public-API/MCP exposure — with the label approach gone, that parity
is no longer free; favorites stay UI-only for now.

New favorites e2e pack (star toggle, golden icon, filter, per-user
isolation) wired into CI; DB suite covers the round-trip, read gating,
and the trash/restore/purge lifecycle.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fb2VzvcoBPHkjh8bZ6PzQn
2026-07-16 12:03:55 +02:00
..
admin Nextcloud backup target: admin-configured, manual + scheduled uploads, in-app restore (#103) 2026-07-12 10:39:18 +02:00
audit Add Site-Admin system panel with persistent audit trail (#86) 2026-07-11 20:03:05 +02:00
auth Batch notifications into localized e-mail digests with unsubscribe (#95) 2026-07-11 23:37:26 +02:00
backup Nextcloud backup target: admin-configured, manual + scheduled uploads, in-app restore (#103) 2026-07-12 10:39:18 +02:00
comments Notify watchers about page changes and comments, with an in-app center (#94) 2026-07-11 23:20:25 +02:00
common Add page trash: soft delete, restore, and purge job (#31) 2026-07-08 12:48:17 +02:00
compaction Fix compaction test Bytes typing for strict typecheck (#40) 2026-07-09 08:23:55 +02:00
config Add backup sidecar: nightly dump, volume archive, prune, status, restore (#83) 2026-07-11 17:29:15 +02:00
favorites Favorites: personal page stars, golden icons, sidebar filter (#132) 2026-07-16 12:03:55 +02:00
files Add pond ZIP + per-page docx/odt export (#65) 2026-07-10 10:31:19 +02:00
grants Add Site-Admin system panel with persistent audit trail (#86) 2026-07-11 20:03:05 +02:00
health Nextcloud backup target: admin-configured, manual + scheduled uploads, in-app restore (#103) 2026-07-12 10:39:18 +02:00
home Editable landing page for the Site Admin 2026-07-12 23:50:16 +02:00
i18n Add instance legal pages with public rendering and footer links (#82) 2026-07-11 16:40:04 +02:00
import-export Vault import: decode ZIP names as UTF-8 and NFC-normalize them 2026-07-15 13:24:58 +02:00
inspector Add effective-permissions inspector (#57) 2026-07-10 00:00:27 +02:00
labels Wire real permissions into collab tokens and revocation (#53) 2026-07-09 18:48:42 +02:00
legal Add instance legal pages with public rendering and footer links (#82) 2026-07-11 16:40:04 +02:00
links Pond-wide wikilink graph endpoint (#111) 2026-07-14 10:21:25 +02:00
mail Nextcloud backup target: admin-configured, manual + scheduled uploads, in-app restore (#103) 2026-07-12 10:39:18 +02:00
mcp Page-tree parity for the public REST API and MCP (#110) 2026-07-14 10:49:52 +02:00
members Add Site-Admin system panel with persistent audit trail (#86) 2026-07-11 20:03:05 +02:00
notifications Pin the comments/notifications semantics as a regression pack (#96) 2026-07-12 00:00:34 +02:00
pages Obsidian vault import: endpoint, job orchestration, rollback (#117) 2026-07-14 17:13:11 +02:00
permissions Public REST API v1: personal access tokens, instance switch + per-pond opt-in (#104) 2026-07-12 11:17:03 +02:00
plugins Give the zip-bomb rejection test headroom against loaded runners 2026-07-15 13:45:47 +02:00
ponds Sidebar folder view, label view, and the view toggle (#108) 2026-07-14 10:17:36 +02:00
prisma Add Prisma with PostgreSQL, automatic migrations, and /readyz 2026-07-04 19:16:44 +02:00
public Add instance legal pages with public rendering and footer links (#82) 2026-07-11 16:40:04 +02:00
public-api Page-tree parity for the public REST API and MCP (#110) 2026-07-14 10:49:52 +02:00
quotas Quota foundation: overrides, resolution, race-safe consumption (#22) 2026-07-05 20:55:59 +02:00
rate-limit Add DB-backed rate limiting with guard and decorator 2026-07-05 00:43:54 +02:00
scheduler Nextcloud backup target: admin-configured, manual + scheduled uploads, in-app restore (#103) 2026-07-12 10:39:18 +02:00
search Polish round 2: content footer, dismissable menus, manual versions, substring search, icon actions in settings (M10 follow-up) 2026-07-12 07:13:34 +02:00
settings Editable landing page for the Site Admin 2026-07-12 23:50:16 +02:00
setup Add Site-Admin system panel with persistent audit trail (#86) 2026-07-11 20:03:05 +02:00
testing Built-in MCP endpoint (Streamable HTTP) on top of the public API (#105) 2026-07-12 11:36:02 +02:00
trash Delete modes and subtree trash semantics for the page tree (#107) 2026-07-14 10:05:10 +02:00
users Batch notifications into localized e-mail digests with unsubscribe (#95) 2026-07-11 23:37:26 +02:00
versions Editor shortcuts: "e" edits, the platform chord+S snapshots versions 2026-07-15 13:17:09 +02:00
watches Add watches: follow pages and ponds with auto-watch preferences (#93) 2026-07-11 22:59:11 +02:00
app.module.ts Favorites: personal page stars, golden icons, sidebar filter (#132) 2026-07-16 12:03:55 +02:00
main.ts Remove an unused eslint-disable directive in main.ts 2026-07-12 20:45:29 +02:00