@peaske7/readit 0.3.0-rc.0 → 0.3.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/.vite/manifest.json +1111 -0
- package/dist/assets/_basePickBy-BMMA4Tou.js +1 -0
- package/dist/assets/_baseUniq-D40qku1I.js +1 -0
- package/dist/assets/arc-Ckg65iy8.js +1 -0
- package/dist/assets/architecture-YZFGNWBL-Dv3EY0zV.js +1 -0
- package/dist/assets/architectureDiagram-Q4EWVU46-DQnkwSaB.js +36 -0
- package/dist/assets/array-Bjz-wYpJ.js +1 -0
- package/dist/assets/blockDiagram-DXYQGD6D-UB6_S1lm.js +132 -0
- package/dist/assets/c4Diagram-AHTNJAMY-sn3k2GND.js +10 -0
- package/dist/assets/channel-D9wPw2fQ.js +1 -0
- package/dist/assets/chunk-2KRD3SAO-DaFfaCGO.js +1 -0
- package/dist/assets/chunk-336JU56O-C8siO5Of.js +2 -0
- package/dist/assets/chunk-426QAEUC-BB478m3j.js +1 -0
- package/dist/assets/chunk-4BX2VUAB-DRuTD7x5.js +1 -0
- package/dist/assets/chunk-4TB4RGXK-_l6jvVAY.js +206 -0
- package/dist/assets/chunk-55IACEB6-BExiaAoD.js +1 -0
- package/dist/assets/chunk-5FUZZQ4R-HOSFTxuG.js +62 -0
- package/dist/assets/chunk-5PVQY5BW-BRVNNRAX.js +2 -0
- package/dist/assets/chunk-67CJDMHE-DMt8LNEX.js +1 -0
- package/dist/assets/chunk-7N4EOEYR-CzLGefVf.js +1 -0
- package/dist/assets/chunk-AA7GKIK3-B6GFAk4U.js +1 -0
- package/dist/assets/chunk-BSJP7CBP-BK29yehL.js +1 -0
- package/dist/assets/chunk-CIAEETIT-D7hBXImP.js +1 -0
- package/dist/assets/chunk-Dlc7tRH4.js +1 -0
- package/dist/assets/chunk-EDXVE4YY-CSvKh9DT.js +1 -0
- package/dist/assets/chunk-ENJZ2VHE-QApb5cYr.js +10 -0
- package/dist/assets/chunk-FMBD7UC4-2FWyCCAV.js +15 -0
- package/dist/assets/chunk-FOC6F5B3-DKFHrt4K.js +1 -0
- package/dist/assets/chunk-ICPOFSXX-agBjBxsW.js +122 -0
- package/dist/assets/chunk-K5T4RW27-D51O7IkG.js +94 -0
- package/dist/assets/chunk-KGLVRYIC-DMHSCH4T.js +1 -0
- package/dist/assets/chunk-LIHQZDEY-C2aANxt9.js +1 -0
- package/dist/assets/chunk-ORNJ4GCN-Db_37NRX.js +1 -0
- package/dist/assets/chunk-OYMX7WX6-HGUtT2Q9.js +231 -0
- package/dist/assets/chunk-QZHKN3VN-8Lcg9gti.js +1 -0
- package/dist/assets/chunk-U2HBQHQK-BFYYQeuC.js +70 -0
- package/dist/assets/chunk-X2U36JSP-p8ehTP6s.js +1 -0
- package/dist/assets/chunk-XPW4576I-Bqbompq4.js +32 -0
- package/dist/assets/chunk-YZCP3GAM-HIMez9pG.js +1 -0
- package/dist/assets/chunk-ZZ45TVLE-DRIE_0bu.js +1 -0
- package/dist/assets/classDiagram-6PBFFD2Q-BawhEeUl.js +1 -0
- package/dist/assets/classDiagram-v2-HSJHXN6E-CLNjgH9n.js +1 -0
- package/dist/assets/clone-BBjvuERA.js +1 -0
- package/dist/assets/cose-bilkent-S5V4N54A-q90QeGKv.js +1 -0
- package/dist/assets/cytoscape.esm-BfXff3fb.js +321 -0
- package/dist/assets/dagre-Dxbob2Lr.js +1 -0
- package/dist/assets/dagre-KV5264BT-BuvpNxMw.js +4 -0
- package/dist/assets/defaultLocale-BwmRmqJp.js +1 -0
- package/dist/assets/diagram-5BDNPKRD-DQLsxwwt.js +10 -0
- package/dist/assets/diagram-G4DWMVQ6-Jv9Eefw4.js +24 -0
- package/dist/assets/diagram-MMDJMWI5-D-0YgNhU.js +43 -0
- package/dist/assets/diagram-TYMM5635-BHwO7zQG.js +24 -0
- package/dist/assets/dist-BNz65Ibc.js +1 -0
- package/dist/assets/erDiagram-SMLLAGMA-BjZGGBJz.js +85 -0
- package/dist/assets/flowDiagram-DWJPFMVM-CFbFUm_m.js +162 -0
- package/dist/assets/ganttDiagram-T4ZO3ILL-CXk4TcBi.js +292 -0
- package/dist/assets/gitGraph-7Q5UKJZL-BGFRt2qs.js +1 -0
- package/dist/assets/gitGraphDiagram-UUTBAWPF-C8yZOxjo.js +106 -0
- package/dist/assets/graphlib-DGcD9J2L.js +1 -0
- package/dist/assets/index-D-m0LiFI.js +14 -0
- package/dist/assets/index-DANHO6J0.css +2 -0
- package/dist/assets/info-OMHHGYJF-DI6-Z9vh.js +1 -0
- package/dist/assets/infoDiagram-42DDH7IO-p-PXDra2.js +2 -0
- package/dist/assets/init-TPm5RB77.js +1 -0
- package/dist/assets/isArrayLikeObject-69BLnVNM.js +1 -0
- package/dist/assets/isEmpty-DUS28g5f.js +1 -0
- package/dist/assets/ishikawaDiagram-UXIWVN3A-BrIoEvtb.js +70 -0
- package/dist/assets/journeyDiagram-VCZTEJTY-aZpvKa9g.js +139 -0
- package/dist/assets/kanban-definition-6JOO6SKY-CoOAY9ji.js +89 -0
- package/dist/assets/katex-5SGEXwpi.js +261 -0
- package/dist/assets/line-4MF1lR4d.js +1 -0
- package/dist/assets/linear-CXMqTN8N.js +1 -0
- package/dist/assets/mermaid-config-C8a4L22x.js +1 -0
- package/dist/assets/mermaid-parser.core-DREsY2u4.js +4 -0
- package/dist/assets/mermaid.core-8ysLpTJi.js +11 -0
- package/dist/assets/mindmap-definition-QFDTVHPH-CsqUJCMn.js +96 -0
- package/dist/assets/ordinal-D7l-8DAO.js +1 -0
- package/dist/assets/packet-4T2RLAQJ-DidW3JFc.js +1 -0
- package/dist/assets/path-BVpCanzE.js +1 -0
- package/dist/assets/pie-ZZUOXDRM-Bff2e5hg.js +1 -0
- package/dist/assets/pieDiagram-DEJITSTG-k0Br4NDS.js +30 -0
- package/dist/assets/quadrantDiagram-34T5L4WZ-Be9oCSza.js +7 -0
- package/dist/assets/radar-PYXPWWZC-CsdZBH3M.js +1 -0
- package/dist/assets/requirementDiagram-MS252O5E-8ECT7dEs.js +84 -0
- package/dist/assets/rough.esm-BoTisKeL.js +1 -0
- package/dist/assets/sankeyDiagram-XADWPNL6-CoKpeJJ0.js +10 -0
- package/dist/assets/sequenceDiagram-FGHM5R23-BTT2fFxG.js +157 -0
- package/dist/assets/src-CrmkjRpa.js +1 -0
- package/dist/assets/stateDiagram-FHFEXIEX-CIF47NYe.js +1 -0
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-Cy1rmPfG.js +1 -0
- package/dist/assets/timeline-definition-GMOUNBTQ-Bes4B58n.js +120 -0
- package/dist/assets/treeView-SZITEDCU-DPKseaET.js +1 -0
- package/dist/assets/treemap-W4RFUUIX-DH-7GZe_.js +1 -0
- package/dist/assets/vennDiagram-DHZGUBPP-3wx2huKk.js +34 -0
- package/dist/assets/wardley-RL74JXVD-AgyXyBN5.js +1 -0
- package/dist/assets/wardleyDiagram-NUSXRM2D-DzViT1Yx.js +20 -0
- package/dist/assets/xychartDiagram-5P7HB3ND-BO_dbU0r.js +7 -0
- package/{index.html → dist/index.html} +2 -1
- package/dist/index.js +2625 -0
- package/package.json +11 -1
- package/.agents/skills/remotion-best-practices/SKILL.md +0 -61
- package/.agents/skills/remotion-best-practices/rules/3d.md +0 -86
- package/.agents/skills/remotion-best-practices/rules/animations.md +0 -27
- package/.agents/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +0 -178
- package/.agents/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +0 -100
- package/.agents/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +0 -108
- package/.agents/skills/remotion-best-practices/rules/assets.md +0 -78
- package/.agents/skills/remotion-best-practices/rules/audio-visualization.md +0 -198
- package/.agents/skills/remotion-best-practices/rules/audio.md +0 -169
- package/.agents/skills/remotion-best-practices/rules/calculate-metadata.md +0 -134
- package/.agents/skills/remotion-best-practices/rules/can-decode.md +0 -75
- package/.agents/skills/remotion-best-practices/rules/charts.md +0 -120
- package/.agents/skills/remotion-best-practices/rules/compositions.md +0 -154
- package/.agents/skills/remotion-best-practices/rules/display-captions.md +0 -184
- package/.agents/skills/remotion-best-practices/rules/extract-frames.md +0 -229
- package/.agents/skills/remotion-best-practices/rules/ffmpeg.md +0 -38
- package/.agents/skills/remotion-best-practices/rules/fonts.md +0 -152
- package/.agents/skills/remotion-best-practices/rules/get-audio-duration.md +0 -58
- package/.agents/skills/remotion-best-practices/rules/get-video-dimensions.md +0 -68
- package/.agents/skills/remotion-best-practices/rules/get-video-duration.md +0 -60
- package/.agents/skills/remotion-best-practices/rules/gifs.md +0 -141
- package/.agents/skills/remotion-best-practices/rules/images.md +0 -134
- package/.agents/skills/remotion-best-practices/rules/import-srt-captions.md +0 -69
- package/.agents/skills/remotion-best-practices/rules/light-leaks.md +0 -73
- package/.agents/skills/remotion-best-practices/rules/lottie.md +0 -70
- package/.agents/skills/remotion-best-practices/rules/maps.md +0 -412
- package/.agents/skills/remotion-best-practices/rules/measuring-dom-nodes.md +0 -34
- package/.agents/skills/remotion-best-practices/rules/measuring-text.md +0 -140
- package/.agents/skills/remotion-best-practices/rules/parameters.md +0 -109
- package/.agents/skills/remotion-best-practices/rules/sequencing.md +0 -118
- package/.agents/skills/remotion-best-practices/rules/sfx.md +0 -26
- package/.agents/skills/remotion-best-practices/rules/subtitles.md +0 -36
- package/.agents/skills/remotion-best-practices/rules/tailwind.md +0 -11
- package/.agents/skills/remotion-best-practices/rules/text-animations.md +0 -20
- package/.agents/skills/remotion-best-practices/rules/timing.md +0 -179
- package/.agents/skills/remotion-best-practices/rules/transcribe-captions.md +0 -70
- package/.agents/skills/remotion-best-practices/rules/transitions.md +0 -197
- package/.agents/skills/remotion-best-practices/rules/transparent-videos.md +0 -106
- package/.agents/skills/remotion-best-practices/rules/trimming.md +0 -51
- package/.agents/skills/remotion-best-practices/rules/videos.md +0 -171
- package/.agents/skills/remotion-best-practices/rules/voiceover.md +0 -99
- package/.agents/skills/simple/SKILL.md +0 -52
- package/.agents/skills/vercel-react-best-practices/AGENTS.md +0 -3254
- package/.agents/skills/vercel-react-best-practices/README.md +0 -123
- package/.agents/skills/vercel-react-best-practices/SKILL.md +0 -141
- package/.agents/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -55
- package/.agents/skills/vercel-react-best-practices/rules/advanced-init-once.md +0 -42
- package/.agents/skills/vercel-react-best-practices/rules/advanced-use-latest.md +0 -39
- package/.agents/skills/vercel-react-best-practices/rules/async-api-routes.md +0 -38
- package/.agents/skills/vercel-react-best-practices/rules/async-defer-await.md +0 -80
- package/.agents/skills/vercel-react-best-practices/rules/async-dependencies.md +0 -51
- package/.agents/skills/vercel-react-best-practices/rules/async-parallel.md +0 -28
- package/.agents/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -99
- package/.agents/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -59
- package/.agents/skills/vercel-react-best-practices/rules/bundle-conditional.md +0 -31
- package/.agents/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -49
- package/.agents/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -35
- package/.agents/skills/vercel-react-best-practices/rules/bundle-preload.md +0 -50
- package/.agents/skills/vercel-react-best-practices/rules/client-event-listeners.md +0 -74
- package/.agents/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -71
- package/.agents/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -48
- package/.agents/skills/vercel-react-best-practices/rules/client-swr-dedup.md +0 -56
- package/.agents/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -107
- package/.agents/skills/vercel-react-best-practices/rules/js-cache-function-results.md +0 -80
- package/.agents/skills/vercel-react-best-practices/rules/js-cache-property-access.md +0 -28
- package/.agents/skills/vercel-react-best-practices/rules/js-cache-storage.md +0 -70
- package/.agents/skills/vercel-react-best-practices/rules/js-combine-iterations.md +0 -32
- package/.agents/skills/vercel-react-best-practices/rules/js-early-exit.md +0 -50
- package/.agents/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +0 -60
- package/.agents/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -45
- package/.agents/skills/vercel-react-best-practices/rules/js-index-maps.md +0 -37
- package/.agents/skills/vercel-react-best-practices/rules/js-length-check-first.md +0 -49
- package/.agents/skills/vercel-react-best-practices/rules/js-min-max-loop.md +0 -82
- package/.agents/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -24
- package/.agents/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -57
- package/.agents/skills/vercel-react-best-practices/rules/rendering-activity.md +0 -26
- package/.agents/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
- package/.agents/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -40
- package/.agents/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -38
- package/.agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -46
- package/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
- package/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +0 -30
- package/.agents/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +0 -85
- package/.agents/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +0 -68
- package/.agents/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -28
- package/.agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +0 -75
- package/.agents/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -39
- package/.agents/skills/vercel-react-best-practices/rules/rerender-dependencies.md +0 -45
- package/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +0 -40
- package/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state.md +0 -29
- package/.agents/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -74
- package/.agents/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -58
- package/.agents/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +0 -38
- package/.agents/skills/vercel-react-best-practices/rules/rerender-memo.md +0 -44
- package/.agents/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +0 -45
- package/.agents/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +0 -82
- package/.agents/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -35
- package/.agents/skills/vercel-react-best-practices/rules/rerender-transitions.md +0 -40
- package/.agents/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +0 -73
- package/.agents/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -73
- package/.agents/skills/vercel-react-best-practices/rules/server-auth-actions.md +0 -96
- package/.agents/skills/vercel-react-best-practices/rules/server-cache-lru.md +0 -41
- package/.agents/skills/vercel-react-best-practices/rules/server-cache-react.md +0 -76
- package/.agents/skills/vercel-react-best-practices/rules/server-dedup-props.md +0 -65
- package/.agents/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +0 -142
- package/.agents/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -83
- package/.agents/skills/vercel-react-best-practices/rules/server-serialization.md +0 -38
- package/.claude/CLAUDE.md +0 -184
- package/.claude/commands/review.md +0 -120
- package/.claude/commands/sync-docs.md +0 -71
- package/.claude/roadmap.md +0 -121
- package/.claude/rules/style-guide.md +0 -830
- package/.claude/settings.json +0 -18
- package/.claude/user-stories.md +0 -333
- package/AGENTS.md +0 -68
- package/Makefile +0 -32
- package/biome.json +0 -79
- package/bun.lock +0 -854
- package/bunfig.toml +0 -2
- package/docs/design.md +0 -563
- package/docs/perf-baseline.md +0 -130
- package/docs/plans/2026-03-13-client-mode-design.md +0 -86
- package/docs/plans/2026-03-13-client-mode-plan.md +0 -605
- package/docs/plans/2026-03-13-keyboard-shortcuts-design.md +0 -129
- package/docs/plans/2026-03-13-keyboard-shortcuts-plan.md +0 -1471
- package/docs/plans/2026-03-13-multi-document-design.md +0 -183
- package/docs/plans/2026-03-13-performance-benchmarks-design.md +0 -121
- package/docs/superpowers/plans/2026-03-26-surgical-pruning.md +0 -1176
- package/docs/superpowers/specs/2026-03-27-go-server-rewrite-design.md +0 -284
- package/e2e/comments.spec.ts +0 -81
- package/e2e/document-load.spec.ts +0 -32
- package/e2e/export.spec.ts +0 -58
- package/e2e/fixtures/sample.md +0 -7
- package/e2e/perf/add-comment.spec.ts +0 -116
- package/e2e/perf/fixtures/generate.ts +0 -327
- package/e2e/perf/initial-load.spec.ts +0 -49
- package/e2e/perf/perf.setup.ts +0 -23
- package/e2e/perf/perf.teardown.ts +0 -9
- package/e2e/perf/screenshot-final.png +0 -0
- package/e2e/perf/scroll.spec.ts +0 -39
- package/e2e/perf/tab-switch.spec.ts +0 -69
- package/e2e/perf/text-selection.spec.ts +0 -119
- package/e2e/perf/utils/metrics.ts +0 -350
- package/e2e/perf/utils/perf-cli.ts +0 -86
- package/e2e/persistence-file.spec.ts +0 -357
- package/e2e/utils/cli.ts +0 -84
- package/e2e/utils/selection.ts +0 -79
- package/go/cmd/readit/main.go +0 -416
- package/go/go.mod +0 -20
- package/go/go.sum +0 -41
- package/go/internal/server/anchor.go +0 -302
- package/go/internal/server/anchor_test.go +0 -111
- package/go/internal/server/comments.go +0 -390
- package/go/internal/server/documents.go +0 -113
- package/go/internal/server/embed.go +0 -17
- package/go/internal/server/headings.go +0 -33
- package/go/internal/server/headings_test.go +0 -75
- package/go/internal/server/htmltext.go +0 -123
- package/go/internal/server/markdown.go +0 -157
- package/go/internal/server/markdown_bench_test.go +0 -42
- package/go/internal/server/markdown_test.go +0 -79
- package/go/internal/server/server.go +0 -453
- package/go/internal/server/server_bench_test.go +0 -122
- package/go/internal/server/settings.go +0 -110
- package/go/internal/server/sse.go +0 -140
- package/go/internal/server/storage.go +0 -275
- package/go/internal/server/storage_test.go +0 -152
- package/go/internal/server/template.go +0 -66
- package/go/internal/server/types.go +0 -101
- package/go/internal/server/watcher.go +0 -74
- package/lefthook.yml +0 -8
- package/nvim-readit/lua/readit/health.lua +0 -64
- package/nvim-readit/lua/readit/init.lua +0 -463
- package/nvim-readit/plugin/readit.lua +0 -19
- package/playwright.config.ts +0 -34
- package/skills-lock.json +0 -20
- package/src/App.svelte +0 -890
- package/src/cli.ts +0 -881
- package/src/components/ActionsMenu.svelte +0 -95
- package/src/components/CommentBadge.svelte +0 -67
- package/src/components/CommentErrorBanner.svelte +0 -33
- package/src/components/CommentInput.svelte +0 -75
- package/src/components/CommentListItem.svelte +0 -95
- package/src/components/CommentManager.svelte +0 -129
- package/src/components/CommentNav.svelte +0 -109
- package/src/components/DocumentViewer.svelte +0 -233
- package/src/components/FloatingComment.svelte +0 -107
- package/src/components/Header.svelte +0 -76
- package/src/components/InlineEditor.svelte +0 -72
- package/src/components/MarginNote.svelte +0 -167
- package/src/components/MarginNotesContainer.svelte +0 -33
- package/src/components/MermaidEnhancer.svelte +0 -218
- package/src/components/MermaidModal.svelte +0 -67
- package/src/components/RawModal.svelte +0 -126
- package/src/components/ReanchorConfirm.svelte +0 -30
- package/src/components/SettingsModal.svelte +0 -220
- package/src/components/ShortcutCapture.svelte +0 -82
- package/src/components/ShortcutList.svelte +0 -145
- package/src/components/TabBar.svelte +0 -52
- package/src/components/TableOfContents.svelte +0 -125
- package/src/components/ui/ActionLink.svelte +0 -40
- package/src/components/ui/Button.svelte +0 -53
- package/src/components/ui/Dialog.svelte +0 -97
- package/src/components/ui/DropdownMenu.svelte +0 -85
- package/src/components/ui/DropdownMenuItem.svelte +0 -38
- package/src/components/ui/DropdownMenuSeparator.svelte +0 -11
- package/src/components/ui/Text.svelte +0 -42
- package/src/env.d.ts +0 -6
- package/src/index.css +0 -859
- package/src/lib/__fixtures__/bench-data.ts +0 -114
- package/src/lib/anchor.bench.ts +0 -91
- package/src/lib/anchor.test.ts +0 -527
- package/src/lib/anchor.ts +0 -381
- package/src/lib/comment-storage.bench.ts +0 -49
- package/src/lib/comment-storage.test.ts +0 -694
- package/src/lib/comment-storage.ts +0 -226
- package/src/lib/export.bench.ts +0 -21
- package/src/lib/export.ts +0 -36
- package/src/lib/fetch-or-throw.test.ts +0 -59
- package/src/lib/fetch-or-throw.ts +0 -12
- package/src/lib/headings.test.ts +0 -103
- package/src/lib/headings.ts +0 -44
- package/src/lib/highlight/core.test.ts +0 -93
- package/src/lib/highlight/dom.ts +0 -187
- package/src/lib/highlight/highlight-registry.ts +0 -221
- package/src/lib/highlight/highlight.bench.ts +0 -92
- package/src/lib/highlight/highlighter.ts +0 -247
- package/src/lib/highlight/resolver.ts +0 -38
- package/src/lib/highlight/types.ts +0 -17
- package/src/lib/html-text.test.ts +0 -162
- package/src/lib/html-text.ts +0 -161
- package/src/lib/i18n/en.ts +0 -124
- package/src/lib/i18n/index.ts +0 -3
- package/src/lib/i18n/ja.ts +0 -126
- package/src/lib/i18n/translations.ts +0 -27
- package/src/lib/i18n/types.ts +0 -130
- package/src/lib/key-lock.test.ts +0 -104
- package/src/lib/key-lock.ts +0 -23
- package/src/lib/margin-layout.bench.ts +0 -61
- package/src/lib/margin-layout.ts +0 -71
- package/src/lib/markdown-renderer.test.ts +0 -154
- package/src/lib/markdown-renderer.ts +0 -178
- package/src/lib/mermaid-config.ts +0 -38
- package/src/lib/mermaid-renderer.ts +0 -162
- package/src/lib/mermaid-worker.ts +0 -60
- package/src/lib/positions.ts +0 -157
- package/src/lib/shortcut-registry.ts +0 -244
- package/src/lib/utils.ts +0 -15
- package/src/main.ts +0 -16
- package/src/schema.ts +0 -92
- package/src/server.ts +0 -1216
- package/src/stores/app.svelte.ts +0 -231
- package/src/stores/locale.svelte.ts +0 -46
- package/src/stores/settings.svelte.ts +0 -90
- package/src/stores/shortcuts.svelte.ts +0 -104
- package/src/stores/ui.svelte.ts +0 -12
- package/src/template.ts +0 -104
- package/src/test-setup.ts +0 -48
- package/svelte.config.js +0 -5
- package/test.md +0 -74
- package/tsconfig.cli.json +0 -12
- package/tsconfig.json +0 -20
- package/vite.config.ts +0 -47
- package/vitest.config.ts +0 -15
- package/vscode-readit/.mcp.json +0 -7
- package/vscode-readit/.vscodeignore +0 -7
- package/vscode-readit/bun.lock +0 -78
- package/vscode-readit/icon.svg +0 -10
- package/vscode-readit/package.json +0 -110
- package/vscode-readit/src/extension.ts +0 -117
- package/vscode-readit/src/server-manager.ts +0 -272
- package/vscode-readit/src/webview-provider.ts +0 -204
- package/vscode-readit/tsconfig.json +0 -20
package/.claude/settings.json
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"project": {
|
|
3
|
-
"name": "readit",
|
|
4
|
-
"description": "CLI tool for reviewing Markdown documents with inline comments",
|
|
5
|
-
"version": "0.1.0"
|
|
6
|
-
},
|
|
7
|
-
"context": {
|
|
8
|
-
"entryPoints": ["src/cli.ts", "src/App.tsx"],
|
|
9
|
-
"documentation": ["CLAUDE.md", ".claude/user-stories.md"],
|
|
10
|
-
"testFile": "test.md"
|
|
11
|
-
},
|
|
12
|
-
"preferences": {
|
|
13
|
-
"language": "typescript",
|
|
14
|
-
"style": "functional",
|
|
15
|
-
"formatting": "prettier",
|
|
16
|
-
"imports": "esm"
|
|
17
|
-
}
|
|
18
|
-
}
|
package/.claude/user-stories.md
DELETED
|
@@ -1,333 +0,0 @@
|
|
|
1
|
-
# User Stories
|
|
2
|
-
|
|
3
|
-
## Core Workflow
|
|
4
|
-
|
|
5
|
-
### US-001: View Document in Browser
|
|
6
|
-
|
|
7
|
-
**As a** writer/reviewer
|
|
8
|
-
**I want to** view my Markdown or HTML document rendered in a browser
|
|
9
|
-
**So that** I can review the content in a more readable format
|
|
10
|
-
|
|
11
|
-
**Acceptance Criteria:**
|
|
12
|
-
|
|
13
|
-
- Run `readit document.md` or `readit document.html` and browser opens with rendered content
|
|
14
|
-
- markdown-it for Markdown (server-side rendering with shiki syntax highlighting)
|
|
15
|
-
- Clean light theme with good typography for reading
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
### US-002: Add Comment to Selected Text
|
|
20
|
-
|
|
21
|
-
**As a** reviewer
|
|
22
|
-
**I want to** select text and add a comment
|
|
23
|
-
**So that** I can note feedback or changes needed
|
|
24
|
-
|
|
25
|
-
**Acceptance Criteria:**
|
|
26
|
-
|
|
27
|
-
- Select any text in the document
|
|
28
|
-
- Input area appears in margin to enter comment
|
|
29
|
-
- ⌘+Enter saves the comment
|
|
30
|
-
- Comment appears as margin note next to highlighted text
|
|
31
|
-
- Selection is preserved as reference
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
### US-003: Manage Comments
|
|
36
|
-
|
|
37
|
-
**As a** reviewer
|
|
38
|
-
**I want to** edit, delete, and copy individual comments
|
|
39
|
-
**So that** I can refine my feedback
|
|
40
|
-
|
|
41
|
-
**Acceptance Criteria:**
|
|
42
|
-
|
|
43
|
-
- Each margin note shows: selected text (truncated) + comment text
|
|
44
|
-
- Click to edit → inline textarea editing
|
|
45
|
-
- Delete button → removes comment and highlight
|
|
46
|
-
- Copy button → copies "Selected: ... Comment: ..." format
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
### US-004: Export All Comments
|
|
51
|
-
|
|
52
|
-
**As a** reviewer
|
|
53
|
-
**I want to** export all comments at once
|
|
54
|
-
**So that** I can use them with AI or share with others
|
|
55
|
-
|
|
56
|
-
**Acceptance Criteria:**
|
|
57
|
-
|
|
58
|
-
- "Copy All" button copies formatted prompt to clipboard
|
|
59
|
-
- "Export JSON" button downloads JSON file with all comments
|
|
60
|
-
- Format is AI-friendly (clear structure)
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
### US-005: Persistent Comments ✅
|
|
65
|
-
|
|
66
|
-
**As a** reviewer
|
|
67
|
-
**I want to** close and reopen the tool without losing comments
|
|
68
|
-
**So that** I can continue review sessions
|
|
69
|
-
|
|
70
|
-
**Acceptance Criteria:**
|
|
71
|
-
|
|
72
|
-
- Comments saved to `.comments.md` files in `~/.readit/comments/`
|
|
73
|
-
- Comments restored when reopening same file
|
|
74
|
-
- Different files have separate comment storage
|
|
75
|
-
- Human-readable markdown format for LLM/git compatibility
|
|
76
|
-
|
|
77
|
-
**Status:** Implemented (file-based storage)
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## Planned Features
|
|
82
|
-
|
|
83
|
-
### US-006: File-Based Comment Storage ✅
|
|
84
|
-
|
|
85
|
-
**As a** reviewer
|
|
86
|
-
**I want to** have my comments stored in a plain markdown file
|
|
87
|
-
**So that** I can version them with git, share them, and use them with LLMs and other tools
|
|
88
|
-
|
|
89
|
-
**Acceptance Criteria:**
|
|
90
|
-
|
|
91
|
-
- Comments stored in `~/.readit/comments/{hashed-path}/{filename}.comments.md`
|
|
92
|
-
- Format is human-readable markdown (selected text as quote, comment below)
|
|
93
|
-
- ~~Existing localStorage comments migrated on first run~~ (localStorage removed)
|
|
94
|
-
- Comments auto-save to file on add/edit/delete
|
|
95
|
-
- ~~`--storage local|file` flag~~ (file-only, no flag needed)
|
|
96
|
-
- File can be edited manually and changes reflected on refresh
|
|
97
|
-
|
|
98
|
-
**Status:** Implemented
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
### US-007: Comment Resolution Workflow
|
|
103
|
-
|
|
104
|
-
**As a** reviewer
|
|
105
|
-
**I want to** mark comments as resolved/unresolved and navigate between them
|
|
106
|
-
**So that** I can systematically address feedback with LLM assistance
|
|
107
|
-
|
|
108
|
-
**Acceptance Criteria:**
|
|
109
|
-
|
|
110
|
-
- Each comment has `unresolved` or `resolved` status
|
|
111
|
-
- New comments default to `unresolved`
|
|
112
|
-
- Visual indicators: yellow = unresolved, green/muted = resolved
|
|
113
|
-
- Navigate to next/previous unresolved comment (keyboard shortcuts)
|
|
114
|
-
- Unresolved count displayed in header
|
|
115
|
-
- Copy single comment with context for LLM discussion (⌘⇧C on margin note)
|
|
116
|
-
- Toggle status with one click, optionally auto-navigate to next
|
|
117
|
-
|
|
118
|
-
**Status:** Not implemented (planned for v0.3.0)
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
### US-008: Highlight Commented Text ✅
|
|
123
|
-
|
|
124
|
-
**As a** reviewer
|
|
125
|
-
**I want to** see which parts of the document have comments
|
|
126
|
-
**So that** I can quickly identify reviewed sections
|
|
127
|
-
|
|
128
|
-
**Acceptance Criteria:**
|
|
129
|
-
|
|
130
|
-
- Text with comments has yellow background highlight (`<mark>` tags)
|
|
131
|
-
- Margin notes are positioned next to their corresponding highlights
|
|
132
|
-
- Clicking highlight scrolls to margin note
|
|
133
|
-
- Clicking quoted text in margin note scrolls to highlight
|
|
134
|
-
|
|
135
|
-
**Status:** Implemented
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
### US-009: Comment Categories
|
|
140
|
-
|
|
141
|
-
**As a** reviewer
|
|
142
|
-
**I want to** categorize comments (TODO, Question, Suggestion, etc.)
|
|
143
|
-
**So that** I can organize and filter feedback
|
|
144
|
-
|
|
145
|
-
**Acceptance Criteria:**
|
|
146
|
-
|
|
147
|
-
- Dropdown to select category when adding comment
|
|
148
|
-
- Visual indicator (color/icon) per category
|
|
149
|
-
- Filter sidebar by category
|
|
150
|
-
- Export includes category information
|
|
151
|
-
|
|
152
|
-
**Status:** Not implemented
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
### US-010: Review Multiple Files ✅
|
|
157
|
-
|
|
158
|
-
**As a** reviewer
|
|
159
|
-
**I want to** review multiple Markdown files in one session
|
|
160
|
-
**So that** I can review an entire document set
|
|
161
|
-
|
|
162
|
-
**Acceptance Criteria:**
|
|
163
|
-
|
|
164
|
-
- ~~`readit docs/*.md` opens multi-file view~~ `readit file1.md file2.md` or `readit <dir>` opens multi-file view
|
|
165
|
-
- File tabs or sidebar navigation (TabBar.svelte)
|
|
166
|
-
- Comments stored per file
|
|
167
|
-
- Bulk export across all files
|
|
168
|
-
|
|
169
|
-
**Status:** Implemented (multi-file args, directory scanning, `open` command, tab bar UI). Glob patterns not yet supported.
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
### US-011: Collaborative Review
|
|
174
|
-
|
|
175
|
-
**As a** team lead
|
|
176
|
-
**I want to** share review sessions with teammates
|
|
177
|
-
**So that** we can collaborate on document feedback
|
|
178
|
-
|
|
179
|
-
**Acceptance Criteria:**
|
|
180
|
-
|
|
181
|
-
- Generate shareable link
|
|
182
|
-
- Real-time sync of comments
|
|
183
|
-
- Author attribution on comments
|
|
184
|
-
- Conflict resolution for simultaneous edits
|
|
185
|
-
|
|
186
|
-
**Status:** Not implemented (future consideration)
|
|
187
|
-
|
|
188
|
-
---
|
|
189
|
-
|
|
190
|
-
### US-012: Export Document as PDF with Comments
|
|
191
|
-
|
|
192
|
-
**As a** reviewer
|
|
193
|
-
**I want to** export the current document view as a PDF
|
|
194
|
-
**So that** I can share or archive the reviewed document with all highlights and comments visible
|
|
195
|
-
|
|
196
|
-
**Acceptance Criteria:**
|
|
197
|
-
|
|
198
|
-
- "Export PDF" button in the header
|
|
199
|
-
- PDF includes the rendered document with highlighted text
|
|
200
|
-
- Margin notes are included next to their corresponding highlights
|
|
201
|
-
- PDF preserves the visual layout of the review interface
|
|
202
|
-
- Filename follows pattern: `{original-filename}-reviewed.pdf`
|
|
203
|
-
|
|
204
|
-
**Status:** Not implemented (future consideration)
|
|
205
|
-
|
|
206
|
-
---
|
|
207
|
-
|
|
208
|
-
### US-013: Shell Integration with File Autocomplete ✅
|
|
209
|
-
|
|
210
|
-
**As a** CLI user
|
|
211
|
-
**I want to** autocomplete markdown file paths with `@<TAB>` in my shell
|
|
212
|
-
**So that** I can quickly find and open documents without typing full paths
|
|
213
|
-
|
|
214
|
-
**Acceptance Criteria:**
|
|
215
|
-
|
|
216
|
-
- `readit @<TAB>` launches fzf picker for markdown files in cwd
|
|
217
|
-
- `readit @partial<TAB>` pre-filters the picker with "partial" as query
|
|
218
|
-
- Standard Tab completion works for subcommands and options
|
|
219
|
-
- `readit completion zsh|bash|fish` outputs shell-specific setup scripts
|
|
220
|
-
- `eval "$(readit completion zsh)"` installs everything in one line
|
|
221
|
-
|
|
222
|
-
**Status:** Implemented (v0.7.0)
|
|
223
|
-
|
|
224
|
-
---
|
|
225
|
-
|
|
226
|
-
### US-014: Neovim Plugin ✅
|
|
227
|
-
|
|
228
|
-
**As a** Neovim user
|
|
229
|
-
**I want to** render and review markdown documents directly from my editor
|
|
230
|
-
**So that** I can stay in my editing workflow while reviewing
|
|
231
|
-
|
|
232
|
-
**Acceptance Criteria:**
|
|
233
|
-
|
|
234
|
-
- `:ReaditOpen` starts server and opens current buffer in browser
|
|
235
|
-
- `:ReaditStop` stops the server
|
|
236
|
-
- `:ReaditReload` saves buffer and triggers browser refresh
|
|
237
|
-
- `:ReaditStatus` shows server info
|
|
238
|
-
- Configurable keymaps (default `<leader>r` prefix)
|
|
239
|
-
- Server auto-cleanup on VimLeavePre
|
|
240
|
-
- `:checkhealth readit` verifies dependencies
|
|
241
|
-
|
|
242
|
-
**Status:** Implemented (v0.7.0)
|
|
243
|
-
|
|
244
|
-
---
|
|
245
|
-
|
|
246
|
-
### US-015: Live Reload on File Changes ✅
|
|
247
|
-
|
|
248
|
-
**As a** reviewer
|
|
249
|
-
**I want to** see the browser update automatically when I edit the source document
|
|
250
|
-
**So that** I can see my changes reflected in real time
|
|
251
|
-
|
|
252
|
-
**Acceptance Criteria:**
|
|
253
|
-
|
|
254
|
-
- Browser updates within ~200ms of file save
|
|
255
|
-
- Works with Vim/Neovim saves (write-to-temp-then-rename pattern)
|
|
256
|
-
- SSE connection auto-reconnects if server restarts (exponential backoff)
|
|
257
|
-
- Document HTML and comments fetched in parallel for fast reload
|
|
258
|
-
|
|
259
|
-
**Status:** Implemented (enhanced in v0.7.0, base SSE existed since v0.1.0)
|
|
260
|
-
|
|
261
|
-
---
|
|
262
|
-
|
|
263
|
-
## Technical Stories
|
|
264
|
-
|
|
265
|
-
### TS-001: CLI Argument Parsing
|
|
266
|
-
|
|
267
|
-
- Use Commander.js for CLI
|
|
268
|
-
- Main command: `<file>`, `--port`, `--host`, `--no-open`, `--clean`
|
|
269
|
-
- Subcommands: `list` (show all commented files), `show <file>` (display comments for a file)
|
|
270
|
-
- Validate file exists and is Markdown (.md) or HTML (.html)
|
|
271
|
-
- Graceful error messages
|
|
272
|
-
|
|
273
|
-
### TS-002: Server Architecture
|
|
274
|
-
|
|
275
|
-
- Bun.serve() serves API + static files
|
|
276
|
-
- `/api/documents` list and add documents
|
|
277
|
-
- `/api/document` fetch individual document HTML and headings
|
|
278
|
-
- `/api/comments` CRUD operations for comments
|
|
279
|
-
- `/api/settings` get/update user settings
|
|
280
|
-
- `/api/heartbeat` SSE for browser connection tracking
|
|
281
|
-
- `/api/document/stream` SSE for document updates (live reload)
|
|
282
|
-
- Development mode proxies to Vite dev server
|
|
283
|
-
- Production mode serves built assets from dist/
|
|
284
|
-
|
|
285
|
-
### TS-003: Build System
|
|
286
|
-
|
|
287
|
-
- Vite for frontend bundling
|
|
288
|
-
- `bun build` for CLI bundling (target bun, ESM)
|
|
289
|
-
- Single `bun run build` produces complete distributable
|
|
290
|
-
- `bunx readit` works without global install
|
|
291
|
-
|
|
292
|
-
### TS-004: File-Based Comment Storage
|
|
293
|
-
|
|
294
|
-
- Store comments in `~/.readit/comments/{hashed-path}/{filename}.comments.md`
|
|
295
|
-
- Markdown format for human/LLM readability:
|
|
296
|
-
|
|
297
|
-
```markdown
|
|
298
|
-
## Comment 1
|
|
299
|
-
> Selected text here
|
|
300
|
-
|
|
301
|
-
Comment text here
|
|
302
|
-
|
|
303
|
-
---
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
- API endpoints: `GET/POST/PUT/DELETE /api/comments` for CRUD operations
|
|
307
|
-
- Watch file for external changes (optional)
|
|
308
|
-
|
|
309
|
-
### TS-005: Shell Integration Architecture
|
|
310
|
-
|
|
311
|
-
- `shell/_readit` - Standard zsh compdef for subcommands, options, file args
|
|
312
|
-
- `shell/readit.zsh` - Rich widget: `@` prefix triggers fzf markdown file picker
|
|
313
|
-
- Uses `fd` for fast file listing, falls back to `find`
|
|
314
|
-
- fzf with bat/head preview, initial query from text after `@`
|
|
315
|
-
- `readit completion zsh|bash|fish` CLI subcommand outputs setup scripts
|
|
316
|
-
- Bash completion via `complete -F`, Fish via `complete -c`
|
|
317
|
-
|
|
318
|
-
### TS-006: Neovim Plugin Architecture
|
|
319
|
-
|
|
320
|
-
- `nvim-readit/lua/readit/init.lua` - Core: setup, server management, commands, keymaps
|
|
321
|
-
- `nvim-readit/plugin/readit.lua` - Auto-loader on markdown FileType
|
|
322
|
-
- `nvim-readit/lua/readit/health.lua` - `:checkhealth` module
|
|
323
|
-
- Discovers existing servers via `~/.readit/server.json`
|
|
324
|
-
- Starts server with `jobstart()`, attaches files via `POST /api/documents`
|
|
325
|
-
- Communicates with server via curl (non-blocking `jobstart`)
|
|
326
|
-
|
|
327
|
-
### TS-007: File Watcher Resilience
|
|
328
|
-
|
|
329
|
-
- `fs.watch()` with both `"change"` and `"rename"` event handling
|
|
330
|
-
- On rename: retry loop (10 attempts, 200ms apart) to re-establish watcher
|
|
331
|
-
- Debounced re-render (200ms) to avoid thrashing on rapid saves
|
|
332
|
-
- SSE auto-reconnect with exponential backoff (1s -> 30s max)
|
|
333
|
-
- Parallel fetch of document HTML + comments on reload
|
package/AGENTS.md
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# AGENTS.md
|
|
2
|
-
|
|
3
|
-
Instructions for AI coding agents working on this project.
|
|
4
|
-
|
|
5
|
-
## Project Context
|
|
6
|
-
|
|
7
|
-
readit is a CLI tool for reviewing Markdown and HTML documents with inline comments. The workflow is:
|
|
8
|
-
|
|
9
|
-
1. User runs `readit document.md`
|
|
10
|
-
2. Server renders Markdown to HTML (markdown-it + shiki for syntax highlighting)
|
|
11
|
-
3. Bun.serve() starts and opens browser with Svelte 5 frontend
|
|
12
|
-
4. User selects text and adds comments
|
|
13
|
-
5. Comments are saved as `.comments.md` files in `~/.readit/comments/`
|
|
14
|
-
6. User can export comments for AI or apply back to Markdown
|
|
15
|
-
|
|
16
|
-
## Development Commands
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
bun install # Install dependencies
|
|
20
|
-
bun dev # Start development (CLI with --watch)
|
|
21
|
-
bun run dev:client # Start Vite dev server only
|
|
22
|
-
bun run build # Build for production (Vite + CLI)
|
|
23
|
-
bun run test # Run unit tests (Vitest)
|
|
24
|
-
bun run test:e2e # Run e2e tests (Playwright)
|
|
25
|
-
bun run typecheck # TypeScript check
|
|
26
|
-
bun run check # Biome lint + format check
|
|
27
|
-
bun run check:fix # Fix lint + format issues
|
|
28
|
-
bun run format # Format code with Biome
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Code Organization
|
|
32
|
-
|
|
33
|
-
- `src/cli.ts` - CLI entry point (Commander.js)
|
|
34
|
-
- `src/server.ts` - Bun.serve() server + API routes
|
|
35
|
-
- `src/components/` - Svelte 5 UI components
|
|
36
|
-
- `src/stores/` - Svelte 5 reactive stores (`.svelte.ts`)
|
|
37
|
-
- `src/lib/` - Utility functions, rendering, i18n
|
|
38
|
-
- `src/schema.ts` - TypeScript types
|
|
39
|
-
- `shell/` - Zsh/Bash/Fish completions and `@` file picker widget
|
|
40
|
-
- `nvim-readit/` - Neovim plugin (Lua)
|
|
41
|
-
- `vscode-readit/` - VS Code extension
|
|
42
|
-
|
|
43
|
-
## Testing
|
|
44
|
-
|
|
45
|
-
- Unit tests are co-located with source files (`*.test.ts`)
|
|
46
|
-
- E2E tests live in `e2e/` (Playwright)
|
|
47
|
-
- Run `bun run test` before committing
|
|
48
|
-
|
|
49
|
-
## Commit Guidelines
|
|
50
|
-
|
|
51
|
-
- Use conventional commits (feat:, fix:, docs:, etc.)
|
|
52
|
-
- Keep commits focused and atomic
|
|
53
|
-
- Run `bun run typecheck && bun run check` before committing
|
|
54
|
-
|
|
55
|
-
## Adding Features
|
|
56
|
-
|
|
57
|
-
1. Check `.claude/user-stories.md` for planned features
|
|
58
|
-
2. Update types in `src/schema.ts` first
|
|
59
|
-
3. Create/update stores if needed (`src/stores/`)
|
|
60
|
-
4. Create/update Svelte components (`src/components/`)
|
|
61
|
-
5. Add tests
|
|
62
|
-
|
|
63
|
-
## Key Files to Review
|
|
64
|
-
|
|
65
|
-
- `CLAUDE.md` - Project overview and architecture
|
|
66
|
-
- `.claude/user-stories.md` - User stories and acceptance criteria
|
|
67
|
-
- `.claude/roadmap.md` - Development roadmap
|
|
68
|
-
- `package.json` - Scripts and dependencies
|
package/Makefile
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
.PHONY: dev build build-client build-server test test-client test-e2e clean
|
|
2
|
-
|
|
3
|
-
# Development: Go server manages Vite child process
|
|
4
|
-
dev:
|
|
5
|
-
cd go && go run ./cmd/readit -- --dev $(ARGS)
|
|
6
|
-
|
|
7
|
-
# Production build: frontend first, then Go embeds it
|
|
8
|
-
build: build-client build-server
|
|
9
|
-
|
|
10
|
-
build-client:
|
|
11
|
-
bunx vite build
|
|
12
|
-
|
|
13
|
-
build-server: build-client
|
|
14
|
-
rm -rf go/internal/server/dist
|
|
15
|
-
mkdir -p go/internal/server/dist
|
|
16
|
-
cp -r dist/. go/internal/server/dist/
|
|
17
|
-
cd go && go build -o ../dist/readit ./cmd/readit
|
|
18
|
-
|
|
19
|
-
# Tests
|
|
20
|
-
test:
|
|
21
|
-
cd go && go test ./...
|
|
22
|
-
|
|
23
|
-
test-client:
|
|
24
|
-
bun run test
|
|
25
|
-
|
|
26
|
-
test-e2e:
|
|
27
|
-
bun run test:e2e
|
|
28
|
-
|
|
29
|
-
clean:
|
|
30
|
-
rm -rf dist go/internal/server/dist
|
|
31
|
-
mkdir -p go/internal/server/dist
|
|
32
|
-
touch go/internal/server/dist/.gitkeep
|
package/biome.json
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://biomejs.dev/schemas/2.4.15/schema.json",
|
|
3
|
-
"vcs": {
|
|
4
|
-
"enabled": true,
|
|
5
|
-
"clientKind": "git",
|
|
6
|
-
"useIgnoreFile": true
|
|
7
|
-
},
|
|
8
|
-
"formatter": {
|
|
9
|
-
"enabled": true,
|
|
10
|
-
"indentWidth": 2,
|
|
11
|
-
"indentStyle": "space"
|
|
12
|
-
},
|
|
13
|
-
"assist": {
|
|
14
|
-
"enabled": true
|
|
15
|
-
},
|
|
16
|
-
"linter": {
|
|
17
|
-
"enabled": true,
|
|
18
|
-
"rules": {
|
|
19
|
-
"style": {
|
|
20
|
-
"noNonNullAssertion": "off"
|
|
21
|
-
},
|
|
22
|
-
"correctness": {},
|
|
23
|
-
"complexity": {
|
|
24
|
-
"noForEach": "off",
|
|
25
|
-
"noImportantStyles": "off"
|
|
26
|
-
},
|
|
27
|
-
"suspicious": {
|
|
28
|
-
"noArrayIndexKey": "warn",
|
|
29
|
-
"noExplicitAny": "warn",
|
|
30
|
-
"noUnknownAtRules": "off"
|
|
31
|
-
},
|
|
32
|
-
"a11y": {
|
|
33
|
-
"useKeyWithClickEvents": "off",
|
|
34
|
-
"noSvgWithoutTitle": "off",
|
|
35
|
-
"useSemanticElements": "warn",
|
|
36
|
-
"useFocusableInteractive": "warn"
|
|
37
|
-
},
|
|
38
|
-
"security": {}
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
"css": {
|
|
42
|
-
"parser": {
|
|
43
|
-
"tailwindDirectives": true
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
"files": {
|
|
47
|
-
"includes": [
|
|
48
|
-
"**",
|
|
49
|
-
"!!**/dist",
|
|
50
|
-
"!!**/build",
|
|
51
|
-
"!!**/node_modules",
|
|
52
|
-
"!!**/generated",
|
|
53
|
-
"!!**/prisma/generated",
|
|
54
|
-
"!!**/supabase/generated",
|
|
55
|
-
"!!**/.next",
|
|
56
|
-
"!!**/.turbo",
|
|
57
|
-
"!!**/.git",
|
|
58
|
-
"!!**/.temp",
|
|
59
|
-
"!!**/.wrangler",
|
|
60
|
-
"!!**/playwright-report",
|
|
61
|
-
"!!**/test-results"
|
|
62
|
-
],
|
|
63
|
-
"ignoreUnknown": true
|
|
64
|
-
},
|
|
65
|
-
"overrides": [
|
|
66
|
-
{
|
|
67
|
-
"includes": ["**/*.svelte"],
|
|
68
|
-
"linter": {
|
|
69
|
-
"rules": {
|
|
70
|
-
"correctness": {
|
|
71
|
-
"noUnusedImports": "off",
|
|
72
|
-
"noUnusedVariables": "off",
|
|
73
|
-
"noUnusedFunctionParameters": "off"
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
]
|
|
79
|
-
}
|