Web parity batch: schema select/markdown, link previews, doc templates, Markdown export engine#5
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
select+markdownfield types (§1.1) — DSLField:select(a|b|c)+ markdown long-text, editor + row-cell rendering. 25 tests.linkMetadata; now mapped toMessage.linkPreviewsand rendered as a tappable card. 16 tests.MarkdownExporterengine (documents / threads / lists-as-tables, 15 tests) + "Export My Lists as Markdown" UI in the Export sheet (paginated fetch →.mdfile, 4 tests).ListRowsView.tableModeis now a real SwiftUITablewith typed columns (TableColumnForEach), retiring the stale macOS-14.4Listfallback.Docs
feature-gaps.md(parity review) andfeature-blockages.md(parity index intoblocker-prompts.md).blocker-prompts.mdunder theP#scheme (P1-G following feed, P1-H GitHub issue writes, P2-F/P2-G, P3-F/P3-G/P3-H).feature-status.mdlimitations + 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/0Backend 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)
ListDetailView(cards-only today).Notes
project.pbxprojedits (Xcode filesystem-synchronized groups).blocker-prompts.mdwas restored after an incidental working-tree deletion during the parallel-agent run; intact.🤖 Generated with Claude Code