Commit Graph

36 Commits

Author SHA1 Message Date
nmemmert 537ea24eb3 Use macula-greek English glosses in suggest modal instead of KJV kjv_def
Adds public/nt-strongs-gloss.json (100 KB) — the most-common per-word
English gloss for each Strong's number, computed from the macula-greek
SBLGNT dataset. This replaces the fragile kjv_def comma-parsing approach:
grace now shows "grace" not "acceptable", God shows "God" not "X exceeding",
will shows "will" not "desire", etc.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 13:12:10 -04:00
nmemmert 64e77fb40e Clean up English word display in suggest modal
Strip Strong's X/+ notation prefixes and take the first meaningful
English word from the comma-separated kjv_def — so G2316 shows
"God" instead of "exceeding", G40 shows "holy" instead of "(most) holy
(one", etc. Falls back to the raw def if all segments are filtered.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 13:04:26 -04:00
nmemmert 93b58d8346 Fix suggest modal: portal to body + English word first
- Render modal via createPortal(…, document.body) so it's never clipped
  or offset by parent overflow/transform CSS — appears as a true centered
  overlay regardless of page scroll position
- Reorder word rows: English definition leads (bold), then Greek lexeme,
  transliteration, and Strong's number — makes it easy to recognise words
  without reading the Greek

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 12:59:04 -04:00
nmemmert 236ad7fab7 Replace auto-add with word picker modal for Greek suggest
Instead of adding all passage words automatically, the suggest button now
opens a modal listing every Greek word from the verse range as checkboxes.
Content words (nouns, verbs, adjectives) are pre-checked; function words
(articles, prepositions, conjunctions, common pronouns) are pre-unchecked.
Select all / Select none shortcuts included. Words already in the chunk
are excluded from the list entirely.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 12:54:15 -04:00
nmemmert cda93a68eb Fix Greek suggest: use local macula-greek concordance instead of broken API
The previous implementation fetched SBLGNT from bible.helloao.org using
the wrong translation ID and an API that returns raw text strings, not
per-word Strong's data — so it always silently returned nothing.

Now uses a bundled NT Strong's concordance (public/nt-strongs-concordance.json,
~908 KB) derived from the Clear-Bible macula-greek SBLGNT dataset. This maps
each verse (book/chapter/verse) to the exact Strong's numbers that appear in it,
making the suggest feature accurate and offline-capable after first load.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 12:44:40 -04:00
nmemmert 53790437b3 Add passage-aware Greek word suggest and cross-device stale-project detection
- NT_BOOK_NUMBER map + suggestGreekWordsForChunk: fetches SBLGNT interlinear
  from bible.helloao.org, extracts Strong's numbers for the exact verse range,
  and auto-populates Greek word rows — fixes wrong/unrelated words from manual entry
- staleLocalProjects detection on startup: compares lastEdited timestamps so the
  app knows when the server has a newer version of a project you already have locally
- pullLatestFromServer + amber banner on home page for one-click sync pull

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 12:24:43 -04:00
nmemmert 8376a01178 fix bug 2026-05-28 08:38:25 -04:00
nmemmert d8da3744ca adding backup and data perstance accross devices 2026-05-28 08:32:33 -04:00
nmemmert 48b3790cd2 Fix Greek word lookup: replace broken Bolls BDAG with OpenScriptures Strong's dictionary
The Bolls.life BDAG endpoint (/dictionary-definition/BDAG/) now returns
empty arrays for all queries, and the search endpoint returns 404.

Switched Greek lookups to the OpenScriptures Strong's Greek Dictionary
served via jsDelivr CDN. The ~1.2 MB dictionary is fetched once on first
lookup and cached in a useRef for the session, so subsequent lookups are
instant. Hebrew lookups (Bolls BDBT) are unchanged and still working.

