Commit Graph
23 Commits
Author SHA1 Message Date
Lucas WintherandClaude Opus 5.5 53d9e7c9c9 feat(server): plugins list says which sources sign in with a device code
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 22:13:24 +01:00
Lucas WintherandClaude Opus 5.5 c2e8c83f86 feat(core,server): log feed, titles on changes, work titles on copies
GET log (engagements and listens, keyset over at/kind/id), listChanges
title and intoTitle, listCopies workTitle, all via batched lookups.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 22:11:53 +01:00
Lucas WintherandClaude Opus 5.5 5fa59310f3 fix(web): review round 1: optimistic edits, friendly errors, preferences, Gelasio
- Tags and custom fields update the cached entry optimistically and build
  from the latest cache; one entry's PATCHes run in order (mutation scope).
- The review textarea follows server changes (Restore) unless edited.
- friendlyError() maps validation reasons and 413 to plain copy everywhere.
- Rating scale from me/preferences; /login and /register use auth/status;
  Attachments lists from the API.
- Gelasio vendored (official OFL variable TTFs); minors from the review.
- Docs: DESIGN (AA on orange, faint labels), DECISIONS, TODO, ARCHITECTURE.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 22:03:51 +01:00
Lucas WintherandClaude Opus 5.5 0b34ede62e docs: token actor, connection deleted_at and CSRF decisions; follow-ups
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 21:30:59 +01:00
Lucas WintherandClaude Opus 5.5 348b04e928 docs: server architecture, API decisions, follow-ups
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 21:17:18 +01:00
Lucas Winther 839d9697b0 merge: feat/phase1 into task/9 2026-10-30 20:53:22 +01:00
Lucas WintherandClaude Sonnet 5.5 6f628c4693 fix(core): job failure semantics, stale-lock reaper, run-scoped context, reload
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 20:52:51 +01:00
Lucas WintherandClaude Opus 5.5 a003c3eb7d fix(core): sync review round 1: lists, supersede, dedupe conflicts, retries
- dedupe files conflicts for disagreeing fields instead of dropping them
- merged-away records never file removals
- matched work committed before apply so retries reuse it (no draft leaks)
- stale pending events superseded by newer values
- multi-source engagement removal only detaches the source
- list records applied with history-derived ownership
- gone targets resolve as ignored; counts only for committed records

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 20:43:08 +01:00
Lucas WintherandClaude Sonnet 5.5 166b8ecb5e feat(core): jobs, scheduler, plugin registry, connections
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 20:39:17 +01:00
Lucas Winther 207c92bb4d merge: task 8 sync engine 2026-10-30 20:35:37 +01:00
Lucas Winther b2e6e1948b Merge branch 'feat/phase1' into task/8
# Conflicts:
#	docs/ARCHITECTURE.md
#	docs/DECISIONS.md
#	docs/TODO.md
2026-10-30 20:35:25 +01:00
Lucas WintherandClaude Opus 5.5 1975e971f9 feat(core): sync engine and changes inbox
runSync snapshots and diffs source records, applies new records and
never-edited fields, files pending changed/conflict/removed/merged
events, de-duplicates plays across sources and ingests listens.
listChanges/resolveChange drive the Changes inbox.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 20:26:03 +01:00
Lucas WintherandClaude Sonnet 5.5 66b155876f fix(core): atomic restore with aliases, snapshot export, hardened backups
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 20:24:10 +01:00
Lucas WintherandClaude Sonnet 5.5 a047020d54 feat(core): export bundle, restore, backups
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-30 20:17:25 +01:00
Lucas WintherandClaude Opus 5.5 c6865b2522 fix(core): drill-down lists descendants under untracked intermediates
listEntries({ parentId: X }) now applies the top-level rule relative to X: this user's
live entries on descendants of X (up to three levels) with no live-entry work strictly
between them and X, so it agrees with childSummary. Restoring an engagement's re-parenting
onto a soft-deleted entry throws ValidationError("entryId", "target entry is deleted").

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 20:05:12 +01:00
Lucas WintherandClaude Opus 5.5 00fc0180b0 docs: record user-layer decisions, core module map and known gaps
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 20:00:14 +01:00
Lucas WintherandClaude Opus 5.5 a13d9cd476 merge: task 5 works and matching
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 19:35:57 +01:00
Lucas WintherandClaude Opus 5.5 50c115b4c7 fix(core): follow merged tombstones in the position lookup
A merged child still holds its (parent_id, position) slot under the unique
index, so skipping tombstones made every retry collide. Follow the tombstone
to the surviving work instead.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 19:32:27 +01:00
Lucas WintherandClaude Opus 5.5 437ca143e5 fix(core): race-safe matching, visibility-checked ID matches, child-preserving merges
- migration 0002: unique index on works (parent_id, position)
- matchWork retries the whole transaction on a unique violation (3 attempts)
- addMissingExternalIds uses ON CONFLICT DO NOTHING
- ID matches only return shared works or the user's own; private works cannot carry external ids
- adminMergeWorks requires shared works and repoints non-colliding children
- draft is computed for the aliased work id

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 19:29:48 +01:00
Lucas WintherandClaude Opus 5.5 8f58ba4cdc feat(core): attachments and credential encryption
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 15:54:33 +01:00
Lucas WintherandClaude Opus 5.5 8248a2ac27 feat(db): Bun.SQL Kysely dialect for sqlite and postgres
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 15:30:49 +01:00
Lucas WintherandClaude Opus 5.5 fb4ff36602 docs: phase 1 implementation plan
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 15:24:48 +01:00
Lucas WintherandClaude Opus 5.5 560c27c04d chore: bootstrap agent-ready docs, rules and Bun workspace
Adds the approved v1 design spec, UI mockups, AGENTS.md (with CLAUDE.md
and GEMINI.md pointers), architecture/decisions/todo/permissions docs,
agent permission files, and an empty Bun workspaces skeleton.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 15:06:58 +01:00