Core DevPre-alpha
Web layer
Authenticated shell pages load swc.js (TypeScript 7) with window.__SWC_BOOTSTRAP__. The workspace mounts at #swc-workspace; Home, Apps, and Settings keep server-rendered HTML inner content via Go templates.
SWC (workspace + shell chrome)
| Piece | Location |
|---|---|
| Client source | core/swc/ |
| Shell chrome (activity, pins, sidebar) | core/swc/src/shell/ |
| Top bar apps | Only user-pinned modules (core.user.pinned_apps); pin/unpin from Home (/web/home) |
| Production bundle | core/engine/assets/swc/swc.js |
| Bootstrap | window.__SWC_BOOTSTRAP__ in base.html (all authenticated shell pages) |
| Workspace JSON | GET /web/swc/workspace |
| View serializer | core/engine/swcmeta/ |
| Data | POST /api/rpc |
Build: make swc, make swc-check, make swc-test.
See SWC architecture, SWC widgets, and SWC API.
Handlers and templates
HTTP handlers under core/server/web/ build render.PageData and execute core/engine/templates/base.html for shell chrome (top bar, sidebar, breadcrumbs).
Render package (core/engine/render/)
After the SWC cutover, render/ owns shell page assembly (page.go, menus.go, branding.go, swc_page.go) — not HTML form/list/kanban builders (removed). Import rules: core/engine/render/doc.go.
Assets
- Stylesheets:
core/engine/assets/css/(sum-*classes used by SWC components) - Per-addon
static/css/theme-overrides.css→/static/addon-css/.css - Shell interactivity (activity panel, menu pins, home pins, sidebar) lives in
core/swc/— no separateassets/js/tree
More detail: sumeru/README.md (UI section).