Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
159 commits
Select commit Hold shift + click to select a range
cbd72c5
Import sim-core
judeallred Oct 5, 2023
8e4bde6
Hide non-functional UI elements
judeallred Oct 5, 2023
f416637
Update apps/sim-core/README.md
judeallred Oct 5, 2023
34ca533
Update apps/sim-core/README.md
judeallred Oct 5, 2023
55f12b4
Update apps/sim-core/README.md
judeallred Oct 5, 2023
3461d83
Update apps/sim-core/README.md
judeallred Oct 5, 2023
35faa48
Update apps/sim-core/README.md
judeallred Oct 5, 2023
6f7943a
Update apps/sim-core/README.md
judeallred Oct 5, 2023
f3302da
Update apps/sim-core/README.md
judeallred Oct 5, 2023
de418f1
Update apps/sim-core/README.md
judeallred Oct 5, 2023
b0b991c
Update apps/sim-core/README.md
judeallred Oct 5, 2023
4ca17b9
Update apps/sim-core/README.md
judeallred Oct 5, 2023
feee4a7
Update apps/sim-core/README.md
judeallred Oct 5, 2023
4e81788
Apply suggestions from code review
judeallred Oct 5, 2023
aa393fa
Apply suggestions from code review
judeallred Oct 5, 2023
7dd2e2d
Tidy .gitignore files
judeallred Oct 5, 2023
83c6597
tidy packages/core devdeps
judeallred Oct 5, 2023
4cf8470
Readme touchups
judeallred Oct 5, 2023
4d4cbe7
Hide 'Cloud Status' Header Item
judeallred Oct 5, 2023
47551a7
Hide 'account' link from help menu
judeallred Oct 5, 2023
9e0ff26
Package.json updates to support node 20
judeallred Oct 5, 2023
9dc4efe
Readme: Encourage use of yarn start:core
judeallred Oct 5, 2023
44c86ef
Populate localstorage with a default 'my project' from WildFires.
judeallred Oct 5, 2023
640d6cb
More robust imports
judeallred Oct 5, 2023
4507379
Hide unused UI components
judeallred Oct 5, 2023
4de0190
Fix parsing for local datasets; patch by CM
judeallred Oct 5, 2023
c854a8e
fix export to include hash.json and not attempt to fetch datasets fro…
judeallred Oct 5, 2023
a8dfe26
apply yarn fmt
judeallred Oct 5, 2023
c6f4587
remove import-sort-style-hashintel
judeallred Oct 5, 2023
af0fd90
include our proprietary rust package sim-engine-types
judeallred Oct 5, 2023
db91e46
Tidy sim-engine-types
judeallred Oct 5, 2023
d390ff8
Add agent rules, architecture planning, and TODOs
judeallred Feb 16, 2026
c281d34
Repair the sim-engine build for windows
judeallred Feb 16, 2026
d1385b3
Add python to wishlist
judeallred Feb 16, 2026
1fe659f
Add playwright e2e tests to lock in current frontend behaviors
judeallred Feb 16, 2026
3ab05be
Update tests & fix the engine-web build
judeallred Feb 16, 2026
8bce154
Add commit message guidelines to improve clarity and consistency
judeallred Feb 16, 2026
3aa6375
Remove Sentry and FullStory analytics
judeallred Feb 16, 2026
1f5008c
Remove Discord widget
judeallred Feb 16, 2026
2d5dad6
Remove why-did-you-render dev tool
judeallred Feb 16, 2026
0ba2b7c
Mark Phase 1 analytics removal as complete in TODO
judeallred Feb 16, 2026
e29e9bc
Remove auth system, signin/signup modals, and cloud credits
judeallred Feb 16, 2026
d2022be
Remove cloud features: sharing, server save, and hCloud runners
judeallred Feb 16, 2026
e4cbf6e
Remove release modals and server project management; add local fork a…
judeallred Feb 16, 2026
94ec334
Mark Phases 2-5 as complete in TODO.md
judeallred Feb 16, 2026
0f12161
Add commit discipline guidelines to agent rules
judeallred Feb 16, 2026
349cfbd
Remove access code system and dead server API query files
judeallred Feb 16, 2026
24e99dc
Remove dead server API code: analytics, release, commit mutations
judeallred Feb 16, 2026
54b24a8
Remove unused packages (bowser, comlink) and update TODO.md
judeallred Feb 16, 2026
fe6f2d8
Update Rust nightly toolchain and edition
judeallred Feb 16, 2026
8b03312
Replace deprecated request/request-promise-native with fetch
judeallred Feb 16, 2026
4c2d30b
Document security audit results and update TODO progress
judeallred Feb 16, 2026
5a73b53
Replace abandoned hookrouter with custom navigation utilities
judeallred Feb 16, 2026
8dff8a7
Phase 1 review: fix orphaned files, TS errors, dependency issues, upd…
judeallred Feb 16, 2026
e44b67c
Remove @material-ui and staging deploy tool (HashVersionPicker)
judeallred Feb 16, 2026
183b3ef
Upgrade TypeScript 4.1 to 5.3 and modernize toolchain
judeallred Feb 16, 2026
a057247
Update TODO.md and cursor rules to reflect TS upgrade and blocker fin…
judeallred Feb 16, 2026
94830ae
Upgrade React 16.14 to 17.0.2 (stepping stone to React 18)
judeallred Feb 16, 2026
b4b23a9
Upgrade React 17 to 18.2 with createRoot migration
judeallred Feb 16, 2026
5ba7b74
Update TODO.md and cursor rules to reflect React 18 and TS 5.3 comple…
judeallred Feb 16, 2026
d5f4c00
Fix E2E test regressions, React 18 FC children types, and add E2E tes…
judeallred Feb 17, 2026
3835180
Upgrade Node.js 20 -> 24 LTS, plan Vite migration
judeallred Feb 17, 2026
3e4edab
Migrate from Webpack 4 to Vite 7 for sim-core
judeallred Feb 17, 2026
0ecd7e4
Fix Vite runtime compatibility: polyfills, SCSS, and library shims
judeallred Feb 17, 2026
eb8d51d
Fix drei Stats import for Vite: use transform plugin instead of shim
judeallred Feb 17, 2026
8a0fcfe
Exclude drei from Vite dep optimization for consistent Stats fix
judeallred Feb 17, 2026
3d5c315
Fix cold-cache stability: expand optimizeDeps, add WASM worker smoke …
judeallred Feb 17, 2026
4836e3a
Fix viewer tab crashes: add turf transitive deps to optimizeDeps
judeallred Feb 17, 2026
18dc68a
Fix plotly/turf viewer errors, add bowser/jstat to optimizeDeps
judeallred Feb 17, 2026
df52f29
Remove webpack infrastructure from core: delete config, remove 17 pac…
judeallred Feb 17, 2026
2d86c42
Update docs to reflect Vite 7 migration and Node 24 upgrade
judeallred Feb 17, 2026
267681e
Fix Vite compatibility for plotly.js and react-mapbox-gl; upgrade to …
judeallred Feb 18, 2026
0bbb924
Migrate three.js ecosystem: react-three-fiber v5 -> @react-three/fibe…
judeallred Feb 18, 2026
c401404
Remove Recoil: replace with React Context for AgentScene 3D viewer state
judeallred Feb 18, 2026
92ff252
Add autonomous work policy cursor rule
judeallred Feb 18, 2026
8220893
Remove Redux search slice: replace with React Context
judeallred Feb 18, 2026
5e31d2a
Update TODO.md: track search slice removal and Redux migration progress
judeallred Feb 18, 2026
17750f1
Migrate viewer slice consumers from Redux to ViewerContext
judeallred Feb 18, 2026
acb79d8
Reduce E2E noise: silence SCSS deprecations, fix ?? warning, suppress…
judeallred Feb 18, 2026
6818af7
Redux removal Phase A: Create context facades for user, toast, and ex…
judeallred Feb 18, 2026
012deb8
Redux removal Phase B1: Create context facade for project slice
judeallred Feb 18, 2026
1d7bf0d
Redux removal Phase B2: Create context facade for files slice (80 con…
judeallred Feb 18, 2026
6e49028
Update TODO.md with Redux slice migration progress
judeallred Feb 18, 2026
0e8aa3c
Redux removal D.1+D.2: Convert all app contexts to pure React state
judeallred Feb 19, 2026
1b24182
Redux removal D.3+D.4: Delete app Redux infrastructure, add StoreSync
judeallred Feb 19, 2026
1a687a4
Redux removal D.5: Fix broken imports, create simulator appBridge
judeallred Feb 19, 2026
5c10e46
Remove RTK dependency from files subsystem and shared actions
judeallred Feb 19, 2026
3cf3119
Replace Redux Toolkit and react-redux with pure compatibility layer
judeallred Feb 19, 2026
43624a6
Remove @reduxjs/toolkit and react-redux packages
judeallred Feb 19, 2026
42ecf2a
Re-enable useUnknownInCatchVariables in tsconfig
judeallred Feb 19, 2026
12daff6
Update TODO.md: mark Redux removal as complete
judeallred Feb 19, 2026
7d5f7d0
Upgrade Jest 26 to 29 and clean up test infrastructure
judeallred Feb 19, 2026
61703fb
Update TODO.md: mark Phase 3 and Phase 4 as complete
judeallred Feb 19, 2026
ee95709
Add serve:quiet script, update TODO.md checklist items
judeallred Feb 19, 2026
03fbf63
Update ARCHITECTURE.md to reflect current state after Redux removal
judeallred Feb 19, 2026
4f89bdf
Add Phase 4b codebase assessment to TODO.md
judeallred Feb 19, 2026
6ad510f
Add comprehensive Deployment section to ARCHITECTURE.md
judeallred Feb 19, 2026
68eb671
Document CI status and add recommendations to TODO and ARCHITECTURE
judeallred Feb 19, 2026
d0c5336
Fix circular dependency in behaviorKeys/utils and get all tests passing
judeallred Feb 19, 2026
8b135d1
Update TODO: replace GraphQL upgrade with full GraphQL removal plan
judeallred Feb 19, 2026
e2f2753
Delete dead GraphQL queries and unused utility files
judeallred Feb 20, 2026
7ad8827
Remove stale hCloud, Discord, login, and release UI remnants
judeallred Feb 20, 2026
35f3433
Migrate all lodash imports to lodash-es for tree-shaking
judeallred Feb 20, 2026
0719884
Rename WEBPACK_BUILD_STAMP/PUBLIC_PATH to BUILD_STAMP/PUBLIC_PATH
judeallred Feb 20, 2026
6a71e32
Remove unused packages, fix require() and stale comments
judeallred Feb 20, 2026
b9d536d
Update TODO.md: mark Phase 4b completed items
judeallred Feb 20, 2026
4d5b17e
Clean up stubbed GraphQL queries and remove analytics stubs
judeallred Feb 20, 2026
ddd592d
Move webpack/babel-loader deps to engine-web where they belong
judeallred Feb 20, 2026
6fc9db3
Upgrade Babel packages, remove obsolete plugins and core-js
judeallred Feb 20, 2026
c507e06
Remove GraphQL codegen infrastructure and replace with manual types
judeallred Feb 20, 2026
2865cca
Upgrade @testing-library/react 11 to 14 and add @testing-library/dom 9
judeallred Feb 20, 2026
a2cf645
Update TODO.md: mark Phase 4b items complete through testing-library
judeallred Feb 20, 2026
98db538
Upgrade Prettier 2 to 3 and reformat codebase
judeallred Feb 21, 2026
96897ab
Upgrade ESLint 7 to 9, fix all lint errors, add @types/lodash-es
judeallred Feb 21, 2026
0800f75
Fix type safety: resolve @ts-ignore comments and TS errors
judeallred Feb 21, 2026
07d1702
Update TODO.md: mark ESLint/Prettier/type safety items complete
judeallred Feb 21, 2026
96d9d5a
Add frontend and E2E CI workflows
judeallred Feb 21, 2026
7c429f8
Clean up Renovate config and update CI action versions
judeallred Feb 21, 2026
5dd1c13
Remove legacy deploy script and dead whyDidYouRender blocks
judeallred Feb 21, 2026
3ea9c84
Migrate 107 test files from ReactDOM.render to @testing-library/react
judeallred Feb 21, 2026
dbd07d0
Update TODO.md: mark all CI and test migration items complete
judeallred Feb 21, 2026
11cffbf
Fix @babel/parser resolution and babel config conflicts
judeallred Feb 21, 2026
24c2ae3
Fix WIP changes: Monaco model, DefaultProject fallback, engine-web er…
judeallred Mar 1, 2026
7ed7c7f
Fix ActivityHistory infinite loop and E2E smoke tests
judeallred Mar 1, 2026
429676f
Add reviewer panel rule and commit workflow
judeallred Mar 1, 2026
471632d
Fix Monaco editor blank content and simulation init failure
judeallred Mar 1, 2026
90ecfb5
Update E2E tests, docs, cursor rules, and fix import/project utils
judeallred Mar 1, 2026
39e8bbf
Enhance E2E tests for simulation initialization and update engine-web…
judeallred Mar 1, 2026
5d898db
Fix custom 3D model colors: add per-instance color buffer to polyLoader
judeallred Mar 1, 2026
a232f5f
Fix editor changes not affecting simulation after reset
judeallred Mar 1, 2026
e2411c9
Improve 3D scene lighting and material quality
judeallred Mar 2, 2026
82e333e
Enable all 16 skipped E2E tests and fix underlying issues
judeallred Mar 2, 2026
c9239be
Scope sim-core as standalone: move docs, update rules, fix paths
judeallred Mar 2, 2026
b4e3888
Fix console errors: R3F deprecated props, cloud API fetches, frozen e…
judeallred Mar 2, 2026
732e46a
Audit and fix engine-web catch blocks, clean up TODO, add follow-up s…
judeallred Mar 2, 2026
ceaa77a
Add editor loading placeholder, document Monaco and useSimulatorSelec…
judeallred Mar 2, 2026
9e8ccea
Rewrite README for standalone use, verify manualChunks sizes
judeallred Mar 2, 2026
54d7a30
Add Step Explorer and ActivityHistory E2E tests, update TODO coverage
judeallred Mar 2, 2026
4ee407b
Mark completed TODO items, add remaining items to follow-up section
judeallred Mar 2, 2026
5481698
Note ReactDOM.render warning from third-party deps in follow-up section
judeallred Mar 2, 2026
c00a412
Mark remaining TODO items: treeshake baseline, build self-containment…
judeallred Mar 2, 2026
bfd8c87
Improve Monaco editor: better options, Python completions, JS diagnos…
judeallred Mar 2, 2026
b351e98
Add comprehensive Monaco editor assessment: upgrade path, AI assistan…
judeallred Mar 2, 2026
3ebe37a
Upgrade Monaco Editor from 0.25.2 to 0.52.2
judeallred Mar 2, 2026
59d78a9
Update TODO.md: mark Monaco 0.52 upgrade as completed
judeallred Mar 2, 2026
eabd12f
add .nvmrc
judeallred Mar 17, 2026
917d1cb
Replace inline simulation blob with zip-based example projects
judeallred Mar 17, 2026
504d9eb
Fix E2E tests: WebGL headless support, example projects via manifest …
judeallred Mar 18, 2026
f021fd5
Restore wildfires-regrowth example, add menu coverage test
judeallred Mar 18, 2026
ad32897
Fix "Data missing for run" crash when switching example projects
judeallred Mar 18, 2026
14ac0b9
Fix simulation engine dropping custom agent properties
judeallred Mar 18, 2026
c95cb53
Fix editor not updating when switching example projects
judeallred Mar 19, 2026
a74cf78
Fix race condition causing blank viewer when switching running simula…
judeallred Mar 19, 2026
9a7e202
chore(sim-core): port surviving fork/main-only tweaks
judeallred May 1, 2026
5ab2c0a
Potential fix for pull request finding 'CodeQL / Workflow does not co…
judeallred May 1, 2026
54ce732
Fix CodeQL findings for PR CI
judeallred May 5, 2026
61bf651
Merge branch 'main' into modernization
judeallred May 5, 2026
701f733
Fix sim-core build, lint, and tests after merge drift
judeallred May 5, 2026
52582b6
Fix GraphQL query result typing for toHcFiles and partial project
judeallred May 5, 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
  •  
  •  
  •  
66 changes: 66 additions & 0 deletions .cursor/rules/autonomous-work.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
description: Autonomous work policy - keep iterating through the TODO until done
alwaysApply: true
---
# Autonomous Work Policy

## Keep Working Until Done

When the user says "proceed", "keep going", "continue", or similar:

1. Check [TODO.md](mdc:apps/sim-core/TODO.md) for the next incomplete item NOT in the "Follow-up Required" section
2. Plan the work, execute it, test it, commit it
3. **Then immediately pick up the next item** — do NOT stop and ask for permission
4. Repeat until all actionable TODO items are complete or you hit a genuine blocker

## Handling Blockers: Follow-up Required Section

When you encounter an item that genuinely requires user intervention:
1. Move it to the **"Follow-up Required TODOs"** section at the bottom of TODO.md
2. Add a note explaining what decision or input is needed
3. **Continue working on the next actionable item** — do NOT stop

## Console Errors and E2E Errors

- **Fix all console errors** that appear during normal operation or E2E tests (unless deliberately caused as part of a test)
- After each batch of fixes, check `apps/sim-core/console.log` (written by the consoleToDisk Vite plugin) for new errors
- React warnings (unknown props, deprecated APIs) should be fixed at the source, not suppressed
- Failed fetch calls to removed cloud APIs should be removed from code entirely

## What Counts as a Blocker (move to follow-up)

- A design decision with multiple valid approaches and significant trade-offs
- A dependency upgrade that requires user input (e.g. paid API keys, license decisions)
- A hosting/deployment platform choice
- A change that touches code outside `apps/sim-core/` (out of scope)

## What Does NOT Count as a Blocker (keep going)

- The next TODO item is large — break it into sub-tasks and start
- You finished a commit — check for the next item and continue
- Tests pass — move on to the next phase
- A file needs reading before editing — read it and edit it
- A test failure you cannot diagnose after 2 attempts — move to follow-up, continue with next item

## Work Loop

```
while (TODO has incomplete items outside "Follow-up Required") {
item = next incomplete item from TODO.md
plan sub-tasks
execute each sub-task (edit, test, fix)
check console.log for new errors, fix them
run E2E smoke tests
commit with descriptive message
update TODO.md (mark complete, move blockers to follow-up)
}
```

## Scope Boundary

Everything outside `apps/sim-core/` is out of scope. Do not modify files there.
The `.cursor/rules/` directory is an exception (IDE config).

## Commit Cadence

Commit after each logical unit of work (one migration phase, one package upgrade, one feature removal). Do not accumulate uncommitted changes across phases.
24 changes: 24 additions & 0 deletions .cursor/rules/commit-messages.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Commit Message Guidelines

Write commit messages as concise action statements.

- **Primary line:** Start with a clear verb (Add, Fix, Remove, Update, Refactor) describing what was done
- **Focus:** Capture the purpose (WHY) and the thing accomplished
- **Details:** If needed, add a blank line followed by a bulleted list of specific actions taken

## Examples

```
Fix WASM serialization producing invalid JS object shapes
```

```
Add centralized JSON helpers for Rust-to-JS conversion

- Add to_js_json and from_js_json in util.rs
- Replace serde_wasm_bindgen with JSON path where JS expects plain objects
```

```
Update agent state wrapper to persist custom fields correctly
```
42 changes: 42 additions & 0 deletions .cursor/rules/docs-as-source-of-truth.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
description: Treat strategy and architecture docs as source of truth - read before changes, update after changes
alwaysApply: true
---

# Documentation as Source of Truth

The following documents define how the project is structured, what decisions have been made, and what work is planned. **Treat them as authoritative** — read them before making changes, follow them during implementation, and update them when reality diverges.

## Key Documents

| Document | Purpose | Update When |
|----------|---------|-------------|
| [ARCHITECTURE.md](mdc:apps/sim-core/ARCHITECTURE.md) | System structure, component relationships, data flow | Adding/removing/moving modules, changing state management, altering data flow |
| [TODO.md](mdc:apps/sim-core/TODO.md) | Technical debt, migration roadmap, dependency status | Completing a TODO item, discovering new debt, upgrading a dependency |
| [TESTING_STRATEGY.md](mdc:apps/sim-core/TESTING_STRATEGY.md) | Test pyramid, TDD workflow, test conventions | Adding new test patterns, changing test tooling, updating commands |
| [README.md](mdc:apps/sim-core/README.md) | Entry point, build commands, project overview | Changing build commands, adding new apps/docs, altering project structure |
| [.cursor/rules/hash-labs.mdc](mdc:.cursor/rules/hash-labs.mdc) | AI agent conventions, error policies, build verification | Changing conventions, updating known-error lists, adding new patterns |

## Before Making Changes

**Study the relevant docs before starting any task.** Don't skim — actually read and internalize the sections that relate to the area you're about to touch. This applies to features, bug fixes, refactors, and migrations alike.

1. **Read ARCHITECTURE.md** to understand how the affected area is structured, what depends on it, and what patterns are in use.
2. **Read TODO.md** to check for known issues, planned work, or migration phases that overlap with your task.
3. **Read TESTING_STRATEGY.md** to know how the change should be tested (unit vs E2E, TDD for bugs).
4. **Read hash-labs.mdc** for conventions that apply (state management, deletion hygiene, error policies).
5. **Follow established patterns.** If the docs describe a pattern (e.g. state management via Context, component directory structure), follow it unless you have a strong reason not to.
6. **If you plan to deviate**, state why in the commit message or PR description.

## After Making Changes

1. **Update any doc that is now inaccurate.** If your change makes a statement in ARCHITECTURE.md, TODO.md, or TESTING_STRATEGY.md wrong, fix it in the same commit.
2. **Mark completed TODO items.** If you finish something listed in TODO.md, update its status.
3. **Add new patterns.** If you introduce a new convention or pattern, document it in the appropriate file.
4. **Don't leave stale docs.** Outdated documentation is worse than no documentation — it actively misleads.

## When to Propose vs. Apply

- **Factual updates** (completed items, corrected commands, fixed file paths): apply directly.
- **Convention changes** (new patterns, changed policies, altered workflows): propose to the user before applying.
- **Cursor rules changes**: always propose and get approval before modifying `.cursor/rules/*.mdc`.
Loading
Loading