Skip to content

Web parity batch: schema select/markdown, link previews, doc templates, Markdown export engine#5

Merged
Adron merged 10 commits into
devfrom
feature/web-parity-batch-2026-07
Jul 19, 2026
Merged

Web parity batch: schema select/markdown, link previews, doc templates, Markdown export engine#5
Adron merged 10 commits into
devfrom
feature/web-parity-batch-2026-07

Conversation

@Adron

@Adron Adron commented Jul 18, 2026

Copy link
Copy Markdown
Member

Web parity batch — macOS app vs. interlinedlist.com

Closes the client-closable feature-parity gaps from the 2026-07-18 review (feature-gaps.md), with docs reconciled against the codebase and backend asks folded into the canonical tracker.

Shipped

  • Schema select + markdown field types (§1.1) — DSL Field:select(a|b|c) + markdown long-text, editor + row-cell rendering. 25 tests.
  • Rich link previews (§1.5) — server already sent linkMetadata; now mapped to Message.linkPreviews and rendered as a tappable card. 16 tests.
  • Document templates (§1.4) — Blank / Meeting Notes / Daily Log / PRD + "New from Template…". 12 tests.
  • Markdown export (§1.3) — MarkdownExporter engine (documents / threads / lists-as-tables, 15 tests) + "Export My Lists as Markdown" UI in the Export sheet (paginated fetch → .md file, 4 tests).
  • List grid view (§1.2) — ListRowsView.tableMode is now a real SwiftUI Table with typed columns (TableColumnForEach), retiring the stale macOS-14.4 List fallback.

Docs

  • Adds feature-gaps.md (parity review) and feature-blockages.md (parity index into blocker-prompts.md).
  • Folds 7 new backend asks into blocker-prompts.md under the P# scheme (P1-G following feed, P1-H GitHub issue writes, P2-F/P2-G, P3-F/P3-G/P3-H).
  • Corrects 5 stale feature-status.md limitations + two Help Book pages, all verified against shipped code (scheduled cancel/reschedule, watcher/org invite-by-handle, cross-post readiness, following scope).

Tests (consolidated, green)

App 379/0 · InterlinedDomain 475/0 · InterlinedKit 224/0 · InterlinedPersistence 120/0

Backend hand-off (highest impact)

P1-G (following-feed endpoint — client UI is wired, short-circuits to empty) and P1-H (GitHub issue create/comment + labels/assignees). Both are entirely backend-gated.

Follow-ups (not in this PR)

  • ERD list view — needs a scope decision on what "ERD" means in the web app.
  • Per-document / per-thread "Export as Markdown" buttons (engine already supports them).
  • Grid on the public read-only ListDetailView (cards-only today).

Notes

  • SwiftUI-only throughout; no project.pbxproj edits (Xcode filesystem-synchronized groups).
  • blocker-prompts.md was restored after an incidental working-tree deletion during the parallel-agent run; intact.

🤖 Generated with Claude Code

Adron and others added 10 commits July 18, 2026 13:27
Extends the schema DSL with select(a|b|c) single-choice columns (options on
SchemaField.enumValues) and markdown long-text columns. Editor gains an inline
options editor; row cells render a Picker (select) and a TextEditor+Textual
preview (markdown). 25 new BDD tests. Reaches parity with the site's advertised
type set (feature-gaps.md §1.1). SwiftUI-only; no wire/codec change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The server already returned linkMetadata (title/description/image); the domain
model dropped it. Adds Message.linkPreviews + a mapper that drops unparseable
URLs, and a tappable LinkPreviewCardView (AsyncImage thumbnail + title + host)
in the timeline. Render gate is forward-compatible pending fetchStatus docs.
16 new tests (feature-gaps.md §1.5). Not persisted in SwiftData by design.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Client-side template catalog (Blank / Meeting Notes / Daily Log / PRD) with a
New-from-Template command (Shift-Opt-Cmd-N) and picker sheet that seeds the
markdown body through the existing create path. Blank == prior behavior.
12 new tests (feature-gaps.md §1.4). No templates endpoint exists; static
catalog can move server-side later.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Pure renderer for documents, message threads, and lists-as-tables (schema-ordered
columns, pipe/newline-escaped cells). Uses value-type Date.ISO8601Format for
Sendable safety. 15 BDD tests. Client-side because /api/exports/* is CSV-only
(see feature-blockages.md NB-3). UI wiring lands next (feature-gaps.md §1.3).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ed code

Adds feature-gaps.md (parity review) and feature-blockages.md (backend asks,
reconciled against blocker-prompts.md). Corrects 5 stale feature-status.md
limitations (scheduled cancel/reschedule, watcher/org invite-by-handle,
cross-post readiness, following scope) and de-stales two Help Book pages +
regenerates the help index. Verified against current code.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds P1-G (following feed), P1-H (GitHub issue writes), P2-F (Markdown export),
P2-G (schema DSL select/markdown), P3-F (link-preview fetchStatus), P3-G (list
clone), P3-H (PATCH/PUT) with paste-ready prompts. feature-blockages.md is now a
concise index into the canonical blocker-prompts.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds an 'Export My Lists as Markdown' path: ExportViewModel paginates owned
lists + rows and renders them via MarkdownExporter into a MarkdownFileDocument
(.md), surfaced through a second fileExporter and a Markdown button on the
Lists row. 4 new tests (happy/empty/failure/pagination). Completes feature-gaps
§1.3 (engine + UI).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replaces the List-of-cells fallback in tableMode with a real SwiftUI Table
using TableColumnForEach for one typed column per schema field (now valid at
the macOS 15 deployment target — the 14.4 fallback comment was stale).
Pagination becomes a Load-More footer since Table has no per-row appearance
hook; cards mode keeps scroll-to-load. Completes feature-gaps §1.2 (grid; ERD
still scoped separately).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Adron
Adron merged commit 54fe819 into dev Jul 19, 2026
4 of 8 checks passed
@Adron
Adron deleted the feature/web-parity-batch-2026-07 branch July 19, 2026 03:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant