18 Commits

Author SHA1 Message Date
Schwitzz b01073eac0 fix: resolve Gitea issues #1–#5 (mobile layout, suggestion refresh, import/export icons, context rail default/icon, manual save)
CI / build (push) Waiting to run
Closes #1
Closes #2
Closes #3
Closes #4
Closes #5
2026-11-02 14:00:48 -06:00
Schwitzz 020563ed85 feat(import): add universal manuscript import pipeline (.docx, .odt, .epub, .md, .txt, .html, .rtf, .json)
CI / build (push) Waiting to run
2026-10-30 16:51:33 -05:00
Schwitzz aee9c428fc feat(sync): sync Web and Desktop projects with Host Server SQLite and Main Project Directory 2026-10-30 16:35:11 -05:00
Schwitzz 668470da2b fix(auth): unify Desktop and Web SQLite DB path and fix browser autofill crash on Input/AuthGate 2026-10-30 16:18:17 -05:00
Schwitzz 65d06e1681 fix: pin Writing toolbar and Entities header, fix Entities form alignment and red hint text, and make Settings category bar horizontal 2026-10-30 15:49:24 -05:00
Schwitzz 1d209fedd2 feat: add tabbed Settings, 10 themes with custom accent/text color pickers, main project directory selector, and export filename/directory controls 2026-10-30 14:06:46 -05:00
Schwitzz 6bc681df5f feat: advance and highlight next AI suggestion on accept/deny/copy-to-note, remove copied suggestion from inline list, and add native Linux .deb packaging 2026-10-30 13:01:40 -05:00
Schwitzz 951aa81055 feat: peg AI inline suggestions to granular text spans, add autosave revision history with restore, fix focus mode, and make PS logo background transparent 2026-10-30 12:49:43 -05:00
Schwitzz f40f23dcb9 fix: sync focused suggestion index when clicking Line N pill 2026-10-30 12:22:10 -05:00
Schwitzz 2940e3c9aa fix: preserve AI line highlight against ProseMirror DOMObserver and prevent crash on accepting suggestions 2026-10-30 12:20:13 -05:00
Schwitzz 271d1e2c79 feat: project dropdown in sidebar, resizable AI sidebar with snap, ctx & t/s telemetry, live line-number re-anchoring, and thinking indicator 2026-10-30 11:53:32 -05:00
Schwitzz b1c22229c5 feat: use enlarged single PS logo and add line-numbered AI suggestions with highlight/accept/deny/copy-to-note 2026-10-30 11:41:00 -05:00
Schwitzz 4add429469 feat: resolve all 22 items in Features and Bugs.txt and complete UI polish 2026-10-30 10:57:13 -05:00
Schwitzz 9ddac133de feat(web): wire AI feature view against AIStore
- Add apps/web/src/features/ai/AI.tsx: session sidebar, messages/suggestions/notes tabs, full CRUD against @pubscript/ai AIStore
- Route the /ai page to the new AI view; remove the static stub
- Add @pubscript/ai workspace dependency to apps/web
- Typecheck (7 packages) and tests (71 AI + 13 web) pass
2026-10-29 21:03:03 -05:00
Schwitzz 978858362d feat(export): Chunk #6 Export Pipeline — 7 exporters, ExportDialog & tests
Add the @pubscript/exporters package exporting a flattened ProseMirror
project to Markdown, HTML, EPUB, DOCX, ODT and PDF, plus a deterministic
generatedAt timestamp threaded through every format (ZIP entry dates,
PDF /ID, DOCX dc:created/modified, EPUB id, HTML/XML footers) so golden
files are byte-stable.

Wire an ExportDialog into the web app (Topbar trigger, App route) with
format selection, theme pick, and download helpers.

Add round-trip and golden-file determinism tests (22) covering
non-empty output, byte-identical re-exports, Markdown round-trip through
the editor, and EPUB/ODT ZIP + mimetype + XML validation.
2026-10-26 23:30:47 -05:00
Schwitzz 45f5c505c9 feat(plot): Chunk #5 story whiteboard, timeline & plot beats
Story whiteboard built on React Flow v11: free-form canvas of typed
nodes (character, world, chapter, note, image, group) with draggable
leads-to/contrasts/causes edges, cross-link selectors (chapter/entity),
linked-node badges, and an "Add beats to board" import from the plot.

Plot beats feature set:
- Status/locking (draft/revised/locked) with a progress bar
- Beat templates (three-act, save-the-cat, seven-point, custom)
- Timeline route with search/chapter/character filters
- Entity cross-links (entityIds) on beats and board nodes
- getBoard added to the StorageAdapter contract (local + server) and
  REST endpoints; loadBoard now restores persisted board state

Storage & server:
- PlotBeat type (status, entityIds) across core types, Dexie schema,
  and server mapping/routes/migration (002_plot_beats.sql)
- SQLite-safe column names (beat_order, entity_ids)
- Server seed data for plot beats

UI: accent Button variant, Badge variants, plot/timeline/whiteboard
stylesheets. Tests: templates module, plot-beat store round-trip,
board getBoard. typecheck, lint, test, and build all green.
2026-10-26 19:00:07 -05:00
Schwitzz 301e842c5c feat(entity): Chunk #4 remaining items — consistency UI, context rail, palette search, expanded seed & DATA_MODEL
- Consistency tab in EntitiesView surfacing findInconsistencies() results
- ContextRail + MentionPopover wired into WritingView for entity context/hover
- CommandPalette indexes entities and chapters for cross-entity search
- link field type for entity references in character fields
- findDeadCharacterMentions consistency check + tests
- Expand seed with a location, note, and a natural Elias Vell mention so the
  dead-character-after-death case is actually exercised
- Author docs/DATA_MODEL.md documenting core schemas, types, storage contract
- Rename CharacterMention id attr -> entityId to match core backlinks/consistency
2026-10-26 12:02:03 -05:00
Schwitzz 4efa71515e feat(entity): Chunk #4 data layer + entity UI (characters & world-building)
Data layer:
- Fuzzy scorer (packages/core/src/fuzzy.ts) with index recovery + unit tests
- Backlink computation (packages/core/src/backlinks.ts) incl. entity-level backlinks
- Consistency checker (packages/core/src/consistency.ts) incl. reciprocity/scope + unit tests
- StorageAdapter contract extended with listEntities/searchEntities/saveEntity/deleteEntity;
  implemented in Local (Dexie) and Server adapters; contract tests cover entity CRUD + ?q= search
- WorldItem.fields now supports list values (keyPeople, rivals); expanded RelationshipKind
- @mention autocomplete extension + picker in the editor package

Entity UI (apps/web/src/features/entities/):
- Generic field renderer (EntityFields) driven by ENTITY_FIELDS/FieldDef
- Tabbed directory with fuzzy search + entity cards (EntitiesView)
- Create/edit/delete drawer (EntityEditor) reusing shared fields
- Relationship editor + force-directed SVG relationship map
- Entity engine stylesheet; wired into nav

Store: project-store entity methods (load/create/update/delete) over the StorageAdapter contract.

CI-green: typecheck, lint, 65 tests, and web build all pass.
2026-10-25 22:42:55 -05:00