Supports Strong's number lookup (G4102, 4102) and English word search
(faith, apostle), returning lemma, transliteration, short definition,
and an extended definition with derivation and KJV keyword list.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 07:51:44 -04:00
nmemmert 6034aa26a2 Merge pull request #7 from nmemmert/claude/test-coverage-analysis-R2olv
Hide lookup links when word is found
2026-05-27 13:47:38 -04:00
Claude 872a12b55a Hide lookup links when word is found (check lexeme/definitionHtml not just shortDefinition) 2026-05-27 17:47:27 +00:00
nmemmert 0c0d4a0ae2 Merge pull request #6 from nmemmert/claude/test-coverage-analysis-R2olv
Show external lookup links when Greek word not found
2026-05-27 13:43:49 -04:00
Claude 74442c1962 Show external lookup links when Greek word is not found in BDBT 2026-05-27 17:43:36 +00:00
nmemmert 25f0328c15 Merge pull request #5 from nmemmert/claude/test-coverage-analysis-R2olv
Fix Greek lookup returning "Lookup failed"
2026-05-27 13:39:47 -04:00
Claude dde2fecba2 Fix lookup: use bare numbers in URL and filter results by G/H prefix for language 2026-05-27 17:39:34 +00:00
nmemmert f35ae80dd9 Merge pull request #4 from nmemmert/claude/test-coverage-analysis-R2olv
Merge feature branch into main
2026-05-27 13:34:54 -04:00
Claude 1f938475ed Fix lookup: replace invalid BDAG dictionary code with BDBT which bolls.life actually supports 2026-05-27 17:23:01 +00:00
nmemmert b72f842353 restart script 2026-05-27 13:19:58 -04:00
nmemmert 8b44250579 Merge pull request #3 from nmemmert/claude/test-coverage-analysis-R2olv
Fix Greek lookup: auto-prepend G prefix and use search endpoint for E…
2026-05-27 13:16:03 -04:00
Claude b0d36bf770 Merge main: combine BDAG Greek lexicon with bare-number normalization and English word search 2026-05-27 17:15:53 +00:00
Claude ebdeeed3f0 Fix Greek lookup: auto-prepend G prefix and use search endpoint for English words 2026-05-27 16:46:34 +00:00
nmemmert 35d92be213 greek update 2026-05-27 11:45:40 -04:00
nmemmert eae8c9a18e add to allowed hosts 2026-05-27 10:32:19 -04:00
nmemmert decf43823f allowed server 2026-05-27 09:41:53 -04:00
nmemmert f3313c2721 Merge pull request #2 from nmemmert/claude/test-coverage-analysis-R2olv
Run dev server in background with nohup so it survives terminal close
2026-05-27 09:24:05 -04:00
Claude 8e2343da30 Run dev server in background with nohup so it survives terminal close 2026-05-27 13:21:27 +00:00
nmemmert 4daed768ff Merge pull request #1 from nmemmert/claude/test-coverage-analysis-R2olv
Claude/test coverage analysis r2olv
2026-05-27 09:15:15 -04:00
Claude f58d1f06e6 Add setup.sh to install dependencies and start dev server on an available port 2026-05-27 12:56:35 +00:00
Claude dff6ec2983 Add project dashboard, OIA notes, cross-references, and multi-chapter support
- Home page (project list/dashboard): projects stored in localStorage index,
  Resume/Delete per project, sorted by last-edited date
- OIA notes: replace single `notes` field with observation/interpretation/application
  textareas on each chunk following inductive study method
- Cross-references: string tag array per chunk with inline add/remove UI,
  included in HTML and DOCX exports and Claude prompt
- Multi-chapter projects: chapters array on project, chapter tabs in setup view,
  chapter-grouped sidebar in study view, global chunk navigation across chapters
- Migration: migrateChunk/migrateProject exported helpers auto-upgrade old
  localStorage entries on startup
- Tests updated: new baseProject fixture, 11 additional tests (99 total)
2026-05-27 12:28:41 +00:00
Claude 00d9dbd7c8 Clean up unused code and untrack build artifacts
- Remove dist/ from git (build output, already in .gitignore)
- Replace default React import with named StrictMode in main.jsx

https://claude.ai/code/session_01C4T3bYHR2svLq7JVcxKJ6Y
2026-05-27 11:44:16 +00:00
Claude 6759129a9e Remove node_modules from git tracking
node_modules was committed before .gitignore existed. Now that .gitignore
excludes it, remove it from the index so it is no longer tracked.

https://claude.ai/code/session_01C4T3bYHR2svLq7JVcxKJ6Y
2026-05-27 11:30:50 +00:00
Claude 3c8ed73181 Add "Prepare for Claude" feature for study guide generation
Adds a buildClaudePrompt() utility that formats the completed study project
(scripture, notes, Greek word research) into a structured prompt ready to
paste into Claude. A "Prepare for Claude" button in the header copies it to
the clipboard and shows a brief confirmation. Button is disabled until at
least one chunk exists.

https://claude.ai/code/session_01C4T3bYHR2svLq7JVcxKJ6Y
2026-05-27 11:30:25 +00:00
Claude 509e22ac9e Add .gitignore to exclude node_modules and build artifacts
https://claude.ai/code/session_01C4T3bYHR2svLq7JVcxKJ6Y
2026-05-27 11:04:50 +00:00
Claude 3210132a21 Add test infrastructure and initial test suite
Sets up Vitest + React Testing Library with jsdom, exports utility functions
for unit testing, and adds 78 tests covering pure functions and component
integration flows (chapter loading, chunk management, navigation, Greek word
lookup).

https://claude.ai/code/session_01C4T3bYHR2svLq7JVcxKJ6Y
2026-05-27 11:04:20 +00:00
nmemmert 9a78e2a65f fixed 2026-05-26 17:20:54 -04:00
nmemmert f47a41ce6f Fix App.jsx two-page workflow JSX render and update study app layout 2026-05-26 17:14:30 -04:00