# Changelog

## Unreleased

- Display Sela Viewer creator attribution inside the independent CDN reading-tools drawer, with a link to limaraya.com, and in the reading settings information.
- Add a dedicated public `/viewer/changelog/` page powered by the live CDN release index and published release notes when available. Keep the active version visible on the public Viewer and landing page.
- Refresh Sela public branding with a reading illustration, purposeful motion, and one concise product story while preserving accessibility and reduced-motion preferences.
- Provide source-backed rotation and local fallbacks for daily home readings; simplify deep Faith shelf navigation without nested page headers.

- Add a **Faith** tab to the shelf. It appears when a faith or tradition is chosen in Settings and lists only that tradition's readings: optional, user-installed packs with source, licence, version and size shown before download, byte progress, cancel, checksum verification, and removal that never touches the shelf, notes, progress or backups.
- Add readings: the stories of the 25 prophets (not yet reviewed by a scholar, and the app says so), Indonesian Quran and hadith downloaded unchanged from QuranEnc and HadeethEnc, the Indonesian Bible TSI (CC BY-SA 4.0), Pali suttas in English and Indonesian (CC0), Christian, Buddhist, Hindu and Confucian classics.
- Make Settings drive the whole experience: the chosen tradition shapes the shelf, the Home reading and prayer tools, and Library tools lists and removes every download.
- Add notes and saved quotes to every reading entry, listed on the Faith tab. Saved entries, notes, quotes and the reading position live in the personal store, so backups carry them.
- Add the Samyutta and Anguttara Nikaya (CC0), the World English Bible deuterocanonical books, Mencius (Legge), Syair Perahu and Gurindam Dua Belas.
- Add The Story of a Soul (Thérèse of Lisieux), The Confessions of Al Ghazzali, the Lyall translation of the Analects, The Book of Filial Duty, the Cariyapitaka, and three more Malay syair.
- Enlarge small touch targets on the Discover surprise button, the water-goal button and the password toggle.
- Fix accessibility findings from an axe-core pass over every route in light, dark and OLED: unlabelled calendar and add-books buttons, filled-button contrast in dark appearances, dimmed text contrast, and public-site contrast, link and scroll-region issues.
- Add `scripts/packs.ts` and `scripts/import-readings.ts` to build and verify reading packs, and a real service-worker offline test for installed packs.
- Refresh the README, CONTRIBUTING, and documentation index. Add SECURITY and a code of conduct.

## 0.9.0-beta.10 — jsDelivr CDN publishing (2026-10-27)

- Publish the framework-independent Viewer bundle to the public npm registry so jsDelivr can serve immutable versioned URLs while the Git repository stays private.
- Move npm's `latest` tag after every validated release, including beta versions; keep the public site, examples, and SDK asset fallback aligned with jsDelivr.
- Add a GitHub Actions trusted-publisher workflow for validated releases and keep public package contents limited to the built SDK, adapters, and licence notices.

## 0.9.0-beta.11 — Reliable jsDelivr script URLs (2026-10-27)

- Point versioned and `latest` SDK script, stylesheet, and fallback URLs to jsDelivr's Fastly mirror so the public embed examples resolve consistently.

## 1.0.0 — Portable reading notes (2026-10-28)

- Add an indexed list of saved notes and highlights with direct navigation to the page where each passage appears.
- Add readable Markdown export while preserving the existing JSON export and compatibility with older v1 files.
- Include page-count metadata in new JSON exports and protect imports from a different book or edition.
- Keep the update in the standalone Viewer and embedded app reader, with rebuilt browser bundles and types.

## 0.9.0-beta.9 — Neutral Liquid Glass redesign (2026-10-25)

- Replace the warm paper palette across the public site and app with white light surfaces and neutral dark/OLED surfaces.
- Add six selectable accent colors and a persisted eye-protection setting, independent from light, dark and OLED appearance.
- Refine app navigation, cards, typography, touch targets, and appearance settings while keeping book pages matte and readable.
- Update the bilingual CDN install examples to the matching immutable Reader release.

## 0.9.0-beta.8 — Sela Books rebuild (2026-10-21)

- Rebuild the public site and `/app` around a shared responsive design system; remove the obsolete `/mobile` app and align the Pages packaging workflow with the new routes.
- Rework the reading app's Home, shelf, discovery, reader and Settings flows while retaining the existing library, reading, prayer and Islamic reading features.
- Add 195 optional Project Gutenberg classics to Sela picks, for 227 curated records total, with live local category counts and on-demand book downloads.
- Add typographic cover fallbacks for missing or broken artwork on the immersive 3D shelf, and refine its view controls with centered glass-treated icon buttons.
- Refresh book branding, themes, icons, typography, public-page artwork and responsive screenshots; validate core browser flows across Chromium, Firefox and WebKit.

## 0.9.0-beta.7 — Settings and visual polish (2026-10-18)

