Skip to content

[5d] Serve the concordance from the host and remove the read bridges #459

Open

Description

@imnasnainaec

Part of Phase 5 (#428) of the data layer plan.

getConcordance, paged by offset: the session joins occurrences from 2e's read in BookService with links and payloads from the repository, and its request leaves room for #50's search, sort and coverage filters (coverage joins the analysis to the text); then remove getFullAnalysis, getTokenizedBook and the WebView's whole-text read.

Done when: the concordance panel shows the same rows and read status as before, from getConcordance and getTextReadStatus, and no WebView code reads the whole analysis or the whole text.

Depends on: 2e (#439), 5a (#456), 5b (#457), 5c (#458).

From the plan

API

Call Kind Request Response Replaces today Issue
getConcordance query session, form, offset, count Rows joined with their payloads useConcordanceEntries and the panel joins 5d

Cross-book answers

Answer Today Planned Freshness Issue
Concordance The WebView reads and tokenizes every book getConcordance, paged by offset: occurrences from 2e's read in BookService, joined with payloads in the session On demand 5d

Risks

Risk Effect Mitigation
Bus size until 5d Opening a draft still sends the whole analysis, and the large tier can't load Expected until 5d removes getFullAnalysis; 6a checks it

Activity

  1. imnasnainaec commented on Oct 19, 2026

    @imnasnainaec
    ContributorAuthor

    2d watches the book whose outline was last asked for. The view asks for an outline only after getTokenizedBook loads the book. So a book with no text, or one that fails to tokenize, isn't watched until the view outlines a book without loading it whole first.

  2. imnasnainaec commented on Oct 20, 2026

    @imnasnainaec
    ContributorAuthor

    The 2e read keeps only each book's word forms, not occurrences. The concordance needs occurrences.

    Either the read keeps an indexBook-like occurrence index, which costs more heap, or getConcordance re-reads books. The checkpoint's heap numbers cover forms only.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions