Skip to content
Merged
Show file tree
Hide file tree
Changes from 242 commits
Commits
Show all changes
249 commits
Select commit Hold shift + click to select a range
d2e249c
feat(01-01): create spirit types and spirit-store Zustand store
bb-connor Mar 18, 2026
f59affb
feat(01-01): create observatory types and observatory-store Zustand s…
bb-connor Mar 18, 2026
5877c00
feat(01-02): create SpiritFieldInjector and spirit-field-stain-host CSS
bb-connor Mar 18, 2026
2e19488
feat(01-03): Hunt activity bar item with seam badge
bb-connor Mar 18, 2026
dfb8f6c
feat(01-02): mount SpiritFieldInjector in DesktopLayout
bb-connor Mar 18, 2026
d26a341
feat(01-03): observatory routes, hunt commands, Hunt category
bb-connor Mar 18, 2026
0afa1be
feat(01-04): apply spirit-field-stain-host to sidebar, pane-root, bot…
bb-connor Mar 18, 2026
ebbeaeb
feat(01-04): wire --spirit-accent border to HuntLayout outer div
bb-connor Mar 18, 2026
7a0c742
feat(02-01): install R3F packages + migrate SpiritKind to huntronomer…
bb-connor Mar 18, 2026
bde787c
test(02-01): add Wave 0 failing test scaffolds for Phase 2 component …
bb-connor Mar 18, 2026
485404d
feat(02-03): SpiritChamberTab bind/unbind form with 4 kind options
bb-connor Mar 18, 2026
f2d7036
feat(02-03): WebGL spike canvas + wire spirit-chamber and observatory…
bb-connor Mar 18, 2026
3672fc2
feat(02-02): SpiritOrbIcon + spirit-orb-pulse keyframe + ActivityBarI…
bb-connor Mar 18, 2026
a29a45d
feat(02-02): SpiritCompanionCanvas (R3F demand frameloop) + right sid…
bb-connor Mar 18, 2026
23989b4
fix(01-03): add Hunt and Sidebar to command palette CATEGORY_ORDER
bb-connor Mar 18, 2026
60c592f
feat(03-04): ForensicsTapePanel CSS-only mock timeline
bb-connor Mar 18, 2026
2fadfaf
test(03-01): add Wave 0 scaffolds for observatory tests
bb-connor Mar 19, 2026
15ec1c0
feat(03-04): add Tape tab to bottom pane (BottomPaneTab union + butto…
bb-connor Mar 19, 2026
e2b1f20
feat(03-01): port observatory world types, stations, deriveObservator…
bb-connor Mar 19, 2026
3a1538f
feat(03-01): port ObservatoryWorldCanvas, build ObservatoryTab, swap …
bb-connor Mar 19, 2026
78421fd
feat(03-02): probe state machine + frameloop switching in ObservatoryTab
bb-connor Mar 19, 2026
62891dc
feat(03-02): ObservatoryProbeHud + observatory.probe command
bb-connor Mar 19, 2026
a50d01a
feat(03-02): flow mode toggle + CameraControls mode switch in Observa…
bb-connor Mar 19, 2026
ea36e30
feat(03-03): install rapier+ecctrl, port character types and pure fun…
bb-connor Mar 19, 2026
20cd027
feat(03-03): FlowModeController lazy-loaded + player input hook
bb-connor Mar 19, 2026
2e0958f
feat(03-03): lazy FlowModeController wired + double-click Easter-egg …
bb-connor Mar 19, 2026
2dba8e1
feat(04-01): nexus types + DEMO_STRIKECELLS + routing maps
bb-connor Mar 19, 2026
9f82dd3
feat(04-01): nexus-store minimal Zustand store + Wave 0 test scaffold
bb-connor Mar 19, 2026
c06f56f
feat(04-03): port spirit-ritual canvas model + SpiritManifestationCan…
bb-connor Mar 19, 2026
7fa242f
test(04-03): add failing tests for spirit creation chamber replacement
bb-connor Mar 19, 2026
a37b13d
feat(04-03): replace SpiritChamberTab with full spirit creation chamber
bb-connor Mar 19, 2026
2b6a944
feat(04-02): NexusTab store bridge — atlas mode ObservatoryWorldCanva…
bb-connor Mar 19, 2026
2089f5c
feat(04-02): wire /nexus route to NexusTab (lazy) — replace Placehold…
bb-connor Mar 19, 2026
48cf2a0
test(05-01): add failing tests for deriveSpiritMood pure function
bb-connor Mar 19, 2026
312df3e
feat(05-01): implement deriveSpiritMood pure function
bb-connor Mar 19, 2026
de908c3
feat(05-03): ObservatoryMinimapPanel SVG component + coordinate tests
bb-connor Mar 19, 2026
65f8cae
feat(05-01): SpiritMoodReactor component mounted in DesktopLayout
bb-connor Mar 19, 2026
b67d211
feat(05-03): wire Observatory into activity bar, sidebar, and command…
bb-connor Mar 19, 2026
574d17d
feat(05-02): Compartment-based spirit theme integration in YamlEditor
bb-connor Mar 19, 2026
ccbf1f5
fix(05-03): register observatory.minimap command in view-commands
bb-connor Mar 19, 2026
2e37f44
feat(06-01): copy 7 GLB hero prop dirs and flip propAssets to availab…
bb-connor Mar 19, 2026
f1133b5
test(06-01): add failing tests for hero prop mesh availability and bo…
bb-connor Mar 19, 2026
e14cc4e
feat(06-01): add HeroPropMesh component with useGLTF bob animation in…
bb-connor Mar 19, 2026
0d20667
feat(06-02): blendHex + STATION_AFFINITY_MAP in spirit/scene-math.ts …
bb-connor Mar 19, 2026
b1a6f61
feat(06-02): AffinityRingMesh floor halos + stationAffinities wiring
bb-connor Mar 19, 2026
5fed5ce
feat(07-01): spirit-evolution-store with persist middleware + 8 unit …
bb-connor Mar 19, 2026
4d66f23
feat(07-01): SpiritExperienceTracker + desktop-layout mount
bb-connor Mar 19, 2026
071aaa1
feat(07-02): level-gated geometry layers + level-up burst in SpiritCo…
bb-connor Mar 19, 2026
78c765f
feat(08-03): extend FileType with 'receipt' + update detectFileType
bb-connor Mar 19, 2026
84f04ed
feat(08-01): port missionLoop.ts from huntronomer source
bb-connor Mar 19, 2026
4410e99
feat(08-03): ReceiptPreviewTab R3F hero viewer + route + receipt.open…
bb-connor Mar 19, 2026
126f76a
feat(08-01): extend ObservatoryState and observatory-store with mission
bb-connor Mar 19, 2026
24c33f7
test(08-02): add failing tests for ObservatoryMissionHud
bb-connor Mar 19, 2026
59aae29
feat(08-02): wire ObservatoryTab mission state + register mission com…
bb-connor Mar 19, 2026
e868297
feat(09-01): install r3f-forcegraph + add DEMO_CONNECTIONS to types
bb-connor Mar 19, 2026
24fcd2f
feat(09-01): add connections slice to nexus-store + create NexusForce…
bb-connor Mar 19, 2026
5bdf601
feat(09-02): add layoutMode to nexus-store
bb-connor Mar 19, 2026
3260fb5
feat(09-02): wire layoutMode toggle in NexusTab + extend tests
bb-connor Mar 19, 2026
680d82c
fix: set initial camera position + invalidate on mount for observatory
bb-connor Mar 19, 2026
e3676a7
feat: replace simplified observatory with verbatim huntronomer port
bb-connor Mar 19, 2026
07f5889
feat: replace simplified nexus with verbatim huntronomer port
bb-connor Mar 19, 2026
d09fbf0
feat: copy astronaut operator avatar GLBs from huntronomer source
bb-connor Mar 19, 2026
46c33ed
chore(10-01): install @react-three/postprocessing and postprocessing
bb-connor Mar 19, 2026
158bb09
feat(10-01): create ObservatoryPostFX component
bb-connor Mar 19, 2026
5fdb582
feat(10-01): wire ObservatoryPostFX into ObservatoryWorldCanvas
bb-connor Mar 19, 2026
f4b0e72
feat(10-02): upgrade emissive materials for bloom targeting
bb-connor Mar 19, 2026
1669b40
feat(10-02): Autofocus DOF wired to hero prop interaction state
bb-connor Mar 19, 2026
1727a3b
feat(10-03): buildSpiritLut utility — programmatic 3D LUT textures pe…
bb-connor Mar 19, 2026
826a440
feat(10-03): LUT effect in ObservatoryPostFX + spirit kind wiring in …
bb-connor Mar 19, 2026
a436eaa
feat(11-01): FovController, CameraShake, OrbitControls makeDefault
bb-connor Mar 19, 2026
9e4bac5
feat(11-01): shake triggers — probe dispatch + character landing (CAM…
bb-connor Mar 19, 2026
1fbf294
feat(11-02): FLY_BY_WAYPOINTS + fly-by sequencing in WorldCameraRig +…
bb-connor Mar 19, 2026
bd78eee
feat(11-02): flyByActive state + letterbox bars + skip handler + fram…
bb-connor Mar 19, 2026
4e1fcb3
feat(11-03): add missionFocusDwellMs to ObservatoryCameraRecipe + der…
bb-connor Mar 19, 2026
aff18a2
feat(11-03): dwellRef dwell suppression in WorldCameraRig + mission f…
bb-connor Mar 19, 2026
10d06ae
chore(12-01): install wawa-vfx@1.2.10 and leva@0.10.1 devdep
bb-connor Mar 19, 2026
ebd5797
feat(12-03): add ProbeDischargeVFX component (PFX-02)
bb-connor Mar 19, 2026
7069739
feat(12-01): create ObservatoryVFXPools component for landing-dust an…
bb-connor Mar 19, 2026
95edf7d
feat(12-02): add drei Trail to spirit orb in SpiritCompanionCanvas
bb-connor Mar 19, 2026
610c912
fix(12-01): use RenderMode enum for VFXParticles type safety
bb-connor Mar 19, 2026
f169534
feat(12-03): wire Sparkles motes and ProbeDischargeVFX into Observato…
bb-connor Mar 19, 2026
9b46829
feat(12-04): add CharacterVFX component (landing dust + thruster exha…
bb-connor Mar 19, 2026
4540013
feat(12-04): mount CharacterVFX and ObservatoryVFXPools in Observator…
bb-connor Mar 19, 2026
7b15a9a
test(13-01): add failing tests for moveSet easing upgrades (CHR-02 + …
bb-connor Mar 19, 2026
896689e
feat(13-01): landing squash-stretch (CHR-02) + flip easing (CHR-05)
bb-connor Mar 19, 2026
b25d2cb
feat(13-02): weight-based locomotion blending (CHR-01)
bb-connor Mar 19, 2026
66736f7
feat(13-02): breathing layer, sprint lean, footstep events (CHR-03, C…
bb-connor Mar 19, 2026
566c521
feat(14-02): create npcCrew module with instanced capsule NPC crew
bb-connor Mar 19, 2026
644627d
feat(14-03): achievement store + 3D waypoint beacons + prop tooltips …
bb-connor Mar 19, 2026
4f24c27
feat(14-01): seeded district geometry module + grid-floor texture
bb-connor Mar 19, 2026
6c2360e
feat(14-02): mount StationNpcCrew per district in ObservatoryWorldCan…
bb-connor Mar 19, 2026
d1e81ec
feat(14-03): ProbeChargeRing SVG arc + AchievementLayer with Framer M…
bb-connor Mar 19, 2026
e83a648
feat(14-01): replace Stars with HDR Environment skybox + mount distri…
bb-connor Mar 19, 2026
709c612
fix: replace missing HDR Environment with Stars fallback
bb-connor Mar 19, 2026
aab82fe
feat(20-01): space-scale observatory — 300-unit radius, WebGPU render…
bb-connor Mar 20, 2026
48d683a
feat(20-02): SpaceStationMesh component + clean districtGeometryResou…
bb-connor Mar 20, 2026
97f5c6d
feat(20-02): wire SpaceStationMesh into scene + update tests
bb-connor Mar 20, 2026
27048e6
feat(21-01): add flight type contracts and DEFAULT_FLIGHT_CONFIG cons…
bb-connor Mar 20, 2026
ef85670
feat(21-01): add ShipMesh component and observatory store flight slice
bb-connor Mar 20, 2026
2819816
feat(21-02): useFlightInput hook + useFlightLoop physics
bb-connor Mar 20, 2026
a5b1e71
feat(21-02): SpaceFlightController + scene integration replaces Rapie…
bb-connor Mar 20, 2026
3be94c2
feat(21-04): ChaseCamera component with lerp-lagged following (FLT-05)
bb-connor Mar 20, 2026
223dc9b
feat(21-03): add three-tier speed system to flight controller
bb-connor Mar 20, 2026
2c1ac03
feat(21-04): ShipThrusterVFX + VFX pool registration (FLT-06)
bb-connor Mar 20, 2026
95c55f2
test(22-02): add failing test for ObservatoryNebulaClouds
bb-connor Mar 20, 2026
4963121
test(22-01): add failing tests for ObservatoryStarfield and starNest.…
bb-connor Mar 20, 2026
f45eecd
feat(22-02): implement ObservatoryNebulaClouds billboard cloud patches
bb-connor Mar 20, 2026
85278d5
feat(22-01): Star Nest GLSL shader + 3-layer ObservatoryStarfield com…
bb-connor Mar 20, 2026
ee7a339
feat(22-02): wire ObservatoryNebulaClouds into ObservatoryWorldScene
bb-connor Mar 20, 2026
0679032
feat(22-01): wire ObservatoryStarfield into scene + replace linear fo…
bb-connor Mar 20, 2026
3320224
feat(22-03): add lane-particle-stream VFX pool declaration
bb-connor Mar 20, 2026
4ec6899
test(22-03): add failing test for ObservatorySpaceLanes
bb-connor Mar 20, 2026
9916b51
feat(22-03): implement ObservatorySpaceLanes with TubeGeometry + dash…
bb-connor Mar 20, 2026
168f736
feat(23-02): add StationDockingRing component
bb-connor Mar 20, 2026
dade863
feat(23-01): add StationBeacon, StationFresnelGlow, StationLodWrapper
bb-connor Mar 20, 2026
e808008
feat(23-02): mount StationDockingRing in StationLodWrapper near-tier
bb-connor Mar 20, 2026
157f30f
feat(23-03): docking types + dockingState store slice
bb-connor Mar 20, 2026
b8c87e9
feat(23-03): useDockingSystem hook + flight loop magnet-pull + contro…
bb-connor Mar 20, 2026
0eebcde
fix(23): DCK-03 camera transition to docked station view
bb-connor Mar 20, 2026
9f32a35
feat(24-01): Camera bridge + HUD constants + SpaceFlightHud shell
bb-connor Mar 20, 2026
4a861a5
feat(24-01): SpeedIndicator + HeadingCompass with rAF ref-mutation up…
bb-connor Mar 20, 2026
33b55d0
feat(24-02): useHudProjection + TargetBrackets + OffScreenArrows
bb-connor Mar 20, 2026
00c9e1f
feat(24-02): wire SpaceFlightHud + HudCameraBridge into ObservatoryTab
bb-connor Mar 20, 2026
1522f88
feat(25-04): station arrival name card cinematic (TRN-03)
bb-connor Mar 20, 2026
014ac8a
feat(25-01): rewrite observatory-minimap-panel as StarChartMinimap
bb-connor Mar 20, 2026
b24fc05
test(25-01): update minimap tests for star chart (worldToChart + lane…
bb-connor Mar 20, 2026
5e6638c
feat(25-04): proximity-based detail fade for station sub-elements (TR…
bb-connor Mar 20, 2026
846ae6b
feat(25-03): boost FOV punch + bloom spike (TRN-01, TRN-04)
bb-connor Mar 20, 2026
119e01a
feat(25-03): warp speed line particles during boost (TRN-02)
bb-connor Mar 20, 2026
d37762c
feat(25-02): autopilot state + flight loop integration
bb-connor Mar 20, 2026
7606f65
feat(25-02): flight path trail + click-to-autopilot on star chart
bb-connor Mar 20, 2026
c3ddc42
feat(26-01): discovery state slice + StationLodWrapper visibility gat…
bb-connor Mar 20, 2026
2e4ea7a
feat(26-02): MissionWaypointTrail component + mount in ObservatoryWor…
bb-connor Mar 20, 2026
62f9d0f
feat(26-02): mission HUD narrative flight directives
bb-connor Mar 20, 2026
d6796b3
feat(26-01): star chart minimap discovery integration with uncharted …
bb-connor Mar 20, 2026
03568d6
feat(27-01): wire FlightState store bridge via onStateChange prop chain
bb-connor Mar 20, 2026
7914488
feat(27-01): wire autopilot ref bridge (store.autopilotTargetStationI…
bb-connor Mar 20, 2026
b9e0795
fix(observatory): revert WebGPU renderer + fix 3 TS errors
bb-connor Mar 20, 2026
db4bf79
feat(28-02): add observatory HUD glassmorphism design tokens
bb-connor Mar 21, 2026
acc7888
feat(28-01): remove 7 legacy overlays from ObservatoryTab + delete co…
bb-connor Mar 21, 2026
b3ceeb8
feat(28-01): remove 3 legacy overlays from ObservatoryWorldCanvas + d…
bb-connor Mar 21, 2026
873f479
fix(28-01): remove dead ObservatoryWeatherLayer references from perfo…
bb-connor Mar 21, 2026
d0127fe
feat(29-01): add HudPanelId type + rename analyst preset nexus→ghost
bb-connor Mar 21, 2026
90fb017
feat(29-01): implement panel registry slice in observatory-store
bb-connor Mar 21, 2026
3090975
feat(29-02): add ANALYST_PRESETS and HUD_STATUS_STRIP_HEIGHT to hud-c…
bb-connor Mar 21, 2026
be16e0f
feat(29-02): ObservatoryStatusStrip — glassmorphism footer with rAF t…
bb-connor Mar 21, 2026
d1e43a3
feat(30-03): restyle SpaceFlightHud + SpeedIndicator with glassmorphi…
bb-connor Mar 21, 2026
35a53c0
feat(30-01): add HUD_LEFT_DRAWER_WIDTH constant + create ObservatoryL…
bb-connor Mar 21, 2026
c3e0f87
feat(30-03): restyle HeadingCompass with glassmorphism tokens
bb-connor Mar 21, 2026
d923471
feat(30-01): mount ObservatoryLeftDrawer in ObservatoryTab + 5 unit t…
bb-connor Mar 21, 2026
bd99771
feat(30-02): create useObservatoryHotkeys hook + 8 unit tests
bb-connor Mar 21, 2026
59315d6
feat(30-02): wire useObservatoryHotkeys in ObservatoryTab + HUD-16 st…
bb-connor Mar 21, 2026
63bd82d
feat(31-01): ExplainabilityDrawerPanel + MissionDrawerPanel components
bb-connor Mar 21, 2026
f247546
feat(31-01): ReplayDrawerPanel + GhostMemoryDrawerPanel + 18 unit tests
bb-connor Mar 21, 2026
de1ba31
feat(31-02): wire panel components into ObservatoryLeftDrawer switch
bb-connor Mar 21, 2026
4646fd1
test(31-02): update drawer tests to verify panel routing instead of p…
bb-connor Mar 21, 2026
2f6b0e7
feat(32-01): fix blank-scene background + relocate ATLAS toggle into …
bb-connor Mar 22, 2026
7be64ce
test(32-01): update status strip tests for ATLAS/FLOW mode toggle seg…
bb-connor Mar 22, 2026
a9bb041
feat(32-02): increase status strip border contrast and text size
bb-connor Mar 22, 2026
0815d27
test(32-02): add STS-01/STS-02 style-assertion tests for status strip
bb-connor Mar 22, 2026
b3186ab
feat(33-01): add drawer-specific glassmorphism CSS tokens GLS-01/GLS-02
bb-connor Mar 22, 2026
2771fd1
feat(33-01): wire ObservatoryLeftDrawer to drawer-specific glassmorph…
bb-connor Mar 22, 2026
170fdd2
feat(33-02): add PANEL_LABELS map and HUD_DRAWER_HEADER_HEIGHT constant
bb-connor Mar 22, 2026
f9734be
feat(33-02): add drawer header bar with panel label and close button
bb-connor Mar 22, 2026
72ba818
test(34-01): add failing tests for structured empty states in drawer …
bb-connor Mar 22, 2026
14df07e
feat(34-01): structured empty states in Explainability, Mission, Ghos…
bb-connor Mar 22, 2026
8731358
test(38-01): add failing tests for ObservatoryWeatherLayer mount beha…
bb-connor Mar 22, 2026
5fcf97b
feat(38-01): implement ObservatoryWeatherLayer R3F component
bb-connor Mar 22, 2026
b86a8c7
feat(38-01): mount ObservatoryWeatherLayer in ObservatoryWorldCanvas …
bb-connor Mar 22, 2026
676b05f
feat(35-01): GhostTraceLayer R3F component with holographic ghost mar…
bb-connor Mar 22, 2026
cb29d94
feat(35-02): wire GhostTraceLayer into ObservatoryWorldCanvas with GH…
bb-connor Mar 22, 2026
fbad766
feat(36-01): MissionObjectiveBeacons component + unit tests
bb-connor Mar 22, 2026
e6dcb63
feat(36-02): mount MissionObjectiveBeacons in ObservatoryWorldCanvas
bb-connor Mar 22, 2026
7fde77d
feat(37-01): ThreatPresetOverlay — red wash + orbital danger motes (A…
bb-connor Mar 22, 2026
6e6e817
feat(37-01): EvidencePresetOverlay + ReceiptsPresetOverlay — gold hal…
bb-connor Mar 22, 2026
8cb11ae
feat(37-02): GhostPresetOverlay — ambient dim 40% + cool desaturation…
bb-connor Mar 22, 2026
83501cb
feat(37-02): wire all four preset overlays into ObservatoryWorldScene
bb-connor Mar 22, 2026
c002bbf
fix: remove dead test cases referencing deleted Phase 28 components
bb-connor Mar 22, 2026
c31dfc7
feat(39-01): define v10.0 data contracts and wire store slices
bb-connor Mar 23, 2026
2fab56a
test(39-02): add failing tests for v2 persistence schema with annotat…
bb-connor Mar 23, 2026
1155e86
test(39-03): add failing tests for derivation utilities
bb-connor Mar 23, 2026
e051643
feat(39-02): bump observatory persistence schema to v2 with annotatio…
bb-connor Mar 23, 2026
e87ab4d
feat(39-03): add pure derivation utilities for constellation, resonan…
bb-connor Mar 23, 2026
06384fa
feat(39-03): extend invalidation controller with 5 new v10.0 source keys
bb-connor Mar 23, 2026
d1cf2be
test(40-01): add failing tests for ThreatTopologyHeatmap
bb-connor Mar 23, 2026
43b04e9
feat(40-01): implement ThreatTopologyHeatmap GLSL heatmap component
bb-connor Mar 23, 2026
9f6532e
feat(40-02): create ProbeDeltaLayer lifecycle manager with auto-dismi…
bb-connor Mar 23, 2026
867cd5b
feat(40-03): extend scene types and wire heatmap + delta layer into O…
bb-connor Mar 23, 2026
865a405
feat(40-03): derive heatmap data and thread props through Observatory…
bb-connor Mar 23, 2026
2247cb2
feat(41-01): create ConstellationRoutesLayer R3F component
bb-connor Mar 23, 2026
56908be
feat(41-01): wire constellation props through scene graph and persist…
bb-connor Mar 23, 2026
fae54ef
feat(41-03): add constellation route markers and tooltip to minimap
bb-connor Mar 23, 2026
7c779aa
feat(41-02): create SpiritTrailsLayer and SpiritResonanceConnections …
bb-connor Mar 23, 2026
b736edb
feat(41-02): wire spirit trail props through scene graph from stores
bb-connor Mar 23, 2026
35e8aca
test(42-01): add failing tests for ReplayAnnotationLayer
bb-connor Mar 23, 2026
7023023
feat(42-01): implement ReplayAnnotationLayer with diamond pins, click…
bb-connor Mar 23, 2026
fa59be4
feat(42-01): thread annotationPins and replay state through scene pro…
bb-connor Mar 23, 2026
8c1003a
feat(42-02): add Annotations section to ReplayDrawerPanel with pin li…
bb-connor Mar 23, 2026
f911d3b
feat(42-02): hydrate annotation pins from localStorage v2 on mount an…
bb-connor Mar 23, 2026
4ea8c5f
feat(43-01): create station interior configuration data
bb-connor Mar 23, 2026
17e6712
feat(43-01): create StationInteriorScene R3F component
bb-connor Mar 23, 2026
fef0a14
feat(43-02): add useInteriorCameraTransition hook and extend scene types
bb-connor Mar 23, 2026
015cb12
feat(43-02): wire station interior end-to-end — camera, entries, exit…
bb-connor Mar 23, 2026
21e2bdf
fix: apply dash animation to line materials in SpiritResonanceConnect…
bb-connor Mar 23, 2026
4411e98
fix: add geometry disposal and increase wall accent gap in StationInt…
bb-connor Mar 23, 2026
3759af1
fix: move ground plane material to ref and add disposal in ReplayAnno…
bb-connor Mar 23, 2026
a461ff9
fix: type safety in ThreatTopologyHeatmap, exhaustiveness in ProbeDel…
bb-connor Mar 23, 2026
9631479
fix: ExteriorDimmer early-out, memoize invalidation sources, memoize …
bb-connor Mar 23, 2026
68323f1
fix: guard createObservatoryMissionPlan calls, improve sidebar file l…
bb-connor Mar 23, 2026
3b2d2dd
fix: restore HintSettingsProvider, fix observatory-time import, remov…
bb-connor Mar 23, 2026
8692f55
chore: commit previously untracked source files from v1-v9 milestones
bb-connor Mar 23, 2026
4b83287
fix: resolve TypeScript compilation errors for CI (Text depthTest pro…
bb-connor Mar 23, 2026
da18ade
fix: commit workbench-chunking build util and ignore more RUSTSEC adv…
bb-connor Mar 23, 2026
7124093
fix: restore correct provider chain in App.tsx for routing tests
bb-connor Mar 23, 2026
9ea6e5e
fix: update stale test assertions and add jsdom polyfills for CI
bb-connor Mar 23, 2026
cd3a279
fix: mock validation state in desktop-layout and dispose in annotatio…
bb-connor Mar 23, 2026
bbf4a6f
fix: update observatory-world-canvas test assertions and wrap hunt-la…
bb-connor Mar 23, 2026
58328b0
fix: mock hardwareConcurrency in observatory performance tests for CI…
bb-connor Mar 23, 2026
51d4883
fix: add getAnimations polyfill to global test setup and mock hardwar…
bb-connor Mar 23, 2026
c3d07e8
fix: ignore aws-lc RUSTSEC-2026 advisories in cargo audit CI step
bb-connor Mar 23, 2026
c554fbd
refactor: deslopify Phase 40 heatmap and delta card code
bb-connor Mar 23, 2026
c7b6d13
refactor: deslopify Phase 41 constellation and spirit trail code
bb-connor Mar 23, 2026
2781e15
refactor: deslopify Phase 39 foundation code — remove AI slop comment…
bb-connor Mar 23, 2026
8a4919b
refactor: deslopify Phase 42-43 annotation and interior code
bb-connor Mar 23, 2026
d676635
refactor: deslopify shared scene files — strip narrating comments fro…
bb-connor Mar 23, 2026
b775eaf
fix(workbench): address PR review regressions
bb-connor Mar 23, 2026
3e2584b
fix(workbench): resolve review gaps and stabilize ci
bb-connor Mar 23, 2026
e967958
fix(workbench): close remaining review threads
bb-connor Mar 23, 2026
093a401
fix(workbench): tighten bundle chunk matching
bb-connor Mar 23, 2026
504741d
fix(workbench): address remaining review threads
bb-connor Mar 23, 2026
4ee4987
fix(workbench): wrap whole-word regex search queries
bb-connor Mar 23, 2026
556d184
fix(ci): harden openclaw blocked-call runtime smoke
bb-connor Mar 23, 2026
fabd170
fix(workbench): handle hunt sidebar and search toggles
bb-connor Mar 23, 2026
903c4e6
fix(workbench): harden project search state
bb-connor Mar 24, 2026
3a85351
fix(workbench): resolve remaining PR 218 review threads
bb-connor Mar 24, 2026
af3634a
fix(workbench): resolve new PR 218 review threads
bb-connor Mar 24, 2026
e2442b1
fix(workbench): align unicode search offsets
bb-connor Mar 24, 2026
feb411c
fix(workbench): derive synthetic search roots
bb-connor Mar 24, 2026
5599c9a
fix(workbench): stabilize rebuilt branch verification
bb-connor Mar 24, 2026
4bbd28f
fix(workbench): bootstrap explorer in browser e2e
bb-connor Mar 24, 2026
7498c6b
fix(ci): sync workspace lockfile and search cleanup
bb-connor Mar 24, 2026
7c1f933
fix(workbench): restore ci parity for PR 218
bb-connor Mar 24, 2026
df30062
fix(ci): restore docs bindgen packages
bb-connor Mar 24, 2026
a4c3774
fix(workbench): skip git metadata and dedupe three
bb-connor Mar 25, 2026
bfdb22f
fix(ci): harden blocked chat probe
bb-connor Mar 25, 2026
ccd8e4d
fix(ci): align runtime blocked-call smoke with policy deny patterns
bb-connor Mar 25, 2026
da071d3
fix(workbench): normalize resolved windows project paths
bb-connor Mar 25, 2026
a568a7e
fix(workbench): resolve final PR 218 review threads
bb-connor Mar 25, 2026
08eac5a
fix(workbench): address latest PR 218 review threads
bb-connor Mar 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
22 changes: 15 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -441,10 +441,7 @@ jobs:
uses: dtolnay/rust-toolchain@stable

- name: Install protoc
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler

- name: Install Z3 toolchain for all-features docs
run: sudo apt-get update && sudo apt-get install -y z3 libz3-dev clang libclang-dev
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler z3 libz3-dev

- name: Build documentation
run: cargo doc --no-deps --all-features
Expand Down Expand Up @@ -500,6 +497,16 @@ jobs:
# capability tokens bound to trusted-window context).
# Tracking removal: SEC-PTY-001.
--ignore RUSTSEC-2017-0008
# aws-lc-rs advisories (2026-03-23). Transitive via rustls.
# Awaiting patched release. Owner: @deps-maintainers.
--ignore RUSTSEC-2026-0044
--ignore RUSTSEC-2026-0045
--ignore RUSTSEC-2026-0046
--ignore RUSTSEC-2026-0047
--ignore RUSTSEC-2026-0048
--ignore RUSTSEC-2026-0049
--ignore RUSTSEC-2026-0067
--ignore RUSTSEC-2026-0068
)

cargo audit --deny warnings "${audit_ignores[@]}"
Expand Down Expand Up @@ -1084,7 +1091,10 @@ jobs:
and .checks.pluginStatusLoaded
and .checks.hookPreflightPresent
and .checks.hookCuaPresent
and .checks.policyCheckCallOk
and .checks.chatSendStarted
and .checks.historyHasMessages
and (.checks.assistantBlockSignal or .checks.assistantAuthMissing)
and .checks.policyCheckHttpOk
and .checks.policyCheckDenied
and .checks.targetFileAbsent
' artifacts/openclaw-runtime-blocked-e2e-${{ matrix.openclaw_version }}/summary.json >/dev/null
Expand Down Expand Up @@ -1180,12 +1190,10 @@ jobs:
- name: Adapter Core
dir: packages/adapters/clawdstrike-adapter-core
bootstrap_adapter_core: false
bootstrap_broker_client: false
bootstrap_sdk: false
- name: Hush CLI Engine
dir: packages/adapters/clawdstrike-hush-cli-engine
bootstrap_adapter_core: true
bootstrap_broker_client: false
bootstrap_sdk: false
bootstrap_hush: true
- name: OpenAI
Expand Down
109 changes: 109 additions & 0 deletions apps/workbench/build/workbench-chunking.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
type ModulePreloadContext = {
hostId: string;
hostType: "html" | "js";
};

const OBSERVATORY_WORLD_CANVAS_ID =
"/src/features/observatory/components/ObservatoryWorldCanvas.tsx";
const OBSERVATORY_FLOW_RUNTIME_CHUNK_NAME = "ObservatoryFlowRuntimeScene";
const PHYSICS_CHUNK_PREFIX = "assets/vendor-physics";

function normalizeModuleId(id: string) {
return id.split("\\").join("/");
}

function matchesNodeModulePackage(id: string, packageName: string) {
const normalizedId = normalizeModuleId(id);
const packageRoot = `/node_modules/${packageName}`;
const packageIndex = normalizedId.indexOf(packageRoot);
if (packageIndex === -1) {
return false;
}

const remainder = normalizedId.slice(packageIndex + packageRoot.length);
return remainder === "" || remainder.startsWith("/") || remainder.startsWith("?");
}

export function resolveWorkbenchManualChunk(id: string) {
if (
matchesNodeModulePackage(id, "three") ||
matchesNodeModulePackage(id, "three-mesh-bvh")
) {
return "vendor-three";
}

if (matchesNodeModulePackage(id, "zustand")) {
return "vendor-state";
}

if (
matchesNodeModulePackage(id, "@react-three/fiber") ||
matchesNodeModulePackage(id, "@react-three/drei") ||
matchesNodeModulePackage(id, "suspend-react") ||
matchesNodeModulePackage(id, "camera-controls") ||
matchesNodeModulePackage(id, "maath") ||
matchesNodeModulePackage(id, "meshline") ||
matchesNodeModulePackage(id, "three-stdlib") ||
matchesNodeModulePackage(id, "troika-three-text") ||
matchesNodeModulePackage(id, "troika-three-utils") ||
matchesNodeModulePackage(id, "troika-worker-utils")
) {
return "vendor-r3f";
}

if (
matchesNodeModulePackage(id, "@react-three/rapier")
) {
return "vendor-physics-react";
}

if (matchesNodeModulePackage(id, "@dimforge/rapier3d-compat")) {
return "vendor-physics-core";
}

if (
matchesNodeModulePackage(id, "codemirror") ||
matchesNodeModulePackage(id, "@codemirror/autocomplete") ||
matchesNodeModulePackage(id, "@codemirror/lang-yaml") ||
matchesNodeModulePackage(id, "@codemirror/language") ||
matchesNodeModulePackage(id, "@codemirror/lint") ||
matchesNodeModulePackage(id, "@codemirror/search") ||
matchesNodeModulePackage(id, "@codemirror/state") ||
matchesNodeModulePackage(id, "@codemirror/theme-one-dark") ||
matchesNodeModulePackage(id, "@codemirror/view")
) {
return "vendor-codemirror";
}

if (
matchesNodeModulePackage(id, "react-resizable-panels") ||
matchesNodeModulePackage(id, "react-syntax-highlighter") ||
matchesNodeModulePackage(id, "lucide-react") ||
matchesNodeModulePackage(id, "@tabler/icons-react") ||
matchesNodeModulePackage(id, "motion")
) {
return "vendor-ui";
}

if (matchesNodeModulePackage(id, "yaml")) {
return "vendor-yaml";
}

return undefined;
}

export function resolveWorkbenchModulePreloadDependencies(
url: string,
deps: string[],
context: ModulePreloadContext,
) {
if (
context.hostType === "js" &&
normalizeModuleId(context.hostId).endsWith(OBSERVATORY_WORLD_CANVAS_ID) &&
url.includes(OBSERVATORY_FLOW_RUNTIME_CHUNK_NAME)
) {
return deps.filter((dep) => !dep.startsWith(PHYSICS_CHUNK_PREFIX));
}

return deps;
}
Loading
Loading