- Keep full-page Settings category names, descriptions, and accessible labels in sync when the app language changes.
- Refine the minimalist book identity, rounded outline navigation, transparent chibi companions, distinct Indonesian palettes, and optional OLED black mode.
- Recheck the public page, web app, and reader at phone, tablet, and desktop breakpoints; refresh release documentation for this beta.

## 0.9.0-beta.6 — Sela design refresh (2026-10-18)

- Redraw the Sela Books mark, favicon, installed-app icons and navigation set with a restrained book symbol and rounded outline icons.
- Replace legacy character art with a transparent 3D chibi reading companion and a coordinated four-animal companion atlas across the app and public site.
- Reduce the palette picker to eight distinct Indonesian-named palettes and keep their palette motifs visible across Home and reader materials.
- Turn Settings into a categorized, navigable set of full-page sections with an in-page back action; keep appearance and OLED controls easy to find.
- Align the public page, web app, and embedded reader around the same visual system, and document the design tokens and component rules.
- Refresh the bilingual README, source documentation, icon metadata, and third-party artwork notices.

## 0.9.0-beta.5 — Source-first discovery (2026-10-18)

- Reorder Explore into a clear source → supported collection → optional topic flow. Source cards describe each catalog's capabilities before the user chooses a collection.
- Remove Google Books, DOAB and Standard Ebooks from active discovery after key/quota, HTTP 403 and browser-CORS checks; use attributed BookRank metadata links for rankings.
- Route only public Gutendex and Open Library catalog GETs through CORS.dev when needed; keep CORS-ready sources direct and keep Gutenberg records metadata-only until the user opens the source page.
- Add comic and graphic-novel discovery through Open Library subjects and BookRank rankings without treating catalog records as book downloads.
- Expand source-specific topic filters for nonfiction, science, religion, technology, psychology, health, nature, business and personal growth; include only topics supported by the selected catalog.
- Keep news topics in separate accessible tabs and validate per-category feeds, source fallback, keyboard selection, and responsive layout.
- Audit API-directory candidates from publicapis.dev and public-apis; document working, key-gated, blocked, and metadata-only integrations.
- Refresh the local beta version, package metadata, README badges and source documentation. This beta remains a local checkout and has not been tagged or pushed.

## 0.9.0-beta.4 — Adaptive reading space (2026-10-17)

- Rework Explore around swipeable curated shelves and genre rails, with clear controls to expand a shelf or show all results.
- Keep book titles and authors readable beside compact cover artwork, and generate missing covers from the active Sela palette.
- Show the installed version alongside the latest version in update feedback.
- Refine adaptive Home, Shelf, Explore and Settings layouts for phones, tablets and wide screens; keep the existing local library, reader, and source behavior.
- Refresh the public page and app presentation while keeping keyboard, theme, language, and reduced-motion support.

## 0.9.0-beta.3 — Publishing & discovery polish (2026-10-13)

- Expand open-catalog discovery and book-cover lookup while preserving generated covers when providers have no artwork.
- Refine responsive reading controls, bookshelf layouts and installation/update feedback across supported browsers.
- Keep author contact private by routing feedback through the project issue tracker; retain the requested creator credit and website.
- Move planning and machine-specific validation notes out of the public release, and make local tooling paths configurable.

## 0.9.0-beta.2 — Personal reading room (2026-10-12)

- Detect install state and offer a browser-aware install prompt or concise platform instructions; document the browser and OS limits honestly.
- Add an on-device Home backdrop with a readable soft overlay, and keep it compatible with Safari/WebKit storage.
- Refine compact language/theme controls so the public page stays within narrow phone viewports.
- Keep Explore reading and download actions legible at 320 px widths across browser engines.
- Make Explore's bookshelf view cover-only with tap-to-open details; add Gutenberg and Open Library cover artwork with an immediate generated fallback, and improve local covers without sending private ISBNs anywhere.
- Fix phone calendar month controls and replace the compressed backup picker with a clear, keyboard-accessible control.
- Refresh the bilingual guides and product screenshots for the second beta.

- Position Sela as a personal reader; introduce the default Linen reading room, eight material previews, companion/weather scenes and one public-to-footer visual world.
- Prioritize reading and ordered queues; add smart shelves, notebook export, journal, personal messages/impressions, ribbon labels, series ordering, travel checks and collection cards.
- Expand Explore to 22 source choices, named session-auth OPDS profiles, metadata-only edition links and ephemeral Read previews distinct from offline downloads.
- Add optional local full-library text search, dictionary packs/online translation, group presets, audio/embedded SMIL/rain ambience and manual conditional WebDAV backups with explicit conflict review.
- Synchronize app reader appearance, simplify document titles, animate panels/dialog exits, preserve nested-dialog Escape and filter import formats.
- Refresh bilingual documentation, real product captures and provider/runtime limitations.

