Extension Refactor Tracker

Present

2-min readUpdated May 22, 2026

Copied Raw Markdown!
Copied copy relative path!

Date: 2026-05-15

DoneURL copied

  • Task
    Add real extension contract in vyasa/extensions.py
  • Task
    Switch built-ins to EXTENSION.register(app)
  • Task
    Remove markdown hard-coded fence fallbacks
  • Task
    Move Mermaid/D2/Cytograph/Tasks/Cryptograph render ownership into extension modules
  • Task
    Move bookmarks and annotations route/storage wiring out of core.py
  • Task
    Move search and RBAC admin route registration behind extensions
  • Task
    Serve slide assets from extension-owned URLs under /static/extensions/...

NextURL copied

  • Task
    Split vyasa/static/scripts.js into:
    • Task
      shell bootstrap
    • Task
      extensions_builtin/mermaid/static/mermaid.js
    • Task
      extensions_builtin/d2/static/d2.js
    • Task
      extensions_builtin/tasks/static/tasks.js
    • Task
      extensions_builtin/bookmarks/static/bookmarks.js
    • Task
      extensions_builtin/annotations/static/annotations.js
  • Task
    Shrink global script include to shell-only bootstrap
  • Task
    Register real asset bundles for Mermaid/D2/Tasks/Bookmarks/Annotations instead of pointing back at global scripts.js
  • Task
    Move feature CSS out of vyasa/static/header.css into extension static/*.css
  • Task
    Emit requested extension bundles from runtime/asset collector instead of relying on always-on global assets
  • Task
    Make static build copy and reference extension assets, not just package static/
  • Task
    Make static build consume requested runtime bundles per page/route

LaterURL copied

  • Task
    EXT-035 document type ownership
    • Task
      Gate .pdf and .tree visibility through owner extensions (pdf_viewer, tree_table)
    • Task
      Cover disabled type behavior in content tree, search, and static tree tests
    • Task
      Move raw/download ownership fully behind the document/file owner path in EXT-023
  • Task
    Move remaining core-owned route surfaces behind extensions where justified:
    • Task
      sidebar lazy/search branch helpers
    • Task
      raw markdown/download/static attachment routes
    • Task
      optional auth adjunct routes
  • Task
    Replace vyasa/extensions_builtin/themes/__init__.py re-export shim with real moved theme package
  • Task
    Revisit agent.py as optional extension
  • Task
    Add contract tests for asset bundle emission and extension static build parity