Errors and Attempts

Compact attempt records for the books section.

Errors and Attempts

IdStatusContextProblemResponse
books-01-01resolvedearly home-page reader passreader felt like a preview instead of the real surfacetreat the homepage reader as the primary reading surface and keep iterating there
books-01-02resolvedfirst books planning-doc passplanning pages were too generic and not close to the XML structuresplit planning into explicit page types with stable record fields
books-01-03resolvedhomepage embedded EPUB loadembedded reader auto-load threw META-INF/container.xml / missing-asset errors and the CTA only scrolleddefer mount to an explicit load action and use the direct EPUB URL in EpubViewer instead of a blob wrapper
books-01-04resolvedEPUB packaging for reader imagesgenerated EPUB pages referenced images/<uuid>.null or source paths for illustrations that were not actually packagedrewrite available book images to local asset paths during EPUB generation and strip source image tags when the file is missing
books-01-05resolvedupcoming book without manuscript pagesbuild:books logged a failed EPUB build for a book intentionally shown as coming soondetect missing markdown sources early and skip EPUB packaging without treating it as a failure
books-01-06resolvedfront-page reader still using packaged EPUB URLbrowser still requested /META-INF/container.xml after the packaging fix because the runtime path could still fall back to directory-style EPUB resolutionfetch the .epub archive as an ArrayBuffer in EpubViewer and hand those bytes directly to react-reader
books-01-07resolvedhomepage embed still diverged from the stable reader routededicated /books/<slug>/read rendered correctly while the front-page embed still failed to render consistentlystop treating the homepage as a second reader runtime and route readers from the front page into the dedicated reader page
books-01-08resolveddedicated reader header only exposed a back link and titleswitching books from the active reading session required backing out to the indexmove book switching into the read-page header and keep unavailable books visibly disabled
books-01-09resolveddedicated reader still felt like a narrow util shell on wide screenswidescreen reading did not use the available space and the TOC treatment looked flatswitch the reader to paginated spread-friendly rendering and restyle the TOC chrome and document typography
books-01-10resolveddedicated reader spread sat too close to the TOC toggle chromethe first page felt cramped against the left-side controlsmove the reader stage farther right in reader mode so the spread clears the toggle area
books-01-11resolvedemitted EPUB pages did not fit the dedicated reader spreadlead images could jump to the next column, opening text disappeared from the first spread, and there were no visible bottom foliosemit each source page with a custom page wrapper, extracted lead image block, custom EPUB CSS, and footer folio metadata
books-01-12resolvedfirst bottom-nav pass on the dedicated readerthe footer controls were too low-contrast and too low in the frame, while the old edge chevrons still remained activeraise and compress the footer strip, strengthen its contrast slightly, and hide the legacy side arrows in reader mode
books-01-13resolvedmanuscript structure still exposed raw page filenamesthe EPUB treated every page file as a chapter, so TOC entries and visible titles were driven by page-<n> filenames instead of book structureformalize chapter metadata and page conventions, then rebuild the EPUB around chapter opener entries plus content pages excluded from TOC
books-01-14resolvedfirst structured EPUB build only showed chapter openers in the readerepub-gen excludes excludeFromToc entries from the spine as well as the TOC, so story pages disappeared from actual reading orderoverride the OPF template so story pages stay in the spine while remaining absent from the TOC
books-01-15resolvedfirst full structured EPUB still left blank companion pages beside some lead imageslead images were often still embedded at the start of the first paragraph, so the builder missed them as standalone figures and never switched into the split spread layoutlift leading inline images out of the opening paragraph during EPUB generation, then emit those pages with a split content layout so images and opening text can share the same spread when space allows
books-01-16resolvedsplit spread treatment made the book feel worse once the source pages were viewed as authored paperback pagesthe reader showed two pages at a time and the split image/text layout fought the expectation that each manuscript page owns one illustration slotreturn the dedicated reader to single-page pagination and emit a fixed illustration frame for every page, using placeholder art when a page has no image
books-01-17resolvedsingle-page mode and the built-in TOC still produced bad reading artifactshidden TOC items were visibly bleeding through the left side, while oversized image slots and larger type caused blank or near-empty spread locationsreplace the built-in TOC with a custom collapsed panel, restore spreads only on wide screens, and shrink the emitted page shell so the image sits at the top and text starts immediately beneath it
books-01-18resolvedsome spread locations still showed a portrait lead image by itself with the prose delayed until the following locationstacked figure-then-body layout was still too rigid for taller lead images, even after the page shell was compactedallow lead-image story pages to switch into an image-left text-right layout on wider spreads so the opening text starts immediately beside the figure
books-01-19resolvedthe temporary lead-image split made illustrated pages look inconsistent and gave real images different shapes than the placeholder framethe split layout and contain fit preserved source proportions, but the user-facing result was a mix of portrait, wide, and placeholder shapes instead of one stable page rhythmremove the split rule and force all illustrated pages into the same fixed image frame shape as the placeholder, using crop-first rendering for now

Follow-up Rule

FieldValue
new-record-triggeradd a row when a books problem changes approach, not for every small note
close-conditionmove a record to resolved only after the fix is shipped or the path is abandoned