- Replace mobile catalog/action labels with accessible local icon controls; unify filters in a native bottom sheet and fix focus return on WebKit.
- Add dimensional navigation/app icons and Walnut, Oak and Linen material themes, including offline and standalone viewer assets.
- Replace public hero artwork and README preview with real app captures in CSS device frames; remove superseded artwork and duplicate worker output.
- Add optional host command, loader, renderer, annotation storage, dictionary/translation and privacy-safe debug contracts.
- Bound initial shelves to 80-book batches while retaining complete-library search; add 1,000-book regression coverage.
- Bound untrusted HTML/EPUB depth and node counts; add deterministic ZIP corruption corpus, large-text/reopen and malicious-HTML checks.
- Preserve runtime import directives in minified SDK bundles for Next/Turbopack; validate Next, Nuxt, Svelte, Angular, CI3, CI4 and Laravel hosts.

- Adopt Vite 8, Astro 7, React 19 and TypeScript 7; preserve the separate framework-independent SDK and static public page.
- Upgrade PDF.js to 6.4.299 with matching legacy/modern workers, local font/CMap/WASM/ICC resources and loading-task cleanup.
- Move EPUB/CBZ/Office extraction and format detection into cancellable workers; expand strict ZIP, preference, metadata and PDF-loader types.
- Add repeatable browser lifecycle, heap, frame, long-task and canvas profiling plus worker cancellation/security regression tests.

- Build public and reader pages from strict TypeScript/TSX components into static HTML; preserve SEO metadata, page contracts and browser asset URLs without public-page hydration.
- Add typed lifecycle/progress subscriptions, File/Blob sources, inline mount and theme controls while preserving legacy events and methods.
- Add optional typed host extensions with cleanup and bounded diagnostics; add CI4, Next.js and Nuxt integration examples.
- Introduce local shared material tokens, floating capsule navigation, keyboard controls, cover transitions, reduced-motion fallbacks and app-only reader Back handling.
- Extend strict checks to gesture, appearance, download and new shell contracts; release rejected catalog download streams and stylesheet listeners.

- Migrate viewer, application, service workers, tooling, browser/unit tests and the Web Component example to TypeScript sources.
- Generate browser assets at existing URLs and emit SDK declarations from the TypeScript public contract; add project-wide browser/worker checks to CI.
- Require Node.js 22.18+ for TypeScript development tooling; browser/CDN consumers retain their existing setup.

- Begin incremental source type checking with a strict JSDoc byte-loader contract and CI check.
- Release rejected document response bodies and stream locks; preserve read errors when cancellation fails and check input limits before copying.
- Clean up PDF worker ports and Blob URLs when initialization or task destruction fails.
- Add resource-loading regression tests and a Next Generation architecture audit.

## 0.9.0-beta.0 — Initial release

Sela is a standalone, open-source reading application and embeddable viewer. This beta is the project's first release.

### Sela Books

- Installable web app for desktop, tablet and phone, with responsive side/bottom navigation and a private local library.
- Offline books, saved progress, favorites, sorting, filters and grid, compact list or wooden bookshelf views.
- Collections, multi-book membership and bulk actions; editable publishing metadata and original-file export.
- Validated ZIP backup/restore of books, reading data, collections and personal profiles; manual backup sharing where supported.
- Explore open classics, Indonesian Wikisource and compatible OPDS catalogs; read and save supported acquisitions inside Sela.
- Reading timer, library summaries, clock and optional city-based weather.
- PWA install guidance, offline shell, update notifications and guarded activation while reading or handling files.

### Reading experience

- PDF, EPUB, CBZ, TXT, Markdown, HTML, FB2 and text-oriented DOCX/ODT; optional externally supplied DjVu decoder.
- Book spreads and page turns, single page, scroll, seamless webtoon and right-to-left manga modes.
- Touch gestures, keyboard navigation, zoom, fit controls, previews, contents and personal bookmarks.
- Light, dark and system appearance; Rimba, Lontar, Nila, Seroja and Jelaga OLED palettes.
- Reading filters, brightness, dimming, paper texture and typography controls.
- Novel, Manga, Study and Night profiles, plus personal presets saved per book and included in backups.
- Document search, extractable text, contextual quote/highlight actions, page notes and browser/OS text-to-speech.
- Screenshot and quote cards with book metadata, downloadable or shareable through supported device menus.
- Optional screen wake/orientation lock, accessible icon controls and reduced-motion behavior.

### Sela Viewer

- Lightweight JavaScript CDN and ESM entries with TypeScript declarations and a Vue adapter.
- Framework-independent examples, inline embeds and fullscreen overlays using the same responsive reading interface.
- Lazy adapters and PDF.js assets, bounded rendering, authenticated document requests and self-hosted assets.
- One release-version authority in package.json generates runtime, headers, metadata, manifests and CDN examples.

### License and beta limits

MIT licensed, with third-party notices and decoder licenses preserved. Browser capabilities, document fidelity, offline storage and narration vary by platform. See the format, compatibility, backup and installation guides. Scan OCR, content DRM and unsupported ebook formats are not included.
