Skip to content

Add the Paratext 9 import WebView experience with a first-open offer - #274

Open
jasonleenaylor wants to merge 6 commits into
mainfrom
pt9-parsed-webview
Open

Add the Paratext 9 import WebView experience with a first-open offer#274
jasonleenaylor wants to merge 6 commits into
mainfrom
pt9-parsed-webview

Conversation

@jasonleenaylor

@jasonleenaylor jasonleenaylor commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

The UI half of the PT9 import, stacked on #273 (converter: #272).

  • The select modal gains the Import from Paratext 9 button, shown only when
    the source serves convertible data (usePt9ImportAvailability probes the
    manifest through the projectInterface).
  • Pt9ImportModal carries the run, its report, and its failures - including
    the too-large refusal, recognized by the RESOURCE_EXHAUSTED platform error
    code with the documented message marker as fallback (pt9-import-error).
  • An import opens read-only: editing affordances stay away, the banner
    carries manual sync and copy-to-editable, and CopyToEditableModal clones an
    import into an editable project through the normal draft-open flow.
  • First-open offer: opening a source that has convertible PT9 data and no
    stored interlinearizer state asks "This project has Paratext 9 interlinear
    data. Would you like to convert it now?" Yes runs the import as the only
    project created; No (or dismissing) persists the empty draft so the offer
    never repeats. Recorded in user-questions.md for outside review.

This change is Reviewable

@coderabbitai

coderabbitai Bot commented Aug 27, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: 9018c333-0074-4004-89af-a494931146bc


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@imnasnainaec

Copy link
Copy Markdown
Contributor

report.senses.{entryRefs,senseRefs}{Resolved,Unresolved} is write-only: foldReport doesn't fold it and nothing else reads it. Since no resolver ever runs today, it's 0 resolved / all unresolved on every import. Just checking: is that deliberate (rather than a gap in the fold)?

@jasonleenaylor
jasonleenaylor force-pushed the pt9-parsed-webview branch 2 times, most recently from e5c7fe8 to 3fd34ea Compare August 28, 2026 18:40
@jasonleenaylor

Copy link
Copy Markdown
Contributor Author

Deliberate. No resolver runs during import yet, so folding the sense counters would show zero resolved and everything unresolved on every run, which reads as a failure for work that is not wired up. The counters are populated and pinned on the converter side so they are ready when a resolver lands. Folding and rendering them belongs with the resolver work tracked in #280, which now lists it as a scope point; ReportTotals carries a TODO pointing there (ccb28ea).

--drafted by Claude--

Base automatically changed from pt9-parsed-service to main August 31, 2026 17:05
jasonleenaylor and others added 6 commits August 31, 2026 13:08
The UI half of the PT9 import. The select modal gains the import
button (shown only when the source serves convertible data, via
usePt9ImportAvailability); Pt9ImportModal carries the run, its report,
and its failures, including the too-large refusal recognized by the
RESOURCE_EXHAUSTED platform error code with the documented message
marker as fallback. An import opens read-only: every editing affordance
stays away, a banner carries sync and copy-to-editable, and
CopyToEditableModal clones an import into an editable project. On the
first open of a source with convertible PT9 data and no stored state,
Pt9ConvertPromptModal offers the conversion up front: Yes runs the
import as the only project created, No (or dismissing) persists the
empty draft so the offer never repeats, per the user-questions entry.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The Loader imports isPt9ImportReport from the converter surface that now
owns it, the frontend-mock helper rides this tree with its users, and
the offer and hasDraft tests use the shared ENOENT fixture.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.

2 participants