@vib3code/sdk 2.0.1 → 2.0.3-canary.0a63e71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/DOCS/AGENT_HARNESS_ARCHITECTURE.md +245 -0
- package/DOCS/ANDROID_DEPLOYMENT.md +59 -0
- package/DOCS/ARCHITECTURE.md +1 -0
- package/DOCS/CI_TESTING.md +2 -0
- package/DOCS/CLI_ONBOARDING.md +3 -1
- package/DOCS/CONTROL_REFERENCE.md +2 -0
- package/DOCS/CROSS_SITE_DESIGN_PATTERNS.md +119 -0
- package/DOCS/ENV_SETUP.md +2 -0
- package/DOCS/EPIC_SCROLL_EVENTS.md +775 -0
- package/DOCS/EXPANSION_DESIGN.md +979 -0
- package/DOCS/EXPANSION_DESIGN_ULTRA.md +389 -0
- package/DOCS/EXPORT_FORMATS.md +2 -0
- package/DOCS/GPU_DISPOSAL_GUIDE.md +2 -0
- package/DOCS/HANDOFF_LANDING_PAGE.md +156 -0
- package/DOCS/HANDOFF_SDK_DEVELOPMENT.md +495 -0
- package/DOCS/LICENSING_TIERS.md +2 -0
- package/DOCS/MASTER_PLAN_2026-01-31.md +4 -2
- package/DOCS/MULTIVIZ_CHOREOGRAPHY_PATTERNS.md +939 -0
- package/DOCS/OBS_SETUP_GUIDE.md +2 -0
- package/DOCS/OPTIMIZATION_PLAN_MATH.md +119 -0
- package/DOCS/PRODUCT_STRATEGY.md +65 -0
- package/DOCS/PROJECT_SETUP.md +2 -0
- package/DOCS/README.md +105 -0
- package/DOCS/REFERENCE_SCROLL_ANALYSIS.md +99 -0
- package/DOCS/RENDERER_LIFECYCLE.md +2 -0
- package/DOCS/REPO_MANIFEST.md +2 -0
- package/DOCS/ROADMAP.md +113 -0
- package/DOCS/SCROLL_TIMELINE_v3.md +271 -0
- package/DOCS/SITE_REFACTOR_PLAN.md +102 -0
- package/DOCS/STATUS.md +26 -0
- package/DOCS/SYSTEM_INVENTORY.md +37 -32
- package/DOCS/TELEMETRY_EXPORTS.md +2 -0
- package/DOCS/VISUAL_ANALYSIS_CLICKERSS.md +87 -0
- package/DOCS/VISUAL_ANALYSIS_FACETAD.md +135 -0
- package/DOCS/VISUAL_ANALYSIS_SIMONE.md +97 -0
- package/DOCS/VISUAL_ANALYSIS_TABLESIDE.md +88 -0
- package/DOCS/WEBGPU_STATUS.md +121 -38
- package/DOCS/XR_BENCHMARKS.md +2 -0
- package/DOCS/archive/BLUEPRINT_EXECUTION_PLAN_2026-01-07.md +1 -0
- package/DOCS/archive/DEV_TRACK_ANALYSIS.md +1 -0
- package/DOCS/archive/DEV_TRACK_PLAN_2026-01-07.md +1 -0
- package/DOCS/archive/SESSION_014_PLAN.md +1 -0
- package/DOCS/archive/SESSION_LOG_2026-01-07.md +1 -0
- package/DOCS/archive/STRATEGIC_BLUEPRINT_2026-01-07.md +1 -0
- package/DOCS/archive/SYSTEM_AUDIT_2026-01-30.md +1 -0
- package/DOCS/archive/WEBGPU_STATUS_2026-02-15_STALE.md +1 -0
- package/DOCS/{DEV_TRACK_SESSION_2026-01-31.md → dev-tracks/DEV_TRACK_SESSION_2026-01-31.md} +3 -1
- package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-06.md +233 -0
- package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-13.md +129 -0
- package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-15.md +144 -0
- package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-16.md +110 -0
- package/DOCS/dev-tracks/PERF_UPGRADE_2026-02-16.md +310 -0
- package/DOCS/dev-tracks/README.md +12 -0
- package/README.md +26 -13
- package/cpp/CMakeLists.txt +236 -0
- package/cpp/bindings/embind.cpp +269 -0
- package/cpp/build.sh +129 -0
- package/cpp/geometry/Crystal.cpp +103 -0
- package/cpp/geometry/Fractal.cpp +136 -0
- package/cpp/geometry/GeometryGenerator.cpp +262 -0
- package/cpp/geometry/KleinBottle.cpp +71 -0
- package/cpp/geometry/Sphere.cpp +134 -0
- package/cpp/geometry/Tesseract.cpp +94 -0
- package/cpp/geometry/Tetrahedron.cpp +83 -0
- package/cpp/geometry/Torus.cpp +65 -0
- package/cpp/geometry/WarpFunctions.cpp +238 -0
- package/cpp/geometry/Wave.cpp +85 -0
- package/cpp/include/vib3_ffi.h +238 -0
- package/cpp/math/Mat4x4.cpp +409 -0
- package/cpp/math/Mat4x4.hpp +209 -0
- package/cpp/math/Projection.cpp +142 -0
- package/cpp/math/Projection.hpp +148 -0
- package/cpp/math/Rotor4D.cpp +322 -0
- package/cpp/math/Rotor4D.hpp +204 -0
- package/cpp/math/Vec4.cpp +303 -0
- package/cpp/math/Vec4.hpp +225 -0
- package/cpp/src/vib3_ffi.cpp +607 -0
- package/cpp/tests/Geometry_test.cpp +213 -0
- package/cpp/tests/Mat4x4_test.cpp +494 -0
- package/cpp/tests/Projection_test.cpp +298 -0
- package/cpp/tests/Rotor4D_test.cpp +423 -0
- package/cpp/tests/Vec4_test.cpp +489 -0
- package/docs/webgpu-live.html +1 -1
- package/package.json +41 -30
- package/src/agent/index.js +1 -3
- package/src/agent/mcp/MCPServer.js +1220 -144
- package/src/agent/mcp/index.js +1 -1
- package/src/agent/mcp/stdio-server.js +264 -0
- package/src/agent/mcp/tools.js +498 -31
- package/src/cli/index.js +431 -47
- package/src/core/CanvasManager.js +97 -204
- package/src/core/ErrorReporter.js +1 -1
- package/src/core/Parameters.js +1 -1
- package/src/core/VIB3Engine.js +93 -4
- package/src/core/VitalitySystem.js +53 -0
- package/src/core/index.js +18 -0
- package/src/core/renderers/FacetedRendererAdapter.js +10 -9
- package/src/core/renderers/HolographicRendererAdapter.js +13 -9
- package/src/core/renderers/QuantumRendererAdapter.js +11 -7
- package/src/creative/AestheticMapper.js +628 -0
- package/src/creative/ChoreographyPlayer.js +481 -0
- package/src/creative/index.js +11 -0
- package/src/experimental/GameLoop.js +72 -0
- package/src/experimental/LatticePhysics.js +100 -0
- package/src/experimental/LiveDirector.js +143 -0
- package/src/experimental/PlayerController4D.js +154 -0
- package/src/experimental/VIB3Actor.js +138 -0
- package/src/experimental/VIB3Compositor.js +117 -0
- package/src/experimental/VIB3Link.js +122 -0
- package/src/experimental/VIB3Orchestrator.js +146 -0
- package/src/experimental/VIB3Universe.js +109 -0
- package/src/experimental/demos/CrystalLabyrinth.js +202 -0
- package/src/export/TradingCardManager.js +3 -4
- package/src/export/index.js +11 -1
- package/src/faceted/FacetedSystem.js +260 -394
- package/src/games/glyph-war/GlyphWarVisualizer.js +641 -0
- package/src/geometry/generators/Crystal.js +2 -2
- package/src/geometry/warp/HypersphereCore.js +53 -24
- package/src/holograms/HolographicVisualizer.js +84 -98
- package/src/holograms/RealHolographicSystem.js +194 -43
- package/src/math/Mat4x4.js +308 -105
- package/src/math/Rotor4D.js +124 -40
- package/src/math/Vec4.js +200 -103
- package/src/math/index.js +7 -7
- package/src/polychora/PolychoraSystem.js +77 -0
- package/src/quantum/QuantumEngine.js +103 -66
- package/src/quantum/QuantumVisualizer.js +31 -22
- package/src/reactivity/index.js +3 -5
- package/src/render/LayerPresetManager.js +372 -0
- package/src/render/LayerReactivityBridge.js +344 -0
- package/src/render/LayerRelationshipGraph.js +610 -0
- package/src/render/MultiCanvasBridge.js +148 -25
- package/src/render/ShaderLoader.js +38 -0
- package/src/render/ShaderProgram.js +4 -4
- package/src/render/UnifiedRenderBridge.js +4 -1
- package/src/render/backends/WebGPUBackend.js +8 -4
- package/src/render/index.js +27 -2
- package/src/scene/Node4D.js +74 -24
- package/src/scene/index.js +4 -4
- package/src/shaders/common/geometry24.glsl +65 -0
- package/src/shaders/common/geometry24.wgsl +54 -0
- package/src/shaders/common/rotation4d.glsl +4 -4
- package/src/shaders/common/rotation4d.wgsl +2 -2
- package/src/shaders/common/uniforms.wgsl +15 -8
- package/src/shaders/faceted/faceted.frag.glsl +220 -80
- package/src/shaders/faceted/faceted.frag.wgsl +144 -90
- package/src/shaders/holographic/holographic.frag.glsl +28 -9
- package/src/shaders/holographic/holographic.frag.wgsl +112 -41
- package/src/shaders/quantum/quantum.frag.glsl +1 -0
- package/src/shaders/quantum/quantum.frag.wgsl +6 -4
- package/src/testing/ParallelTestFramework.js +2 -2
- package/src/ui/adaptive/renderers/webgpu/WebGPURenderer.ts +2 -2
- package/src/viewer/GalleryUI.js +17 -0
- package/src/viewer/ViewerPortal.js +2 -2
- package/src/viewer/index.js +1 -1
- package/tools/headless-renderer.js +258 -0
- package/tools/shader-sync-verify.js +14 -8
- package/tools/site-analysis/all-reports.json +32 -0
- package/tools/site-analysis/combined-analysis.md +50 -0
- package/tools/site-analyzer.mjs +779 -0
- package/tools/visual-catalog/capture.js +276 -0
- package/tools/visual-catalog/composite.js +138 -0
- package/types/adaptive-sdk.d.ts +204 -5
- package/types/agent/cli.d.ts +78 -0
- package/types/agent/index.d.ts +18 -0
- package/types/agent/mcp.d.ts +87 -0
- package/types/agent/telemetry.d.ts +190 -0
- package/types/core/VIB3Engine.d.ts +26 -0
- package/types/core/index.d.ts +261 -0
- package/types/creative/AestheticMapper.d.ts +72 -0
- package/types/creative/ChoreographyPlayer.d.ts +96 -0
- package/types/creative/index.d.ts +17 -0
- package/types/export/index.d.ts +243 -0
- package/types/geometry/index.d.ts +164 -0
- package/types/math/index.d.ts +214 -0
- package/types/render/LayerPresetManager.d.ts +78 -0
- package/types/render/LayerReactivityBridge.d.ts +85 -0
- package/types/render/LayerRelationshipGraph.d.ts +174 -0
- package/types/render/index.d.ts +3 -0
- package/types/scene/index.d.ts +204 -0
- package/types/systems/index.d.ts +244 -0
- package/types/variations/index.d.ts +62 -0
- package/types/viewer/index.d.ts +225 -0
- package/DOCS/BLUEPRINT_EXECUTION_PLAN_2026-01-07.md +0 -34
- package/DOCS/DEV_TRACK_ANALYSIS.md +0 -77
- package/DOCS/DEV_TRACK_PLAN_2026-01-07.md +0 -42
- package/DOCS/SESSION_014_PLAN.md +0 -195
- package/DOCS/SESSION_LOG_2026-01-07.md +0 -56
- package/DOCS/STRATEGIC_BLUEPRINT_2026-01-07.md +0 -72
- package/DOCS/SYSTEM_AUDIT_2026-01-30.md +0 -738
- /package/src/viewer/{ReactivityManager.js → ViewerInputHandler.js} +0 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
Last reviewed: 2026-02-17
|
|
2
|
+
|
|
3
|
+
# Development Session — 2026-02-06
|
|
4
|
+
|
|
5
|
+
**Session type**: Full codebase audit + hygiene + MCP server + agent docs + testing
|
|
6
|
+
**Branch**: `claude/project-review-planning-NWnhW`
|
|
7
|
+
**Operator**: Claude Code (Opus 4.6)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Session Overview
|
|
12
|
+
|
|
13
|
+
Two consecutive work phases:
|
|
14
|
+
|
|
15
|
+
1. **Phase A (Hygiene)**: Full 751-file audit, identified 9 bugs, fixed 8
|
|
16
|
+
2. **Phase B (Infrastructure)**: Bug fixes, test verification, real MCP server, agent packs, landing page
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Phase A — Codebase Audit + Hygiene
|
|
21
|
+
|
|
22
|
+
### Corrected from initial analysis
|
|
23
|
+
|
|
24
|
+
| Item | Initial Assessment | Verified Status |
|
|
25
|
+
|------|-------------------|----------------|
|
|
26
|
+
| npm publish | Assumed not done | **Published**: `@vib3code/sdk@2.0.1` live on npm (Feb 3) |
|
|
27
|
+
| CanvasManager.js | Assumed dead code | **Used by VIB3Engine** but API contract broken |
|
|
28
|
+
| `u_breath` in shader-verify | Assumed tool wrong | **Tool correct** — inline had it, external files didn't |
|
|
29
|
+
|
|
30
|
+
### Hygiene Fixes (Commit 1: `9e858a2`)
|
|
31
|
+
|
|
32
|
+
| # | Fix | File(s) | Severity |
|
|
33
|
+
|---|-----|---------|----------|
|
|
34
|
+
| 1 | CanvasManager rewrite to match VIB3Engine API | `src/core/CanvasManager.js` (217→110 lines) | CRITICAL |
|
|
35
|
+
| 2 | HolographicRendererAdapter import fix | `src/core/renderers/HolographicRendererAdapter.js:2` | CRITICAL |
|
|
36
|
+
| 3 | TradingCardManager broken import paths | `src/export/TradingCardManager.js:60-63` | HIGH |
|
|
37
|
+
| 4 | External shader u_breath sync | 4 shader files (GLSL + WGSL) | HIGH |
|
|
38
|
+
| 5 | Version strings unified to 2.0.1 | VIB3Engine, Parameters, ErrorReporter | MEDIUM |
|
|
39
|
+
| 6 | Viewer ReactivityManager renamed | `src/viewer/ViewerInputHandler.js` | MEDIUM |
|
|
40
|
+
| 7 | Stale package-lock.json removed | Root (-240 KB) | LOW |
|
|
41
|
+
| 8 | CHANGELOG v2.0.1 entries added | `CHANGELOG.md` | Docs |
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Phase B — Infrastructure + MCP + Testing
|
|
46
|
+
|
|
47
|
+
### Bug Fixes (Commit 2)
|
|
48
|
+
|
|
49
|
+
| # | Fix | File(s) | Lines |
|
|
50
|
+
|---|-----|---------|-------|
|
|
51
|
+
| 1 | FacetedSystem RendererContract compliance — added `init()`, `resize()`, `dispose()` | `src/faceted/FacetedSystem.js:588-600` | +13 |
|
|
52
|
+
| 2 | Holographic breath desync — removed independent fallback cycle | `src/holograms/HolographicVisualizer.js:954-958` | 3 changed |
|
|
53
|
+
| 3 | Test version assertion updated | `tests/e2e/SDK-Integration.test.js:292` | 1 line |
|
|
54
|
+
|
|
55
|
+
**Test Results**: 933/933 passing (43 test files, 0 failures)
|
|
56
|
+
|
|
57
|
+
### MCP Server (Option A — Real Protocol)
|
|
58
|
+
|
|
59
|
+
**New File**: `src/agent/mcp/stdio-server.js` (230 lines)
|
|
60
|
+
|
|
61
|
+
Implements proper JSON-RPC 2.0 over stdio per the Model Context Protocol spec:
|
|
62
|
+
|
|
63
|
+
| Feature | Status |
|
|
64
|
+
|---------|--------|
|
|
65
|
+
| `initialize` / `initialized` handshake | Working |
|
|
66
|
+
| `tools/list` — exposes all 19 tools with schemas | Working |
|
|
67
|
+
| `tools/call` — routes to MCPServer handlers | Working |
|
|
68
|
+
| `resources/list` — 4 documentation resources | Working |
|
|
69
|
+
| `resources/read` — serves CLAUDE.md, geometry summary, control ref, live state | Working |
|
|
70
|
+
| `ping` | Working |
|
|
71
|
+
| Error handling (parse errors, unknown methods, etc.) | Working |
|
|
72
|
+
|
|
73
|
+
**Tested**: All 3 protocol methods verified via stdio pipe.
|
|
74
|
+
|
|
75
|
+
**Binary added**: `vib3-mcp` in package.json bin section.
|
|
76
|
+
|
|
77
|
+
### Agent Documentation Pack
|
|
78
|
+
|
|
79
|
+
**New Directory**: `agent-config/`
|
|
80
|
+
|
|
81
|
+
| File | Purpose | Size |
|
|
82
|
+
|------|---------|------|
|
|
83
|
+
| `mcp-config.json` | Drop-in MCP client config for Claude Desktop / Cursor | Config |
|
|
84
|
+
| `README.md` | Complete setup instructions + tool reference | 2 KB |
|
|
85
|
+
| `claude-agent-context.md` | Precompiled context pack for Claude agents | 3 KB |
|
|
86
|
+
| `openai-agent-context.md` | OpenAI function calling schemas + integration guide | 4 KB |
|
|
87
|
+
|
|
88
|
+
### Dependencies
|
|
89
|
+
|
|
90
|
+
- `pnpm install --frozen-lockfile` — all deps installed successfully
|
|
91
|
+
- vitest 1.6.1, playwright 1.58.0, happy-dom 20.4.0 confirmed working
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Files Changed Summary (Both Phases)
|
|
96
|
+
|
|
97
|
+
### Phase A (Commit 1)
|
|
98
|
+
| File | Action |
|
|
99
|
+
|------|--------|
|
|
100
|
+
| `src/core/CanvasManager.js` | Rewritten (110 lines) |
|
|
101
|
+
| `src/core/renderers/HolographicRendererAdapter.js` | Import fix |
|
|
102
|
+
| `src/core/VIB3Engine.js` | Version: 1.2.0 → 2.0.1 |
|
|
103
|
+
| `src/core/Parameters.js` | Version: 1.0.0 → 2.0.1 |
|
|
104
|
+
| `src/core/ErrorReporter.js` | Version: 2.0.0 → 2.0.1 |
|
|
105
|
+
| `src/export/TradingCardManager.js` | Fixed imports |
|
|
106
|
+
| `src/shaders/quantum/quantum.frag.glsl` | +u_breath |
|
|
107
|
+
| `src/shaders/faceted/faceted.frag.glsl` | +u_breath |
|
|
108
|
+
| `src/shaders/quantum/quantum.frag.wgsl` | +breath field |
|
|
109
|
+
| `src/shaders/faceted/faceted.frag.wgsl` | +breath field |
|
|
110
|
+
| `src/viewer/ReactivityManager.js` → `ViewerInputHandler.js` | Renamed |
|
|
111
|
+
| `src/viewer/index.js` | Updated import |
|
|
112
|
+
| `package-lock.json` | Deleted |
|
|
113
|
+
| `CHANGELOG.md` | +v2.0.1 entries |
|
|
114
|
+
|
|
115
|
+
### Phase B (Commit 2)
|
|
116
|
+
| File | Action |
|
|
117
|
+
|------|--------|
|
|
118
|
+
| `src/faceted/FacetedSystem.js` | +init(), +resize(), +dispose() |
|
|
119
|
+
| `src/holograms/HolographicVisualizer.js` | Fixed breath desync |
|
|
120
|
+
| `tests/e2e/SDK-Integration.test.js` | Updated version assertion |
|
|
121
|
+
| `src/agent/mcp/stdio-server.js` | **NEW** — Real MCP server |
|
|
122
|
+
| `package.json` | +vib3-mcp binary |
|
|
123
|
+
| `agent-config/mcp-config.json` | **NEW** — MCP client config |
|
|
124
|
+
| `agent-config/README.md` | **NEW** — Agent setup guide |
|
|
125
|
+
| `agent-config/claude-agent-context.md` | **NEW** — Claude context pack |
|
|
126
|
+
| `agent-config/openai-agent-context.md` | **NEW** — OpenAI context pack |
|
|
127
|
+
| `index-v2.html` | **NEW** — Enhanced landing page (2100+ lines) |
|
|
128
|
+
| `DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-06.md` | Updated with Phase C |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Phase C — Enhanced Landing Page (Commit 3)
|
|
133
|
+
|
|
134
|
+
### `index-v2.html` — Choreographed Multi-Instance GSAP Showcase (2100+ lines)
|
|
135
|
+
|
|
136
|
+
A complete Canvas2D-based landing page with 10 concurrent visualizer instances showing all 3 systems:
|
|
137
|
+
|
|
138
|
+
| Section | Instances | Feature |
|
|
139
|
+
|---------|-----------|---------|
|
|
140
|
+
| **Hero** | 1x QuantumViz | Parallax inversion on scroll, density ramps up, 4D rotation increases |
|
|
141
|
+
| **Trinity** | 1x bg + 3x cards (Quantum/Faceted/Holographic) | Hover: card density decreases + speed freezes, bg density increases + matches hue, others mute |
|
|
142
|
+
| **Morph** | 3x (Faceted → Quantum → Holographic) | Scroll-locked pin, crossfade between systems, per-phase parameter animation |
|
|
143
|
+
| **Playground** | 1x FacetedViz | 12 live parameter sliders with real-time update |
|
|
144
|
+
| **Suck-Up** | 1x (dynamic) | Click card → visualizer animates from card position → expands to 90vw/90vh fullscreen |
|
|
145
|
+
|
|
146
|
+
### Key Technical Decisions
|
|
147
|
+
|
|
148
|
+
- **Canvas2D** (not WebGL) to avoid context limits with 10+ concurrent instances
|
|
149
|
+
- **IntersectionObserver** gates rendering to only visible canvases
|
|
150
|
+
- **30fps throttle** for battery-friendly performance
|
|
151
|
+
- **prefers-reduced-motion** support throughout (instant opacity, no animations)
|
|
152
|
+
- **ResizeObserver** per canvas for responsive DPR-aware sizing
|
|
153
|
+
- All 8 base geometries + 2 warp functions + 6D rotation implemented in JS
|
|
154
|
+
- GSAP ScrollTrigger for all scroll-locked choreography
|
|
155
|
+
|
|
156
|
+
### Agent-First Features in Landing Page
|
|
157
|
+
|
|
158
|
+
- "Download Agent Pack" button → generates claude-agent-context.md blob
|
|
159
|
+
- "CLAUDE.md" download button → generates project instructions
|
|
160
|
+
- "MCP Config" download → generates mcp-config.json
|
|
161
|
+
- Copy-to-clipboard install command
|
|
162
|
+
- MCP config code card with syntax highlighting
|
|
163
|
+
- Tool list with 7 key tools shown
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Test Health
|
|
168
|
+
|
|
169
|
+
| Metric | Value |
|
|
170
|
+
|--------|-------|
|
|
171
|
+
| **Unit test files** | 43 |
|
|
172
|
+
| **Test cases** | 933 passing, 0 failing |
|
|
173
|
+
| **Duration** | ~18s |
|
|
174
|
+
| **Covered modules** | Math (100%), Render (100%), Geometry (100%), Scene (100%), Agent/Telemetry (good), Creative (partial) |
|
|
175
|
+
| **Known gaps** | VIB3Engine, CanvasManager, Visualizers (direct), Viewer module, WebXR/WebGPU Compute/OffscreenWorker, Gallery, LLM, WASM loader |
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Exhale / Breath Feature Analysis
|
|
180
|
+
|
|
181
|
+
### What It Is
|
|
182
|
+
Global organic breathing cycle (VitalitySystem.js) — 6-second cosine wave oscillating 0→1→0, modulating all 3 visualization systems:
|
|
183
|
+
|
|
184
|
+
| System | Effect | Modulation Factor |
|
|
185
|
+
|--------|--------|------------------|
|
|
186
|
+
| Quantum | Lattice brightness pulse | +40% at full exhale |
|
|
187
|
+
| Faceted | Pattern intensity pulse | +30% at full exhale |
|
|
188
|
+
| Holographic | Projection expansion + glow + density | +20% / +10% / +40% |
|
|
189
|
+
|
|
190
|
+
### Bug Found & Fixed
|
|
191
|
+
HolographicVisualizer had independent fallback breath cycle (line 955-958) that ran out of sync when VitalitySystem value wasn't received. Fixed to use centralized value with 0.0 default.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Remaining Development Track
|
|
196
|
+
|
|
197
|
+
### Critical Path for Launch
|
|
198
|
+
|
|
199
|
+
| Priority | Item | Status |
|
|
200
|
+
|----------|------|--------|
|
|
201
|
+
| DONE | Real MCP server (JSON-RPC 2.0 over stdio) | `stdio-server.js` working |
|
|
202
|
+
| DONE | Agent documentation packs | Claude + OpenAI configs |
|
|
203
|
+
| DONE | All tests passing (933/933) | Verified |
|
|
204
|
+
| DONE | Enhanced landing page (index-v2.html) | Multi-instance GSAP showcase (2100+ lines) |
|
|
205
|
+
| NEXT | Claude Code skill (wraps MCP) | After landing page |
|
|
206
|
+
| NEXT | Test coverage for v2.0.0 modules | 18 modules at 0% |
|
|
207
|
+
|
|
208
|
+
### Short-Term
|
|
209
|
+
|
|
210
|
+
- WebGPU end-to-end verification
|
|
211
|
+
- Resolve duplicate CollectionManager
|
|
212
|
+
- Demo videos/GIFs
|
|
213
|
+
- Gallery app with shareable URLs
|
|
214
|
+
|
|
215
|
+
### Medium-Term
|
|
216
|
+
|
|
217
|
+
- API reference site (JSDoc → Docusaurus)
|
|
218
|
+
- Figma Community plugin publish
|
|
219
|
+
- Discord / community setup
|
|
220
|
+
- Interactive tutorial
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Project Health Snapshot
|
|
225
|
+
|
|
226
|
+
| Metric | Value |
|
|
227
|
+
|--------|-------|
|
|
228
|
+
| **npm package** | `@vib3code/sdk@2.0.1` (published) |
|
|
229
|
+
| **MCP server** | Working (JSON-RPC 2.0/stdio, 19 tools, 4 resources) |
|
|
230
|
+
| **Tests** | 933/933 passing |
|
|
231
|
+
| **Agent packs** | Claude + OpenAI configs ready |
|
|
232
|
+
| **Critical bugs fixed** | 5 (CanvasManager, HolographicAdapter, Faceted contract, breath desync, TradingCardManager) |
|
|
233
|
+
| **CI workflows** | 9 GitHub Actions |
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
Last reviewed: 2026-02-17
|
|
2
|
+
|
|
3
|
+
# Development Session — 2026-02-13
|
|
4
|
+
|
|
5
|
+
**Session type**: Agent Harness Implementation — MCP tools, ChoreographyPlayer, aesthetic mapping, headless rendering
|
|
6
|
+
**Branch**: `claude/clause-code-skill-0PV33`
|
|
7
|
+
**Operator**: Claude Code (Opus 4.6)
|
|
8
|
+
**Parent work**: Builds on Phase 7 agent-power tools added earlier this session (7 new MCP tools, 2 Claude Code skills)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Session Overview
|
|
13
|
+
|
|
14
|
+
This session had two phases:
|
|
15
|
+
|
|
16
|
+
### Phase 1 — Claude Code Skills + Initial Agent Tools (Commit 1)
|
|
17
|
+
|
|
18
|
+
- Created 2 Claude Code skills (`.claude/commands/vib3-design.md`, `.claude/commands/vib3-dev.md`)
|
|
19
|
+
- Added 7 new MCP tools (19 → 26): `describe_visual_state`, `batch_set_parameters`, `create_timeline`, `play_transition`, `apply_color_preset`, `set_post_processing`, `create_choreography`
|
|
20
|
+
- Created agent harness architecture doc (`DOCS/AGENT_HARNESS_ARCHITECTURE.md`)
|
|
21
|
+
- Added `.claude/settings.json` with shader validation pre-commit hook
|
|
22
|
+
|
|
23
|
+
### Phase 2 — Harness Runtime Implementation (Commit 2)
|
|
24
|
+
|
|
25
|
+
Implementing the concrete runtime pieces described in `DOCS/AGENT_HARNESS_ARCHITECTURE.md`:
|
|
26
|
+
|
|
27
|
+
1. **`capture_screenshot` MCP tool** — Composites all 5 canvas layers → base64 PNG
|
|
28
|
+
2. **`ChoreographyPlayer`** — Runtime class that plays back `create_choreography` JSON specs, manages scene transitions, per-scene timelines, system switching
|
|
29
|
+
3. **`AestheticMapper`** — Text-description → parameter range mapping with 60+ vocabulary words across 6 categories (emotions, styles, colors, motion, depth, geometry)
|
|
30
|
+
4. **`design_from_description` MCP tool** — Uses AestheticMapper to convert natural language to params
|
|
31
|
+
5. **`play_choreography` MCP tool** — Loads and plays choreography specs with play/pause/stop/seek
|
|
32
|
+
6. **`control_timeline` MCP tool** — Controls previously created ParameterTimeline instances
|
|
33
|
+
7. **`get_aesthetic_vocabulary` MCP tool** — Lists all known descriptor words by category
|
|
34
|
+
8. **Headless renderer** — Puppeteer-based CLI tool for capturing frames without a browser
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Files Created
|
|
39
|
+
|
|
40
|
+
| File | Purpose | ~Lines |
|
|
41
|
+
|------|---------|--------|
|
|
42
|
+
| `.claude/commands/vib3-design.md` | Design/navigation Claude Code skill | 350 |
|
|
43
|
+
| `.claude/commands/vib3-dev.md` | Development/expansion Claude Code skill | 350 |
|
|
44
|
+
| `.claude/settings.json` | Shader validation pre-commit hook | 15 |
|
|
45
|
+
| `DOCS/AGENT_HARNESS_ARCHITECTURE.md` | Agent harness roadmap document | 200 |
|
|
46
|
+
| `DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-13.md` | This file | — |
|
|
47
|
+
| `src/creative/ChoreographyPlayer.js` | Multi-scene choreography playback runtime | 380 |
|
|
48
|
+
| `src/creative/AestheticMapper.js` | Text-description → VIB3+ parameter mapping | 500 |
|
|
49
|
+
| `tools/headless-renderer.js` | Puppeteer headless frame capture CLI | 220 |
|
|
50
|
+
|
|
51
|
+
## Files Modified
|
|
52
|
+
|
|
53
|
+
| File | Change | Risk |
|
|
54
|
+
|------|--------|------|
|
|
55
|
+
| `src/agent/mcp/tools.js` | Added 12 new tool definitions (total: 31) | LOW — additive only, all appended at end |
|
|
56
|
+
| `src/agent/mcp/MCPServer.js` | Added 3 imports + 10 new handler methods + 5 new switch cases | LOW — additive only |
|
|
57
|
+
| `agent-config/README.md` | Updated tool count (31) and table with new categories | LOW — docs only |
|
|
58
|
+
| `agent-config/claude-agent-context.md` | Updated version, added power/choreography workflows, aesthetic vocabulary | LOW — docs only |
|
|
59
|
+
|
|
60
|
+
## MCP Tool Inventory (31 total)
|
|
61
|
+
|
|
62
|
+
| Phase | Tools Added | Count |
|
|
63
|
+
|-------|------------|-------|
|
|
64
|
+
| Original | get_sdk_context, verify_knowledge, create_4d_visualization, set_rotation, set_visual_parameters, switch_system, change_geometry, get_state, randomize_parameters, reset_parameters, save_to_gallery, load_from_gallery, search_geometries, get_parameter_schema | 14 |
|
|
65
|
+
| Phase 6.5 | set_reactivity_config, get_reactivity_config, configure_audio_band, export_package | 4 |
|
|
66
|
+
| Phase 6.6 | apply_behavior_preset, list_behavior_presets | 2 |
|
|
67
|
+
| Phase 7 | describe_visual_state, batch_set_parameters, create_timeline, play_transition, apply_color_preset, set_post_processing, create_choreography | 7 |
|
|
68
|
+
| Phase 7.1 | capture_screenshot, design_from_description, get_aesthetic_vocabulary, play_choreography, control_timeline | 4 |
|
|
69
|
+
|
|
70
|
+
## Potential Conflicts with Parallel Work
|
|
71
|
+
|
|
72
|
+
| File | Conflict Zone | Resolution |
|
|
73
|
+
|------|--------------|------------|
|
|
74
|
+
| `src/agent/mcp/tools.js` | End of `toolDefinitions` object (lines 648+) | Take both — all additions are appended after `list_behavior_presets` |
|
|
75
|
+
| `src/agent/mcp/MCPServer.js` | Switch statement (lines 166-197), new methods (lines 1345+) | Take both — new switch cases + methods at end of class |
|
|
76
|
+
| `agent-config/README.md` | Tool count number and table | Manual merge — update count, combine tables |
|
|
77
|
+
| `agent-config/claude-agent-context.md` | Workflow section | Manual merge — keep both workflow blocks |
|
|
78
|
+
| `package.json` | Only if parallel work adds exports | Our changes don't touch package.json |
|
|
79
|
+
| `src/creative/` | New files only | No conflict — `ChoreographyPlayer.js` and `AestheticMapper.js` are new |
|
|
80
|
+
|
|
81
|
+
### Phase 3 — Tests, Skills Update, Example Choreographies (Commit 3)
|
|
82
|
+
|
|
83
|
+
Completing the harness work with tests, skill updates, and example content:
|
|
84
|
+
|
|
85
|
+
1. **Updated `.claude/commands/vib3-design.md`** — Added 4 new workflows: Natural Language Design (Workflow 1), Multi-Scene Choreography (Workflow 6), Agent Visual Feedback Loop (Workflow 7), re-numbered existing workflows; updated tool count (19→31), file references, "When User Says" table with new tool mappings
|
|
86
|
+
2. **Updated `.claude/commands/vib3-dev.md`** — Added ChoreographyPlayer and AestheticMapper to creative tooling table, updated tool count (19→31), test count (4→6)
|
|
87
|
+
3. **ChoreographyPlayer tests** (`tests/creative/ChoreographyPlayer.test.js`, 29 tests) — constructor, load, getState, seek, seekToPercent, scene transitions, stop, destroy, COLOR_PRESET_MAP
|
|
88
|
+
4. **AestheticMapper tests** (`tests/creative/AestheticMapper.test.js`, 32 tests) — mapDescription, resolveToValues, getVocabulary, getVocabularyByCategory, VOCABULARY static, partial matching, real-world descriptions
|
|
89
|
+
5. **MCP harness tool tests** (`tests/agent/MCPHarnessTools.test.js`, 25 tests) — designFromDescription, getAestheticVocabulary, captureScreenshot, createChoreography, playChoreographyTool, createTimeline, controlTimeline, describeVisualState
|
|
90
|
+
6. **Example choreographies** (`examples/choreographies/`) — 3 ready-to-play specs: cosmic-journey (60s, 3 scenes), meditation-breath (30s loop), energy-burst (20s, 140 BPM)
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Notes for Future Sessions
|
|
95
|
+
|
|
96
|
+
- `ChoreographyPlayer` imports `ParameterTimeline` and `TransitionAnimator` from `src/creative/`
|
|
97
|
+
- `capture_screenshot` only works in browser context (needs canvas access); returns structured error in Node
|
|
98
|
+
- `AestheticMapper` is stateless — can be used standalone or via MCP tool
|
|
99
|
+
- Headless renderer is a standalone CLI tool in `tools/`, not imported by the SDK itself
|
|
100
|
+
- MCPServer lazily creates `_aestheticMapper`, `_choreographyPlayer`, `_liveTimelines` on first use
|
|
101
|
+
- `control_timeline` materializes stored timeline data into live `ParameterTimeline` instances on first play
|
|
102
|
+
- Color preset values in `ChoreographyPlayer.COLOR_PRESET_MAP` must stay in sync with `MCPServer.applyColorPreset`
|
|
103
|
+
|
|
104
|
+
## Architecture Notes
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
Agent → MCP Tool Call
|
|
108
|
+
↓
|
|
109
|
+
MCPServer.handleToolCall(name, args)
|
|
110
|
+
↓
|
|
111
|
+
┌─────────────────────────────────┐
|
|
112
|
+
│ Phase 7 Handler Methods │
|
|
113
|
+
│ │
|
|
114
|
+
│ captureScreenshot() │ ← canvas.toDataURL composite
|
|
115
|
+
│ designFromDescription() │ ← AestheticMapper.resolveToValues
|
|
116
|
+
│ playChoreographyTool() │ ← ChoreographyPlayer.load + .play
|
|
117
|
+
│ controlTimeline() │ ← ParameterTimeline.play/pause/seek
|
|
118
|
+
│ getAestheticVocabulary() │ ← AestheticMapper.getVocabularyByCategory
|
|
119
|
+
│ │
|
|
120
|
+
│ Earlier Phase 7: │
|
|
121
|
+
│ describeVisualState() │ ← natural language description
|
|
122
|
+
│ batchSetParameters() │ ← atomic multi-param set
|
|
123
|
+
│ createTimeline() │ ← build timeline spec
|
|
124
|
+
│ playTransition() │ ← TransitionAnimator.sequence
|
|
125
|
+
│ applyColorPreset() │ ← hue/sat/intensity mapping
|
|
126
|
+
│ setPostProcessing() │ ← effect pipeline config
|
|
127
|
+
│ createChoreography() │ ← multi-scene spec builder
|
|
128
|
+
└─────────────────────────────────┘
|
|
129
|
+
```
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
Last reviewed: 2026-02-17
|
|
2
|
+
|
|
3
|
+
# Development Session — 2026-02-15
|
|
4
|
+
|
|
5
|
+
**Session type**: Layer Architecture Redesign, Codebase Audit, Preset/Reactivity Expansion
|
|
6
|
+
**Branch**: `claude/vib3-sdk-handoff-p00R8`
|
|
7
|
+
**Operator**: Claude Code (Opus 4.6)
|
|
8
|
+
**Parent work**: Builds on Feb 13 agent harness + Feb 6 RendererContract work
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Session Overview
|
|
13
|
+
|
|
14
|
+
### Phase 1 — Layer Architecture Redesign
|
|
15
|
+
|
|
16
|
+
The original 5-layer canvas system used static multipliers — every layer received identical parameters scaled by hardcoded opacity/density/speed factors. This produced "the same shader pasted 5 times with different opacity" instead of actual inter-layer dynamics.
|
|
17
|
+
|
|
18
|
+
**Built**: `LayerRelationshipGraph` — a keystone-driven system where one layer drives and others derive their parameters through configurable relationship functions.
|
|
19
|
+
|
|
20
|
+
6 preset relationship types:
|
|
21
|
+
| Preset | Behavior |
|
|
22
|
+
|--------|----------|
|
|
23
|
+
| `echo` | Attenuated follower (same params, scaled down) |
|
|
24
|
+
| `mirror` | Inverts rotation planes, shifts hue 180° |
|
|
25
|
+
| `complement` | Color complement, density inverted around pivot |
|
|
26
|
+
| `harmonic` | Density at integer multiples, hue at golden angle intervals |
|
|
27
|
+
| `reactive` | Amplifies parameter deltas over time |
|
|
28
|
+
| `chase` | Lerps toward keystone with configurable delay |
|
|
29
|
+
|
|
30
|
+
5 named profiles that configure the full 5-layer graph:
|
|
31
|
+
- `holographic` — content drives, echo/complement/harmonic/reactive
|
|
32
|
+
- `symmetry` — mirror mode with chase accent
|
|
33
|
+
- `chord` — all harmonic at musical intervals
|
|
34
|
+
- `storm` — all reactive with increasing gain
|
|
35
|
+
- `legacy` — replicates old static multiplier behavior exactly
|
|
36
|
+
|
|
37
|
+
### Phase 2 — TypeScript Type Audit
|
|
38
|
+
|
|
39
|
+
Found and fixed 4 type definition issues:
|
|
40
|
+
1. Export name mismatch (RELATIONSHIP_PRESETS → PRESET_REGISTRY)
|
|
41
|
+
2. Missing MultiCanvasBridge type definition
|
|
42
|
+
3. Broken barrel file (types/render/index.d.ts)
|
|
43
|
+
4. Incorrect exports in types/adaptive-sdk.d.ts
|
|
44
|
+
|
|
45
|
+
### Phase 3 — Comprehensive Codebase Audit
|
|
46
|
+
|
|
47
|
+
Found and fixed 7 critical issues across the SDK:
|
|
48
|
+
|
|
49
|
+
| File | Problem | Fix |
|
|
50
|
+
|------|---------|-----|
|
|
51
|
+
| `src/math/index.js` | Top-level `await import()` breaks bundlers | Static imports |
|
|
52
|
+
| `src/render/index.js` | `require()` in ESM package | Static ESM import |
|
|
53
|
+
| `src/scene/index.js` | `require()` in `createSceneContext()` | Use already-imported classes |
|
|
54
|
+
| `src/export/index.js` | 8 missing exports | Added ShaderExporter, VIB3PackageExporter, etc. |
|
|
55
|
+
| `src/reactivity/index.js` | `console.log()` side effect in barrel | Removed |
|
|
56
|
+
| `package.json` | Missing `./creative`, `./export`, `./variations` entry points | Added |
|
|
57
|
+
| `types/` | Mismatched export names, missing barrel re-exports | Fixed all |
|
|
58
|
+
|
|
59
|
+
### Phase 4 — CLAUDE.md Rewrite
|
|
60
|
+
|
|
61
|
+
Rewrote CLAUDE.md from 224 → 366 lines:
|
|
62
|
+
- Fixed MCP tool count (12 → 31) with full categorized table
|
|
63
|
+
- Added LayerRelationshipGraph documentation
|
|
64
|
+
- Added all new file references
|
|
65
|
+
- Added recent session work section
|
|
66
|
+
- Added 4 new gotchas (ESM only, 31 tools, layer defaults, initialize check)
|
|
67
|
+
- Updated test count, status, documentation map with staleness notes
|
|
68
|
+
|
|
69
|
+
### Phase 5 — LayerPresetManager + Reactivity Wiring + MCP Tools
|
|
70
|
+
|
|
71
|
+
Built the preset management and reactivity-driven layer modulation system:
|
|
72
|
+
|
|
73
|
+
**LayerPresetManager** (`src/render/LayerPresetManager.js`):
|
|
74
|
+
- Save/load/delete/list user presets
|
|
75
|
+
- Create presets from current graph state
|
|
76
|
+
- Tune individual relationship parameters at runtime
|
|
77
|
+
- Persist presets to localStorage
|
|
78
|
+
- Import/export preset libraries as JSON
|
|
79
|
+
|
|
80
|
+
**Reactivity-driven layer modulation** (`src/render/LayerReactivityBridge.js`):
|
|
81
|
+
- Audio frequency bands modulate relationship parameters (e.g., bass → reactive gain)
|
|
82
|
+
- Device tilt/gyroscope modulates relationship configs
|
|
83
|
+
- Configurable modulation mappings per input source
|
|
84
|
+
- Pre-built modulation profiles (audioStorm, tiltHarmonic, etc.)
|
|
85
|
+
|
|
86
|
+
**MCP tools** (5 new layer control tools):
|
|
87
|
+
- `set_layer_profile` — Load a named layer profile
|
|
88
|
+
- `set_layer_relationship` — Set relationship for a specific layer
|
|
89
|
+
- `set_layer_keystone` — Change the keystone layer
|
|
90
|
+
- `get_layer_config` — Get current layer configuration
|
|
91
|
+
- `tune_layer_relationship` — Adjust config on an active relationship
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Files Created
|
|
96
|
+
|
|
97
|
+
| File | Purpose | ~Lines |
|
|
98
|
+
|------|---------|--------|
|
|
99
|
+
| `src/render/LayerRelationshipGraph.js` | Keystone-driven inter-layer parameter system | 610 |
|
|
100
|
+
| `src/render/LayerPresetManager.js` | Preset save/load/tune for layer relationships | ~300 |
|
|
101
|
+
| `src/render/LayerReactivityBridge.js` | Audio/tilt/input → layer relationship modulation | ~280 |
|
|
102
|
+
| `types/render/LayerRelationshipGraph.d.ts` | Full TypeScript definitions | 120 |
|
|
103
|
+
| `types/render/LayerPresetManager.d.ts` | TypeScript definitions for preset manager | ~60 |
|
|
104
|
+
| `types/render/LayerReactivityBridge.d.ts` | TypeScript definitions for reactivity bridge | ~70 |
|
|
105
|
+
| `tests/render/LayerRelationshipGraph.test.js` | 63 tests for relationship graph | 450 |
|
|
106
|
+
| `tests/render/LayerPresetManager.test.js` | Tests for preset manager | ~200 |
|
|
107
|
+
| `tests/render/LayerReactivityBridge.test.js` | Tests for reactivity bridge | ~200 |
|
|
108
|
+
| `pages/layer-demo.html` | Visual demo for testing layer dynamics | ~300 |
|
|
109
|
+
| `DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-15.md` | This file | — |
|
|
110
|
+
|
|
111
|
+
## Files Modified
|
|
112
|
+
|
|
113
|
+
| File | Change |
|
|
114
|
+
|------|--------|
|
|
115
|
+
| `src/render/MultiCanvasBridge.js` | Integrated LayerRelationshipGraph for per-layer parameter resolution |
|
|
116
|
+
| `src/holograms/RealHolographicSystem.js` | Added layer graph integration, `loadRelationshipProfile()`, `setKeystone()`, `setLayerRelationship()` |
|
|
117
|
+
| `src/render/index.js` | Fixed `require()` → ESM, added LayerRelationshipGraph + PresetManager + ReactivityBridge exports |
|
|
118
|
+
| `src/math/index.js` | Fixed top-level `await import()` → static imports |
|
|
119
|
+
| `src/scene/index.js` | Fixed `require()` → use imported classes |
|
|
120
|
+
| `src/export/index.js` | Added 8 missing exports |
|
|
121
|
+
| `src/reactivity/index.js` | Removed `console.log()` side effect |
|
|
122
|
+
| `src/agent/mcp/tools.js` | Added 5 layer control tool definitions |
|
|
123
|
+
| `src/agent/mcp/MCPServer.js` | Added 5 layer control handlers |
|
|
124
|
+
| `package.json` | Added `./creative`, `./export`, `./variations` entry points |
|
|
125
|
+
| `types/adaptive-sdk.d.ts` | Fixed export names, added layer system re-exports |
|
|
126
|
+
| `types/render/index.d.ts` | Added LayerRelationshipGraph, PresetManager, ReactivityBridge re-exports |
|
|
127
|
+
| `types/systems/index.d.ts` | Added layer relationship API to RealHolographicSystem |
|
|
128
|
+
| `CLAUDE.md` | Comprehensive rewrite (224 → 366 lines) |
|
|
129
|
+
|
|
130
|
+
## Test Results
|
|
131
|
+
|
|
132
|
+
- **Before session**: 1430 tests, 70 files
|
|
133
|
+
- **After session**: 1702+ tests, 75+ files
|
|
134
|
+
- All passing
|
|
135
|
+
|
|
136
|
+
## Commits
|
|
137
|
+
|
|
138
|
+
| Hash | Message |
|
|
139
|
+
|------|---------|
|
|
140
|
+
| `59fb951` | feat(render): add LayerRelationshipGraph — keystone-driven inter-layer parameter system |
|
|
141
|
+
| `bec4cad` | fix(types): correct export names and barrel re-exports for LayerRelationshipGraph |
|
|
142
|
+
| `aeac38c` | fix: resolve 7 broken barrel files, require() in ESM, missing exports |
|
|
143
|
+
| `4031700` | docs: comprehensive CLAUDE.md rewrite |
|
|
144
|
+
| (pending) | feat: LayerPresetManager, LayerReactivityBridge, MCP layer tools, demo page |
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
Last reviewed: 2026-02-17
|
|
2
|
+
|
|
3
|
+
# Development Session — 2026-02-16
|
|
4
|
+
|
|
5
|
+
**Session type**: Architecture Bug Fixes, Shader Consistency, Documentation Sweep
|
|
6
|
+
**Branch**: `claude/vib3-sdk-handoff-p00R8`
|
|
7
|
+
**Operator**: Claude Code (Opus 4.6)
|
|
8
|
+
**Parent work**: Continues from Feb 15 layer architecture + codebase audit
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Session Overview
|
|
13
|
+
|
|
14
|
+
### Phase 1 — Bug Fixes & Geometry Differentiation (committed in `7debad8`)
|
|
15
|
+
|
|
16
|
+
- Fixed QuantumVisualizer `canvasId` reference error — 6 sites used undefined variable, replaced with `this._canvasLabel`
|
|
17
|
+
- Differentiated tetrahedron lattice (geometry 0) from hypercube (geometry 1) using tetrahedral symmetry planes in GLSL + WGSL
|
|
18
|
+
- Updated CLAUDE.md geometry docs: "24 geometries" → "24 geometry variants (8 base shapes × 3 warp modes)"
|
|
19
|
+
|
|
20
|
+
### Phase 2 — Shader Module Infrastructure (committed in `7debad8`)
|
|
21
|
+
|
|
22
|
+
- Added `resolveIncludes()` and `loadAndResolve()` to `src/render/ShaderLoader.js` for `#include` / `// @include` directive resolution
|
|
23
|
+
- Added warp functions (`warpHypersphereCore`, `warpHypertetraCore`, `applyCoreWarp`) to external `geometry24.glsl` and `geometry24.wgsl`
|
|
24
|
+
|
|
25
|
+
### Phase 3.1 — Holographic Uniform Standardization (committed in `7debad8`)
|
|
26
|
+
|
|
27
|
+
- Renamed shader uniforms: `u_density` → `u_gridDensity`, `u_morph` → `u_morphFactor`, `u_geometryType` → `u_geometry`
|
|
28
|
+
- Updated JS uniform location lookups to match
|
|
29
|
+
|
|
30
|
+
### Phase 3.3 — Quantum Layer Detection Bug Fix (committed in `5e1b4c5`)
|
|
31
|
+
|
|
32
|
+
- **Bug**: Shader float comparison values didn't match JS `roleIntensities`. Only background (fallthrough) and content (1.0) worked; shadow, highlight, accent were broken.
|
|
33
|
+
- **Fix**: Aligned shader values to match JS (0.6, 1.0, 1.3, 1.6), added epsilon comparison (`abs() < 0.05`), moved roleIntensities to module-scope `ROLE_INTENSITIES` constant.
|
|
34
|
+
|
|
35
|
+
### Phase 3.2 — Remove mapParameterName() (committed in `9d73627`)
|
|
36
|
+
|
|
37
|
+
- Renamed `generateVariantParams()` return keys: `geometryType`→`geometry`, `density`→`gridDensity`, `morph`→`morphFactor`
|
|
38
|
+
- Renamed `geometryConfigs` object keys to match
|
|
39
|
+
- Updated `generateRoleParams()` to use `vp.gridDensity`
|
|
40
|
+
- Updated uniform location map keys to match SDK names directly
|
|
41
|
+
- Consolidated duplicate geometry uniform set in render()
|
|
42
|
+
- Deleted `mapParameterName()` method
|
|
43
|
+
- Removed debug `console.log` from density scaling
|
|
44
|
+
|
|
45
|
+
### Phase 2.3 — rotateXZ Sign Convention Alignment (committed in `3198645`)
|
|
46
|
+
|
|
47
|
+
- **Discovery**: External shader files (ShaderLib, rotation4d.glsl/wgsl, WebGPUBackend, WebGPURenderer.ts) had opposite sign convention for `rotateXZ` compared to all 3 inline system shaders
|
|
48
|
+
- **Fix**: Aligned all external/shared sources to match the inline (working) convention: `col0=(c,0,s,0)`, `col2=(-s,0,c,0)`
|
|
49
|
+
- 7 files fixed: ShaderProgram.js, WebGPUBackend.js, rotation4d.glsl, rotation4d.wgsl, quantum.frag.wgsl, holographic.frag.wgsl, WebGPURenderer.ts
|
|
50
|
+
|
|
51
|
+
### Phase 5 — Documentation Updates
|
|
52
|
+
|
|
53
|
+
- SYSTEM_INVENTORY.md: "12 MCP tools" → "36 agent-accessible tools"
|
|
54
|
+
- MASTER_PLAN: "14 tools" → "36 tools", "693+ tests" → "1762 tests"
|
|
55
|
+
- CLAUDE.md: Updated doc map staleness notes, added Feb 16 shipped items, added session work section
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Files Modified
|
|
60
|
+
|
|
61
|
+
| File | Changes |
|
|
62
|
+
|---|---|
|
|
63
|
+
| `src/quantum/QuantumVisualizer.js` | canvasId bug fix, layer detection epsilon fix, ROLE_INTENSITIES constant |
|
|
64
|
+
| `src/faceted/FacetedSystem.js` | Tetrahedron lattice differentiation (GLSL + WGSL) |
|
|
65
|
+
| `src/holograms/HolographicVisualizer.js` | Uniform rename, mapParameterName removal, variantParams key rename |
|
|
66
|
+
| `src/render/ShaderLoader.js` | resolveIncludes(), loadAndResolve() |
|
|
67
|
+
| `src/render/ShaderProgram.js` | ShaderLib rotateXZ sign fix |
|
|
68
|
+
| `src/render/backends/WebGPUBackend.js` | rotateXZ sign fix |
|
|
69
|
+
| `src/shaders/common/rotation4d.glsl` | rotateXZ sign fix |
|
|
70
|
+
| `src/shaders/common/rotation4d.wgsl` | rotateXZ sign fix |
|
|
71
|
+
| `src/shaders/common/geometry24.glsl` | Added warp functions |
|
|
72
|
+
| `src/shaders/common/geometry24.wgsl` | Added warp functions |
|
|
73
|
+
| `src/shaders/faceted/faceted.frag.wgsl` | Tetrahedron differentiation, struct fixes |
|
|
74
|
+
| `src/shaders/quantum/quantum.frag.wgsl` | rotateXZ sign fix |
|
|
75
|
+
| `src/shaders/holographic/holographic.frag.wgsl` | rotateXZ sign fix |
|
|
76
|
+
| `src/ui/adaptive/renderers/webgpu/WebGPURenderer.ts` | rotateXZ sign fix |
|
|
77
|
+
| `CLAUDE.md` | Geometry docs, shipped items, session work, doc map notes |
|
|
78
|
+
| `DOCS/SYSTEM_INVENTORY.md` | Tool count 12 → 36 |
|
|
79
|
+
| `DOCS/MASTER_PLAN_2026-01-31.md` | Tool count 14 → 36, test count 693 → 1762 |
|
|
80
|
+
| `tools/shader-sync-verify.js` | Fixed stale Holographic uniforms (u_density→u_gridDensity, removed u_geometryType, u_morph→u_morphFactor), added missing Faceted uniforms (u_mouse, u_roleIntensity), updated comments |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Commits
|
|
85
|
+
|
|
86
|
+
| Hash | Message |
|
|
87
|
+
|---|---|
|
|
88
|
+
| `7debad8` | refactor: Phase 1-3 architecture fixes — bugs, shader modules, uniform standardization |
|
|
89
|
+
| `5e1b4c5` | fix(quantum): align layer detection values with JS roleIntensities |
|
|
90
|
+
| `9d73627` | refactor(holographic): remove mapParameterName() translation layer |
|
|
91
|
+
| `3198645` | fix(shaders): align rotateXZ sign convention across all shader sources |
|
|
92
|
+
| `2ce407d` | docs: update stale tool/test counts, add Feb 16 dev track |
|
|
93
|
+
| (pending) | fix(tools): update stale embedded shaders in shader-sync-verify.js |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Test Results
|
|
98
|
+
|
|
99
|
+
- **Before**: 1762 tests, 77 files (all passing)
|
|
100
|
+
- **After**: 1762 tests, 77 files (all passing)
|
|
101
|
+
- No new tests added this session (bug fixes and refactoring of existing code)
|
|
102
|
+
|
|
103
|
+
## Decisions Made
|
|
104
|
+
|
|
105
|
+
1. **Keep per-system color personality** — Quantum's hue normalization (0-1 in JS) is intentional, not a bug
|
|
106
|
+
2. **Keep role-intensity layer detection** — User wants layer relations to follow 4D rotation principles; used epsilon comparison instead of integer indices
|
|
107
|
+
3. **Dropped GeometryPresets phase** — VariationManager already implements 100-slot preset system
|
|
108
|
+
4. **Dropped FrameBudget phase** — Adaptive rendering infrastructure exists in `src/ui/adaptive/`
|
|
109
|
+
5. **Dropped context loss recovery phase** — Already properly implemented in both QuantumVisualizer and HolographicVisualizer
|
|
110
|
+
6. **rotateXZ convention** — Aligned all external files to match inline (working) convention rather than vice versa
|