app.ts
typescript
sha256:34035d72cef530c1ab9d6a6f53be18d803dde705fc3157617d70352a96d0747b
Merge branch 'fix/wire-push-external-parent-manifest' into dev
Human
9 days ago
| 1 | /** |
| 2 | * app.ts — MuseHub frontend entry point. |
| 3 | * |
| 4 | * Bundled by esbuild into static/app.js (IIFE format). |
| 5 | * Each module attaches its public API to `window` for use in |
| 6 | * Jinja2 templates that call e.g. togglePlay(), saveToken(), etc. |
| 7 | * |
| 8 | * Page modules register on window.MusePages and are dispatched by |
| 9 | * musehub.ts → dispatchPageModule() after every page load / HTMX swap. |
| 10 | */ |
| 11 | |
| 12 | import './musehub.ts'; |
| 13 | import './alpine-components.ts'; |
| 14 | |
| 15 | import { initRepoPage } from './pages/repo-page.ts'; |
| 16 | import { initIssueList } from './pages/issue-list.ts'; |
| 17 | import { initNewRepo } from './pages/new-repo.ts'; |
| 18 | import { initCommitDetail } from './pages/commit-detail.ts'; |
| 19 | import { initUserProfile } from './pages/user-profile.ts'; |
| 20 | import { initProposalDetail } from './pages/proposal-detail.ts'; |
| 21 | import { initCommits } from './pages/commits.ts'; |
| 22 | import { initIssueDetail } from './pages/issue-detail.ts'; |
| 23 | import { initReleaseDetail } from './pages/release-detail.ts'; |
| 24 | import { initDomainDetail } from './pages/domain-detail.ts'; |
| 25 | import { initDiff } from './pages/diff.ts'; |
| 26 | import { initSettings } from './pages/settings.ts'; |
| 27 | import { initExplore } from './pages/explore.ts'; |
| 28 | import { initBranches } from './pages/branches.ts'; |
| 29 | import { initTags } from './pages/tags.ts'; |
| 30 | import { initSessions } from './pages/sessions.ts'; |
| 31 | import { initReleaseList } from './pages/release-list.ts'; |
| 32 | import { initBlob } from './pages/blob.ts'; |
| 33 | import { initTree } from './pages/tree.ts'; |
| 34 | import { initMcpDocs } from './pages/mcp-docs.ts'; |
| 35 | import { initDomains } from './pages/domains.ts'; |
| 36 | import { initTopics } from './pages/topics.ts'; |
| 37 | import { initProposalList } from './pages/proposal-list.ts'; |
| 38 | import { initSymbols } from './pages/symbols.ts'; |
| 39 | import { initFeed } from './pages/feed.ts'; |
| 40 | import { initTimeline } from './pages/timeline.ts'; |
| 41 | import { initActivity } from './pages/activity.ts'; |
| 42 | import { initMistList } from './pages/mist-list.ts'; |
| 43 | import { initMistDetail } from './pages/mist-detail.ts'; |
| 44 | import { initDocs } from './pages/docs.ts'; |
| 45 | import { initAgentsCoord } from './pages/agents-coord.ts'; |
| 46 | import { initBlame } from './pages/blame.ts'; |
| 47 | |
| 48 | // Register page modules — keyed by the "page" field in the #page-data JSON. |
| 49 | type PageData = Record<string, unknown>; |
| 50 | |
| 51 | const MusePages: Record<string, (data: PageData) => void | Promise<void>> = { |
| 52 | 'repo': (d) => initRepoPage(d), |
| 53 | 'issue-list': (d) => initIssueList(d), |
| 54 | 'new-repo': (d) => initNewRepo(d), |
| 55 | 'commit-detail': () => initCommitDetail(), |
| 56 | 'user-profile': (d) => void initUserProfile(d), |
| 57 | 'global-search': () => {}, |
| 58 | 'proposal-detail': (d) => initProposalDetail(d), |
| 59 | 'commits': (d) => initCommits(d), |
| 60 | 'issue-detail': (d) => initIssueDetail(d), |
| 61 | 'release-detail': (d) => initReleaseDetail(d), |
| 62 | 'domain-detail': (d) => initDomainDetail(d), |
| 63 | 'diff': () => initDiff(), |
| 64 | 'settings': (d) => initSettings(d), |
| 65 | 'explore': () => initExplore(), |
| 66 | 'branches': () => initBranches(), |
| 67 | 'tags': () => initTags(), |
| 68 | 'sessions': () => initSessions(), |
| 69 | 'release-list': () => initReleaseList(), |
| 70 | 'blob': (d) => initBlob(d), |
| 71 | 'tree': (d) => initTree(d), |
| 72 | 'mcp-docs': () => initMcpDocs(), |
| 73 | 'domains': () => initDomains(), |
| 74 | 'topics': (d) => initTopics(d), |
| 75 | 'proposal-list': (d) => initProposalList(d), |
| 76 | 'symbols': () => initSymbols(), |
| 77 | 'feed': () => initFeed(), |
| 78 | 'timeline': (d) => initTimeline(d), |
| 79 | 'activity': () => initActivity(), |
| 80 | 'mist-list': (d) => initMistList(d), |
| 81 | 'mist-detail': (d) => initMistDetail(d), |
| 82 | 'docs': () => initDocs(), |
| 83 | 'docs-getting-started': () => initDocs(), |
| 84 | 'docs-wire': () => initDocs(), |
| 85 | 'docs-mcp': () => initDocs(), |
| 86 | 'docs-shelves': () => initDocs(), |
| 87 | 'docs-coordination': () => initDocs(), |
| 88 | 'docs-harmony': () => initDocs(), |
| 89 | 'docs-foundations': () => initDocs(), |
| 90 | 'docs-domains': () => initDocs(), |
| 91 | 'docs-api': () => initDocs(), |
| 92 | 'docs-intelligence': () => initDocs(), |
| 93 | 'docs-identity': () => initDocs(), |
| 94 | 'docs-mists': () => initDocs(), |
| 95 | 'docs-profiles': () => initDocs(), |
| 96 | 'agents-coord': (d) => initAgentsCoord(d), |
| 97 | 'blame': (d) => initBlame(d), |
| 98 | }; |
| 99 | |
| 100 | // Attach to window so musehub.ts dispatchPageModule() can reach it. |
| 101 | (window as unknown as { MusePages: typeof MusePages }).MusePages = MusePages; |
| 102 | |
| 103 | // ── Theme toggle ────────────────────────────────────────────────────────────── |
| 104 | // Delegated to document — survives hx-boost body swaps without rebinding. |
| 105 | |
| 106 | import { initThemeBtn, applyStoredTheme } from './theme'; |
| 107 | applyStoredTheme(); |
| 108 | initThemeBtn(); |
File History
14 commits
sha256:34035d72cef530c1ab9d6a6f53be18d803dde705fc3157617d70352a96d0747b
Merge branch 'fix/wire-push-external-parent-manifest' into dev
Human
9 days ago
sha256:fc04e4cae9e1774d6a21b65c45daeed0e6787eb581d13aa1b03bfe9384a34226
Merge branch 'fix/two-column-scroll-layout' into dev
Human
9 days ago
sha256:408916fc5973ba59c6e4eebaa80ebdcc801c0a63205651e25009d11548f79454
chore: bump version to 0.2.0.dev2 — nightly.2, matching muse
Sonnet 4.6
patch
12 days ago
sha256:d035733f21ccff27735fddebfbbe0ed24565a32a22db8de5885402262671ecd2
chore: bump version to 0.2.0rc15 for musehub#113 fix release
Sonnet 4.6
patch
15 days ago
sha256:0032d6cfa33bc3c8367436ad768e7dd0e339b4332153160247da8266cb5fa352
Merge branch 'task/version-tags-phase3-server' into dev
Human
17 days ago
sha256:4669620efda9ff41c55bdefd1f7bfe1c239d468428744c84ead9957e5a003a53
merge: rescue snapshot-recovery hardening (c00aa21d) into d…
Opus 4.8
minor
⚠
30 days ago
sha256:a59da49c4611b970fc4b6ae48678ce4943261c213a07ddbd73ce9201df869b4a
fix: remove false-positive proposal_comments index drop fro…
Sonnet 4.6
patch
34 days ago
sha256:0a240d6dbff234f07d98a28a4a9a68db702f3f9ff9260196f24219bdb1c0b6f3
feat: render markdown mists as HTML with heading anchor links
Sonnet 4.6
patch
35 days ago
sha256:24a7d47486ebc4ebd1832830580e177ec6f877b48dced8c000e198cdec4ce9d6
Merge 'task/bump-version-rc12' into 'dev' — proposal: Bump …
Human
36 days ago
sha256:b9ff931d147e0114a1f17060f415b89ed551c170a91ff226c70437aa5c85f9ee
Merge 'task/bump-version-rc12' into 'dev' — proposal: Bump …
Human
36 days ago
sha256:d1122d21e73471879b460037b22c0b50fded7c423444a176f248428f75dac39c
Merge 'task/fix-issue-pagination-cursor' into 'dev' — propo…
Human
36 days ago
sha256:01e18975e73d2b3cd5b6db7929c895bef9aa6e0d4391dc5b2adfc548b41318dd
Merge 'feat/adding-debug-logs-to-staging' into 'dev' — prop…
Human
36 days ago
sha256:6b1949fc2797ca4c1936a637a4cbfec828ef56cf52398a2e74ca3c4f494e728f
fix: use wire_bytes not mpack_bytes_raw in compute_object_b…
Sonnet 4.6
patch
48 days ago
sha256:b99f2455dc346966d040133f5203297e6e3ef5803a93728a2c30568d0a0f7583
rename: delta_add → delta_upsert across wire format, models…
Sonnet 4.6
patch
50 days ago