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