refactor: modularize app.js into ES module architecture #437
Closed
perplexity
wants to merge 106 commits from
claude/modularization-phase-1 into main
pull from: claude/modularization-phase-1
merge into: Timmy_Foundation:main
Timmy_Foundation:main
Timmy_Foundation:autogenesis/phase-i-architecture-spec
Timmy_Foundation:claw-code/issue-831
Timmy_Foundation:feat/dynamic-sovereign-health-hud
Timmy_Foundation:improvement/sovereign-nexus-v1
Timmy_Foundation:allegro/burn-mode-manual
Timmy_Foundation:refactor/nexus-gateway-improvements
Timmy_Foundation:rescue/local-main-20260405-checkin
Timmy_Foundation:feat/issue-712-portal-atlas
Timmy_Foundation:allegro/evennia-bridge
Timmy_Foundation:ezra/deep-dive-architecture-20260405
Timmy_Foundation:claude/issue-824
Timmy_Foundation:claude/issue-825
Timmy_Foundation:claude/issue-828
Timmy_Foundation:claude/issue-815
Timmy_Foundation:claude/issue-770
Timmy_Foundation:gemini/nexus-watchdog
Timmy_Foundation:feat/sovereign-evolution-redistribution
Timmy_Foundation:gemini/fix-syntax-errors
Timmy_Foundation:feat/gemini-tts
Timmy_Foundation:feature/sovereignty-and-calibration-1774905256914
Timmy_Foundation:gemini/nexus-full-update-1774886830444
Timmy_Foundation:sovereign-nexus-pse-1774840209671
Timmy_Foundation:sovereign-nexus-l402-nostr-1774840051948
Timmy_Foundation:sovereign-nexus-1774839862843
Timmy_Foundation:gofai-htn-1774839369160
Timmy_Foundation:gofai-local-efficiency-1774839180902
Timmy_Foundation:gofai-phase4-meta-1774838654482
Timmy_Foundation:gofai-phase3-bridge-1774838643214
Timmy_Foundation:gofai-fuzzy-cbr
Timmy_Foundation:gofai-symbolic-planner
Timmy_Foundation:gofai-knowledge-blackboard
Timmy_Foundation:sovereign-symbolic-ai
Timmy_Foundation:feat/google-ai-ultra-integration
Timmy_Foundation:nexus-heartbeat-sot
Timmy_Foundation:codex/evennia-ws-feed
Timmy_Foundation:gemini/issue-685
Timmy_Foundation:gemini/issue-686
Timmy_Foundation:gemini/issue-687
Timmy_Foundation:gemini/issue-682
Timmy_Foundation:gemini/issue-672
Timmy_Foundation:gemini/issue-673
Timmy_Foundation:gemini/issue-675
Timmy_Foundation:gemini/issue-674
Timmy_Foundation:perplexity/contributing-policy
Timmy_Foundation:perplexity/nexus-mind-seed
Timmy_Foundation:perplexity/ws-agent-bridge
Timmy_Foundation:tests/smoke-suite
Timmy_Foundation:reference/v2-modular
Timmy_Foundation:grok/issue-431
Timmy_Foundation:gemini/issue-431
No Reviewers
Labels
Clear labels
222-epic
3d-world
actionable
agent-presence
aistudio-ready
assigned-aistudio
assigned-claude
assigned-claw-code
assigned-gemini
assigned-groq
assigned-kimi
assigned-kimi
assigned-perplexity
claude-ready
claw-code-done
claw-code-in-progress
deprioritized
duplicate
epic
gemini-api
gemini-review
google-ai-ultra
groq-ready
harness
identity
infrastructure
kimi-done
kimi-in-progress
kimi-ready
media-gen
modularization
needs-design
nostr
p0-critical
p1-important
p2-backlog
performance
perplexity-ready
portal
research
sovereignty
velocity-engine
Queued for Code Claw (qwen/openrouter)
Dispatched to Kimi via OpenClaw
Code Claw completed this task
Code Claw is actively working
Epic / umbrella issue
Gemini API integration
Google AI Ultra integration work
Timmy identity and branding
Kimi completed this task
Kimi is actively working on this
AI media generation (image/video/audio)
Deep research and planning tasks
Auto-generated by velocity engine
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
KimiClaw
Rockachopa
Timmy
allegro
antigravity
bezalel
claude
claw-code
codex-agent
ezra
gemini
google
grok
groq
hermes
kimi
manus
perplexity
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Timmy_Foundation/the-nexus#437
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "claude/modularization-phase-1"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Split the monolithic 5393-line
app.jsinto 32 focused ES modules undermodules/with a thin ~330-line orchestrator. No bundler required — runs in-browser via the existing import map inindex.html.Module Architecture
core/data/terrain/effects/panels/portals/narrative/utils/Key Design Decisions
state.jsdata bus: All data modules write to a shared reactive state object; visual modules read from itticker.jssubscriber pattern: Single RAF loop — modules subscribe rather than calling requestAnimationFrame directlyscene.jsowns post-processing: EffectComposer, BokehPass, and WarpShader live in scene.js since they're tightly coupled with renderer setupws-client.jsimport preserved: Line 57 of new app.js imports ws-client.js unchangedData Integrity Audit
data/gitea.jsdata/gitea.js→panels/agent-board.jsdata/gitea.js→narrative/bookshelves.jsdata/weather.jsdata/bitcoin.jsdata/loaders.js→panels/sovereignty.jsportals/portal-system.jsnarrative/oath.jsws-client.js(unchanged)data/gitea.js(HEATMAP_ZONES)Test Plan
node --check app.jspasses (verified)node --checkpasses on all 32 module files (verified)🤖 Generated with Claude Code
Excellent modularization work! Architecture looks solid. However, merge conflicts are preventing merge. Please rebase against main and resolve conflicts.
Pull request closed