Skip to content

docs: Write memory bank documents for each subsystem - #269

Merged
schloerke merged 1 commit into
schloerke/memory-bankfrom
schloerke/memory-bank-docs
Nov 2, 2026
Merged

schloerke merged 1 commit into
schloerke/memory-bankfrom
schloerke/memory-bank-docs

Conversation

@schloerke

@schloerke schloerke commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

Fills the memory bank from the stack's previous PR with one document per subsystem. Each was written from the current code and points to files and function names, not line numbers.

  • requestFlow.md: how app HTTP and WebSocket traffic reaches the engine with no server. Covers service worker registration, /app_<id>/ routing, fetchASGI, the injected socket shim, COOP/COEP/CORP headers, and caching.
  • pythonEngine.md: how Pyodide starts, the worker and main-thread proxies, ResultType, the Python helpers that start and stop apps, how output reaches the terminal, and load status.
  • rEngine.md: how webR starts, the mounted shiny library image, .start_app and .shiny_tick, the httpuv request path, and how R differs from Python.
  • buildPipeline.md: what make all, scripts/build.ts, _shinylive, and make dist do, and how build/, site/, and _shinylive/ relate.
  • pythonPackageVersions.md (expanded): scripts/pyodide_packages.py, the three lock files, how wheel versions are set, libsass, and update_shiny.yml.
  • appModes.md: app modes, runApp() options, URL hash handling, share links, the examples index, and how each site_template/ page starts.
  • editorLanguageServer.md: the CodeMirror setup, per-file editor state, the in-browser Pyright worker and typeshed.en.json, and what R gets instead.
  • quartoAndExport.md: the files and formats the external shinylive packages and Quarto rely on, which must stay stable.
  • ciAndRelease.md: what each workflow runs, what gates the shinylive.io and GitHub Pages deploys, and how a release is cut.

Findings recorded in the docs that may be worth their own issues:

  • The quarto/ folder is gone, but README.md and make quarto / make quartoserve still refer to it.
  • runExportedApp accepts relPath and never uses it.
  • The "unused arguments" warning in runApp() can never fire, because propertyOfAppOptions returns its input.
  • The "already in Pyodide" check in update_pyodide_pyodide_lock_json looks at the top-level keys of the lock file, not at package names.

@schloerke
schloerke added this pull request to stack #268 November 2, 2026 20:11
@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Unit tests only — the pure-logic modules in src/. The React components, hooks, engine proxies and service worker are covered by the pytest + Playwright suites in tests/, which are not measured here.

Coverage report

St.❔
Category Percentage Covered / Total
🟢 Statements 100% 1994/1994
🟢 Branches 100% 400/400
🟢 Functions 100% 96/96
🟢 Lines 100% 1994/1994

Test suite run success

342 tests passing in 20 suites.

Report generated by 🧪jest coverage report action from e88d514

@schloerke
schloerke removed this pull request from stack #268 November 2, 2026 21:36
@schloerke
schloerke added this pull request to stack #272 November 2, 2026 21:37
@schloerke
schloerke merged commit 555962d into main Nov 2, 2026
19 checks passed
@schloerke
schloerke deleted the schloerke/memory-bank-docs branch November 2, 2026 21:45
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.

1 participant