Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1175 commits
Select commit Hold shift + click to select a range
24ba63f
feat: Add the codeBot, codeTag, and codeTagSpace properties to the on…
KallynGowdy Aug 14, 2025
a3440f3
docs: Add documentation on the new properties for onClick and onAnyBo…
KallynGowdy Aug 14, 2025
c9c2748
chore: Update CHANGELOG
KallynGowdy Aug 14, 2025
e4eed89
fix: An issue where WebsocketController.disconnect() could error if a…
KallynGowdy Aug 14, 2025
8b2c7bb
fix: An issue where providing a record key to watchBranch() would alw…
KallynGowdy Aug 14, 2025
209855a
chore: Update CHANGELOG
KallynGowdy Aug 14, 2025
8bba531
Merge pull request #649 from casual-simulation/feature/code-tool-click
KallynGowdy Aug 14, 2025
1587ec8
Merge remote-tracking branch 'origin/develop' into feat/geojson-rende…
TroyceGowdy Aug 14, 2025
238fc63
Merge pull request #650 from casual-simulation/fix/shared-document-br…
KallynGowdy Aug 14, 2025
1466166
feat: Expose the onUpdates observable of SharedDocument
KallynGowdy Aug 14, 2025
1bb5e42
feat: Skip inst permissions checks when the inst is a static inst
KallynGowdy Aug 14, 2025
60ee532
chore: Update CHANGELOG
KallynGowdy Aug 14, 2025
03e8a93
Merge branch 'develop' into feature/search
KallynGowdy Aug 14, 2025
6a6d58b
Merge pull request #648 from casual-simulation/feature/search
KallynGowdy Aug 14, 2025
585a3e5
Merge pull request #653 from casual-simulation/fix/static-inst-permis…
KallynGowdy Aug 14, 2025
843e6ba
chore: Move the SnsTopic to before the handleRecords lambda function …
KallynGowdy Aug 18, 2025
d036c43
fix: Enable the SubscriptionController when stripe isn't configured
KallynGowdy Aug 18, 2025
8e4b06b
fix: Use the first default subscription for when users have an active…
KallynGowdy Aug 18, 2025
fafede2
chore: Fix incorrect log message
KallynGowdy Aug 18, 2025
9c15bb0
fix: Use the same logic for the AuthController as the rest of the sub…
KallynGowdy Aug 18, 2025
00d9819
refactor: Remove the "forceAllowSubscriptionFeatures" parameter from …
KallynGowdy Aug 18, 2025
f036fa6
docs: Add the "Document Actions" page to the sidebars
KallynGowdy Aug 18, 2025
8eaaca5
Add GeoJSON3DOverlay.ts
TroyceGowdy Aug 18, 2025
344eaa7
chore: Update CHANGELOG
KallynGowdy Aug 18, 2025
a3a8b52
docs: Add documentation for shared documents
KallynGowdy Aug 18, 2025
b2ecc82
feat: Upgrade to Prisma v6
KallynGowdy Aug 19, 2025
f37cfb1
feat: Add a SQLite version of the Prisma schema
KallynGowdy Aug 19, 2025
22fdb16
feat: Copy and rename a bunch of Prisma stores
KallynGowdy Aug 19, 2025
c88795c
feat: Continue updating SQLite stores
KallynGowdy Aug 19, 2025
87d21dd
chore: Add scripts for generating clients for cockroachdb and sqlite
KallynGowdy Aug 19, 2025
1579db3
feat: Update ServerConfig and ServerBuilder to support sqlite
KallynGowdy Aug 19, 2025
7a2ffc5
change: 'add_bot_map_overlay' to 'add_bot_map_layer' and 'remove_bot_…
TroyceGowdy Aug 20, 2025
c2c2c25
refactor: centralize GeoJSON processing logic into GeoJSONRenderer
TroyceGowdy Aug 20, 2025
47fb655
chore: fix build errors
TroyceGowdy Aug 20, 2025
48e687d
fix: Ensure that better-sqlite3 is able to be installed and used prop…
KallynGowdy Aug 20, 2025
7c583e1
refactor: implement dynamic imports for GeoJSONRenderer
TroyceGowdy Aug 20, 2025
6e63cb7
refactor: Use integers for timestamps in SQLite
KallynGowdy Aug 20, 2025
31d738a
fix: Try using Int8 as the date type for Sqlite
KallynGowdy Aug 20, 2025
2116aec
chore: adding claude agent to @claude to attempt a fix on an issue wi…
rboorman Aug 20, 2025
70deab8
chore: adjusted claude action
rboorman Aug 20, 2025
ef4a375
chore: added an issue template
rboorman Aug 20, 2025
a9fdfc8
chore: added id_token permission to get a token
rboorman Aug 20, 2025
f73a683
fix: Use Decimal type instead of DateTime or Int for SQLite dates
KallynGowdy Aug 20, 2025
a47833e
chore: Ignore .devdbrc
KallynGowdy Aug 20, 2025
67f6574
fix: template.yml to not include unknown properties
KallynGowdy Aug 20, 2025
0c40309
chore: Update CHANGELOG
KallynGowdy Aug 20, 2025
1b67775
chore: Install importmap-vite-plugin
KallynGowdy Aug 20, 2025
70c63dd
feat: Make yjs able to be imported by user scripts via the importmap …
KallynGowdy Aug 20, 2025
b63cf7d
feat: Add luxon and preact import maps
KallynGowdy Aug 20, 2025
c070692
fix: os.addMapLayer and os.removeMapLayer test suite
TroyceGowdy Aug 21, 2025
6ba8405
chore: Update Husky
KallynGowdy Aug 21, 2025
098e898
fix: Broken snapshots
KallynGowdy Aug 21, 2025
d2901b2
fix: Remove generated folders from linting
KallynGowdy Aug 21, 2025
b24a81c
fix: Minify outputs from the static build
KallynGowdy Aug 21, 2025
df20a96
fix: Only configure import maps for non-static builds
KallynGowdy Aug 21, 2025
862a1e0
chore: Update CHANGELOG
KallynGowdy Aug 21, 2025
1560e9b
Merge pull request #655 from casual-simulation/feature/sqlite
KallynGowdy Aug 21, 2025
a79f3ee
feat: Support three as a user library
KallynGowdy Aug 21, 2025
44702e2
chore: Install es-toolkit
KallynGowdy Aug 21, 2025
efb49cb
refactor: Replace usages of lodash with es-toolkit
KallynGowdy Aug 21, 2025
1652468
fix: Build error
KallynGowdy Aug 21, 2025
a65f610
refactor: Replace some usages of flatMap with the native function
KallynGowdy Aug 21, 2025
0f1b8b1
Merge branch 'develop' into feature/shared-yjs
KallynGowdy Aug 21, 2025
0b5a974
refactor: Replace additional usages of helpers with native functions
KallynGowdy Aug 21, 2025
2631781
refactor: Remove lodash
KallynGowdy Aug 21, 2025
e5de8ba
chore: Alias lodash so that it is replaced with es-toolkit if it happ…
KallynGowdy Aug 21, 2025
ac26c05
feat: Make the filepond component load dynamically so that it is spli…
KallynGowdy Aug 21, 2025
b49559e
Merge pull request #659 from casual-simulation/feature/shared-yjs
KallynGowdy Aug 21, 2025
c1307ed
Merge remote-tracking branch 'origin/develop' into feature/replace-lo…
KallynGowdy Aug 21, 2025
a8d2f1b
chore: Update CHANGELOG
KallynGowdy Aug 21, 2025
caf1747
change: convert localEvent methods to async in MapView.ts and BotShap…
TroyceGowdy Aug 21, 2025
91f58e5
fix: docs build error
KallynGowdy Aug 21, 2025
653510d
Merge branch 'feature/replace-lodash' into feature/async-upload-serve…
KallynGowdy Aug 21, 2025
507212d
fix: Ensure that the filepond isn't loaded until the modal is shown
KallynGowdy Aug 21, 2025
aae47d1
Merge pull request #660 from casual-simulation/feature/replace-lodash
KallynGowdy Aug 21, 2025
040b1c7
Merge pull request #661 from casual-simulation/feature/async-upload-s…
KallynGowdy Aug 21, 2025
9caab19
fix: Ensure that builds cause the build pipeline to fail when they fail
KallynGowdy Aug 21, 2025
df00f19
fix: Support paths that aren't windows when resolving aliases for ESB…
KallynGowdy Aug 21, 2025
bb28fe8
fix: remove portal event handling from MapView. MapView.ts now only h…
TroyceGowdy Aug 22, 2025
099e18f
fix: Use the default Prisma SQLite database adapter instead of better…
KallynGowdy Aug 22, 2025
8e15f18
fix: Serverless initialization when no search interface is configured
KallynGowdy Aug 22, 2025
d5a3565
Initial plan
Copilot Aug 22, 2025
9478bd0
Implement core marker support for getSharedDocument across the stack
Copilot Aug 22, 2025
8132a41
Add tests for getSharedDocument marker functionality
Copilot Aug 22, 2025
c3ae5b8
fix: Build error
KallynGowdy Aug 22, 2025
78bc385
chore: Update AMI Node.js version to 20.18.3
KallynGowdy Aug 22, 2025
f89da64
chore: Upgrade packer.json to packer.json.pkr.hcl
KallynGowdy Aug 22, 2025
d6ccbc2
chore: Note packer init command
KallynGowdy Aug 22, 2025
a3b6718
chore: Update CHANGELOG Date
rboorman Aug 22, 2025
f34d3ce
Merge branch 'develop'
rboorman Aug 22, 2025
d4436ee
v3.7.0
rboorman Aug 22, 2025
36b61ee
fix: Support the "casualos.records" websocket protocol when connectin…
KallynGowdy Aug 25, 2025
4537a49
chore: Update CHANGELOG
KallynGowdy Aug 25, 2025
cebee2d
fix: An issue where the comId logo background color would not be loa…
KallynGowdy Aug 25, 2025
7afae0a
chore: Update CHANGELOG
KallynGowdy Aug 25, 2025
cb55a4d
Initial plan
Copilot Aug 25, 2025
7506d9d
Initial plan
Copilot Aug 25, 2025
6f553ec
Add os.createRecord function with tests and whitelist in RecordsManager
Copilot Aug 25, 2025
ceffab5
Changes before error encountered
Copilot Aug 25, 2025
0f9824f
chore: Remove package-lock.json
KallynGowdy Aug 26, 2025
afd39db
chore: Update docs for listStudioRecords
KallynGowdy Aug 26, 2025
a733d0c
Initial plan
Copilot Aug 26, 2025
2f540f4
chore: Add basic copilot setup steps
KallynGowdy Aug 26, 2025
30cd2aa
Initial plan
Copilot Aug 26, 2025
6165f80
Add comprehensive .github/copilot-instructions.md with build workflow…
Copilot Aug 26, 2025
226ed0e
fix: Build error
KallynGowdy Aug 26, 2025
759875a
chore: Update copilot-instructions
KallynGowdy Aug 26, 2025
f9f2b85
chore: Update copilot-instructions
KallynGowdy Aug 26, 2025
f2c78a5
Merge pull request #666 from casual-simulation/copilot/fix-665
KallynGowdy Aug 26, 2025
3622981
Merge pull request #668 from casual-simulation/copilot/fix-667
KallynGowdy Aug 26, 2025
c407390
Merge pull request #663 from casual-simulation/copilot/fix-662
KallynGowdy Aug 26, 2025
3de447c
Merge pull request #669 from casual-simulation/copilot/fix-8b7f4305-1…
KallynGowdy Aug 26, 2025
a109ce7
Changes before error encountered
Copilot Aug 26, 2025
972ab95
chore: Update CHANGELOG
KallynGowdy Aug 26, 2025
6e2b535
Initial plan
Copilot Aug 26, 2025
2741379
Implement os.listPermissions function with tests
Copilot Aug 26, 2025
732910e
Revert "fix: os.addMapLayer and os.removeMapLayer test suite"
TroyceGowdy Aug 26, 2025
d78058f
fix: copilot-setup-steps
KallynGowdy Aug 26, 2025
a579ffc
chore: Create a request interface for os.listPermissions()
KallynGowdy Aug 26, 2025
9aa1cf5
docs: Add documentation for os.listPermissions()
KallynGowdy Aug 26, 2025
77d2295
Fix marker-based filtering in listInsts and add listInsts to allowed …
Copilot Aug 26, 2025
8a44b58
fix: Filter based on marker correctly
KallynGowdy Aug 26, 2025
b8d4f92
fix: Build errors in AuxLibrary.spec.ts
KallynGowdy Aug 26, 2025
fe4143e
feat: Implement listInstsByRecordAndMarker() for Prisma
KallynGowdy Aug 26, 2025
746be3b
feat: Add models for database records
KallynGowdy Aug 21, 2025
a4312c2
wip: Work on scaffolding out database records
KallynGowdy Aug 21, 2025
477cae6
fixed broken link that crashed the site
puzzleboxsoftworks Aug 26, 2025
f60313b
wip: Continue working on database support
KallynGowdy Aug 26, 2025
49818f7
feat: Add the database resource kind and permissions
KallynGowdy Aug 27, 2025
2243afa
feat: Add the database resource kind and entitlement feature
KallynGowdy Aug 27, 2025
e2b8cfc
refactor: Transform input items after checking subscription metrics
KallynGowdy Aug 27, 2025
69c7e6a
feat: Support configuring database features with SubscriptionConfigBu…
KallynGowdy Aug 27, 2025
aed5274
feat: Implement an initial version of the DatabaseRecordsController
KallynGowdy Aug 27, 2025
985a8a9
feat: Add the ability to query the database interface
KallynGowdy Aug 27, 2025
a9f3349
feat: Add the ability to control whether a transaction is automatical…
KallynGowdy Aug 27, 2025
2336b67
feat: Add endpoints for the DatabaseRecordsController
KallynGowdy Aug 27, 2025
f7a7595
feat: Update database schemas
KallynGowdy Aug 27, 2025
f6ff107
feat: Implement DatabaseRecordStores for both Prisma and SQLite
KallynGowdy Aug 27, 2025
97a0485
feat: Update ServerConfig with options for configuring the database i…
KallynGowdy Aug 27, 2025
65e4897
feat: Implement a basic SQliteDatabaseInterface
KallynGowdy Aug 27, 2025
7f59243
fix: Separate portal and bot map layer APIs. This separates two disti…
TroyceGowdy Aug 26, 2025
43be19e
change: changed name of addBotMapOverlay and removeBotMapOverlay func…
TroyceGowdy Aug 27, 2025
011fe17
Merge remote-tracking branch 'origin/develop' into feat/geojson-rende…
TroyceGowdy Aug 28, 2025
22481e8
refactor: Use @libsql/client instead of better-sqlite3
KallynGowdy Aug 28, 2025
89e4693
feat: Implement TursoDatabaseInterface
KallynGowdy Aug 28, 2025
ee79d53
feat: Support configuring databases
KallynGowdy Aug 29, 2025
8af4101
fix: databaseName to properly hold a UUID
KallynGowdy Aug 29, 2025
47e5a6f
feat: Add the POST /api/v2/records/database/query endpoint
KallynGowdy Aug 29, 2025
14514e1
test: Add a couple simple tests to ensure that the user has permissio…
KallynGowdy Aug 29, 2025
08436f2
chore: Remove duplicate TursoSearchInterface file
KallynGowdy Aug 29, 2025
4ffcdc3
fix: Handling of boolean input properties in the CLI to support "true…
KallynGowdy Aug 29, 2025
e84d046
Merge pull request #674 from puzzleboxsoftworks/patch-1
KallynGowdy Aug 29, 2025
73707a0
Merge pull request #673 from casual-simulation/copilot/fix-672
KallynGowdy Aug 29, 2025
daf1677
feat: Add functions for database records
KallynGowdy Aug 29, 2025
58b723b
feat: Add the database procedures to the RecordsManager whitelist
KallynGowdy Aug 29, 2025
9062213
revert: reset changes to addMapLayer in AuxLibrary.ts to match origin…
TroyceGowdy Sep 1, 2025
a710494
feat: Map query result rows for easy use and also support batching
KallynGowdy Sep 2, 2025
b3dd5df
change: remove turf package
TroyceGowdy Sep 2, 2025
4c48748
fix: fix build errors
TroyceGowdy Sep 2, 2025
1ce08f4
Revert "change: remove turf package"
TroyceGowdy Sep 3, 2025
31f4d52
revert: "fix: fix build errors"
TroyceGowdy Sep 3, 2025
a9c936f
feat: Make arrays go to a separate items property in generic results
KallynGowdy Sep 3, 2025
da77c3e
fix: Some build errors
KallynGowdy Sep 3, 2025
6e6a834
fix: Some tests in RecordsServer
KallynGowdy Sep 3, 2025
cf59508
fix: Update WebhookRecordsController to work with the new CrudRecords…
KallynGowdy Sep 3, 2025
425c48e
feat: Save the database ID
KallynGowdy Sep 4, 2025
bacfbd3
feat: Properly map rows returned from the libSql client
KallynGowdy Sep 4, 2025
0e67aae
fix: Properly create tokens for databases
KallynGowdy Sep 4, 2025
d1e5210
fix: Return SQL errors as invalid_request
KallynGowdy Sep 4, 2025
8473128
fix: Update test snapshots
KallynGowdy Sep 4, 2025
3399c9c
fix: PackageRecordsController to allow updating markers
KallynGowdy Sep 4, 2025
7e75372
docs: Update types for the new database functions
KallynGowdy Sep 4, 2025
06f1d20
chore: Update CHANGELOG
KallynGowdy Sep 4, 2025
98ee914
feat: Add a helper function for creating statements
KallynGowdy Sep 4, 2025
fb15db5
Update src/aux-records/RecordsServer.spec.ts
KallynGowdy Sep 4, 2025
62a3466
Merge branch 'develop' into feature/turso
KallynGowdy Sep 4, 2025
71ced39
fix: Update tests snapshots
KallynGowdy Sep 4, 2025
ac8a0b2
chore: Remove package-lock.json
KallynGowdy Sep 4, 2025
ce5fd21
Merge branch 'develop' into copilot/fix-670
KallynGowdy Sep 4, 2025
44b9ab2
Initial plan
Copilot Sep 5, 2025
cd1be01
Initial plan
Copilot Sep 5, 2025
e1d623c
Implement user notifications page - core functionality complete
Copilot Sep 5, 2025
b4adddd
Rework OpenID sign-in to use redirects instead of popups
Copilot Sep 5, 2025
ed3cc0b
Update CHANGELOG.md for OAuth redirect fix
Copilot Sep 5, 2025
656cdd4
fix: An issue where Meta Quest devices would not be able to process i…
KallynGowdy Sep 5, 2025
ead0450
chore: Update CHANGELOG
KallynGowdy Sep 5, 2025
00efe5a
Merge pull request #658 from casual-simulation/feat/geojson-renderer-…
KallynGowdy Sep 8, 2025
c232f2e
Merge pull request #671 from casual-simulation/copilot/fix-670
KallynGowdy Sep 8, 2025
566e1db
fix: Preserve the existing behavior for login via the player
KallynGowdy Sep 8, 2025
4e337be
Merge remote-tracking branch 'origin/develop' into copilot/fix-652
KallynGowdy Sep 8, 2025
5614fae
Merge pull request #680 from casual-simulation/copilot/fix-561
KallynGowdy Sep 8, 2025
0a249c8
chore: Update CHANGELOG
KallynGowdy Sep 8, 2025
a55c0e1
Merge pull request #681 from casual-simulation/copilot/fix-652
KallynGowdy Sep 8, 2025
72f9433
Merge branch 'develop' into feature/turso
KallynGowdy Sep 8, 2025
801f6bf
Merge pull request #676 from casual-simulation/feature/turso
KallynGowdy Sep 8, 2025
179765a
fix: Ensure that the @libsql binaries are copied to the dist director…
KallynGowdy Sep 8, 2025
41bc0bc
fix: An issue where Meta Quest devices would not be able to process i…
KallynGowdy Sep 5, 2025
df4ed32
fix: Install the libsql binaries via NPM instead of copying them from…
KallynGowdy Sep 17, 2025
e2aee78
fix: prevent duplicate remote connections on rapid tab refresh
TroyceGowdy Sep 18, 2025
be479bc
chore: update CHANGELOG.md
TroyceGowdy Sep 18, 2025
cea62ba
fix: Allow listing data without logging in
KallynGowdy Sep 19, 2025
5c9b1b6
fix: Require login for regular os.listData() requests
KallynGowdy Sep 22, 2025
396549b
chore: Update CHANGELOG
KallynGowdy Sep 22, 2025
ce47ed2
Merge remote-tracking branch 'origin/master' into develop
KallynGowdy Sep 22, 2025
4bd7842
chore: Update CHANGELOG Date
rboorman Sep 23, 2025
595446e
Merge branch 'develop'
rboorman Sep 23, 2025
6da6837
v3.7.1
rboorman Sep 23, 2025
a4353dc
fix: Actually do the login handling properly
KallynGowdy Sep 23, 2025
5766122
tests: Added comprehensive test suite for rapid refresh scenarios
TroyceGowdy Sep 24, 2025
a23814a
Merge branch 'develop' into fix/os.remotes_sometimes_report_stale_rem…
TroyceGowdy Sep 24, 2025
065a190
Merge branch 'develop' into fix/os.remotes_sometimes_report_stale_rem…
KallynGowdy Sep 25, 2025
531f574
Merge pull request #684 from casual-simulation/fix/os.remotes_sometim…
KallynGowdy Sep 25, 2025
4e00a4c
fix: An issue where tag masks would be dropped if the bot was added t…
KallynGowdy Sep 25, 2025
2719a34
chore: Update CHANGELOG
KallynGowdy Sep 25, 2025
6e61489
fix: issue #686 for LocalStoragePartition
KallynGowdy Sep 25, 2025
50fbc01
Initial plan
Copilot Sep 30, 2025
c0899f9
Fix: Remove erroneous rounding of from position values in drag events
Copilot Sep 30, 2025
9ff33f2
Initial plan
Copilot Oct 1, 2025
1e4015f
Add ai.listChatModels() function and supporting infrastructure
Copilot Oct 1, 2025
1a01a44
Add tests for AIController.listChatModels() and fix implementation
Copilot Oct 1, 2025
a1c81d3
Fix AIController.listChatModels implementation and tests
Copilot Oct 1, 2025
138897d
Update CHANGELOG.md with ai.listChatModels feature
Copilot Oct 1, 2025
87ce20b
Initial plan
Copilot Oct 2, 2025
952ce4e
Merge pull request #690 from casual-simulation/copilot/fix-5b8a4507-c…
KallynGowdy Oct 2, 2025
ef0407f
Add os.eraseInst() function to delete insts programmatically
Copilot Oct 2, 2025
648fa01
Fix test to use proper record key format
Copilot Oct 2, 2025
18b0009
feat: Support superUsers for listChatModels()
KallynGowdy Oct 2, 2025
609b689
fix: ai.listChatModels() implementation and add tests
KallynGowdy Oct 2, 2025
ae3ad26
test: Add tests for aiListChatModels
KallynGowdy Oct 2, 2025
0569400
chore: Add additional logging for tracking timeouts in SimulationWebh…
KallynGowdy Oct 2, 2025
51e59b3
Initial plan
Copilot Oct 2, 2025
9b1ddc4
Merge pull request #692 from casual-simulation/copilot/fix-7b4bf3ff-3…
KallynGowdy Oct 2, 2025
31f72fc
Merge branch 'develop' into copilot/fix-d4292297-3fc1-4edc-9797-d0170…
KallynGowdy Oct 2, 2025
7649ab6
Merge pull request #693 from casual-simulation/copilot/fix-d4292297-3…
KallynGowdy Oct 2, 2025
d2dcbb6
Add mapPortal priority in sheetPortal button
Copilot Oct 2, 2025
f721ef9
Merge pull request #694 from casual-simulation/copilot/fix-12176e0a-d…
KallynGowdy Oct 2, 2025
46412e0
chore: Update CHANGELOG
KallynGowdy Oct 2, 2025
ae199e1
feat: Record webhook logs to the record that the webhook is in, not t…
KallynGowdy Oct 2, 2025
149a4af
fix: Allow null publisher IDs
KallynGowdy Oct 2, 2025
15a2ceb
chore: Update CHANGELOG
KallynGowdy Oct 2, 2025
4b906d2
fix: Webhook tests in RecordsServer.spec.ts
KallynGowdy Oct 6, 2025
f7e66e9
feat: Add subscription configuration for credit fees
KallynGowdy Oct 7, 2025
aaea1fc
Merge branch 'develop' into feature/integrate-xp-contract
KallynGowdy Oct 7, 2025
71ce240
chore: Update pnpm-lock.yaml
KallynGowdy Oct 8, 2025
ba7f075
fix: Use es-toolkit instead of lodash
KallynGowdy Oct 8, 2025
a87feb3
fix: An issue where the test TigerBeetle executable wouldn't be downl…
KallynGowdy Oct 8, 2025
580e296
fix: Build errors from bad merge
KallynGowdy Oct 8, 2025
fe008c8
fix: listTransfers() to use the right flags
KallynGowdy Oct 8, 2025
34b2ad9
feat: Add the ability to grant studios credits based on the invoices …
KallynGowdy Oct 8, 2025
616009f
feat: Grant users and studios credits when they pay their invoices
KallynGowdy Oct 8, 2025
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
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .aws/ami/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ This assumes you installed Packer to your PATH.

```
$ cd ./.aws/ami
$ packer build packer.json
$ packer init packer.json.pkr.hcl
$ packer build packer.json.pkr.hcl
```

When finished, you will have a new AMI named `nodejs-docker-ubuntu20-{{timestamp}}` in your AWS account.
45 changes: 0 additions & 45 deletions .aws/ami/packer.json

This file was deleted.

63 changes: 63 additions & 0 deletions .aws/ami/packer.json.pkr.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
packer {
required_version = ">= 0.12.0"
required_plugins {
amazon = {
source = "github.com/hashicorp/amazon"
version = "~> 1"
}
}
}

variable "aws_region" {
type = string
default = "us-east-1"
}

variable "node_version" {
type = string
default = "20.18.3"
}

data "amazon-ami" "autogenerated_1" {
filters = {
architecture = "arm64"
"block-device-mapping.volume-type" = "gp2"
name = "ubuntu/images/hvm-ssd/ubuntu-focal-20.04-arm64-server-*"
root-device-type = "ebs"
virtualization-type = "hvm"
}
most_recent = true
owners = ["099720109477"]
profile = "casualsimulation"
region = "${var.aws_region}"
}

locals { timestamp = regex_replace(timestamp(), "[- TZ:]", "") }

source "amazon-ebs" "ubuntu20-ami" {
ami_description = "A Ubuntu 20.04 AMI that has Node.js and Docker"
ami_name = "nodejs-docker-ubuntu20-${local.timestamp}"
instance_type = "t4g.micro"
profile = "casualsimulation"
region = "${var.aws_region}"
source_ami = "${data.amazon-ami.autogenerated_1.id}"
ssh_username = "ubuntu"
}

build {
sources = ["source.amazon-ebs.ubuntu20-ami"]

provisioner "shell" {
script = "${path.root}/install-aws-cli.sh"
}

provisioner "shell" {
script = "${path.root}/install-docker.sh"
}

provisioner "shell" {
environment_vars = ["NODE_VERSION=${var.node_version}"]
script = "${path.root}/install-nodejs.sh"
}

}
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/fix-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: 🛠️ Fix Request
description: Request a bug fix or change that Claude can auto-pick up
labels: ['fix', 'claude']
body:
- type: markdown
attributes:
value: |
Thanks for filing a fix request!
👉 To have Claude auto-create a branch & PR, make sure to **comment** with:

```
@claude please fix this
```

Claude will:
- Read this issue
- Create a branch
- Apply changes
- Run tests/linters if available
- Open a pull request tied to this issue

- type: input
id: summary
attributes:
label: ✏️ Summary
description: A short description of the problem
placeholder: 'Login button throws 500 when email already exists'

- type: textarea
id: steps
attributes:
label: ✅ Steps to Reproduce / Notes
description: Steps, logs, or extra info Claude should see
placeholder: |
1. Go to /signup
2. Enter an already-registered email
3. Submit form → error 500
226 changes: 226 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,226 @@
# CasualOS Copilot Coding Agent Instructions

## Repository Overview

**CasualOS** is a set of web-based tools designed to facilitate the creation of real-time, multi-user, context-aware interactive experiences. This is a large-scale TypeScript/JavaScript monorepo (36+ packages) using PNPM for package management, built with modern web technologies including Vue.js, Three.js, and Node.js.

**Repository Statistics:**

- 36 workspace packages total (34 in src/ + docs + root)
- Primary languages: TypeScript (80%), JavaScript, Vue, HTML, CSS
- Package manager: pnpm v10.10.0+ (managed by corepack)
- Node.js: v20.18+ required
- Build tool: TypeScript compiler + esbuild + Vite
- Test framework: Jest
- Linting: ESLint v9 with TypeScript ESLint
- Docker support for development services

## Build and Development Workflow

### Prerequisites and Environment Setup

**ALWAYS run these commands in this exact order before any other operations:**

1. **Enable corepack** (critical for pnpm):

```bash
corepack enable
```

2. **Install dependencies** (use frozen lockfile in CI, regular install for development):

```bash
npm run bootstrap # Production: pnpm install --frozen-lockfile
# OR for development without network restrictions:
npm run bootstrap -- --ignore-scripts
```

3. **Start development services** (required for full functionality):
```bash
# Choose one based on your Docker setup:
npm run docker:dev # If using standard docker
npm run nerdctl:dev # If using nerdctl/Rancher Desktop
```

### Build Commands - Execution Order and Timing

**CRITICAL: Build commands must be run in this specific order:**

1. **Build Full Project** (5-8 minutes total):
```bash
npm run build # Complete build including server, proxy, CLI
```

**Known Issues & Workarounds:**

- **Prisma Generation Failure**: Bootstrap may fail with "binaries.prisma.sh ENOTFOUND" - use `--ignore-scripts` flag and generate Prisma separately
- **Memory Issues**: Use `--max_old_space_size=4096` for Node.js in memory-intensive operations
- **Git Tags Missing**: Some builds (CLI) require git tags for version info - expect failures in fresh clones without release tags
- **Build Dependencies**: Libraries MUST be built before server/web components
- **Docker Services**: MongoDB, Redis, and other services in docker-compose.dev.yml are required for full functionality, but should not be required for building.
- **Windows-specific**: Special node-gyp configuration required (see CI workflow)

### Testing Commands

**Test Execution Order:**

```bash
# Run all tests (10-15 minutes):
npm test # Equivalent: jest --verbose

# Watch mode for development:
npm run test:watch

# CI testing (with proper flags):
npm run test:ci # Includes --no-cache --ci flags
```

**Common Test Issues:**

- Some tests may have network dependencies and console warnings (expected)
- Use `--detectOpenHandles --forceExit` flags for complete test runs

### Linting and Code Quality

**Linting Commands:**

```bash
npm run lint # Full repository lint
npm run lint:common # Individual package linting
npm run lint:server # Server-specific linting
```

**Key Linting Rules:**

- Header comments required on most TypeScript files
- Consistent type imports: Use `import type` for type-only imports (auto-fixable)
- No unused imports (auto-fixable)
- Vue component specific rules in components directories

## Project Architecture and Layout

### Core Directory Structure

```
/
├── .github/ # GitHub workflows, templates, instructions
├── docs/ # Documentation site (Docusaurus)
├── script/ # Build helpers, deployment scripts
├── docker/ # Development services configuration
├── src/ # All source packages (34 packages)
│ ├── aux-common/ # Core shared utilities and types
│ ├── aux-server/ # Main web application server
│ │ ├── aux-backend/ # Backend API configuration (includes Prisma)
│ │ ├── aux-web/ # Frontend Vue.js applications
│ ├── aux-vm/ # Virtual machine abstraction
│ ├── aux-vm-browser/ # Browser VM implementation
│ ├── aux-vm-client/ # Client VM implementation
│ ├── aux-vm-node/ # Node.js VM implementation
│ ├── aux-records/ # Backend API implementation
│ ├── aux-runtime/ # Runtime execution engine (user scripts & functions, compilers, etc.)
│ ├── casualos-cli/ # Command-line interface
│ └── [21 other packages] # Supporting libraries (crypto, websocket, etc.)
├── package.json # Root package.json with scripts
├── lerna.json # Lerna configuration
├── tsconfig.json # TypeScript project references
└── pnpm-workspace.yaml # PNPM workspace configuration
```

### Key Configuration Files

- **eslint.config.mjs**: ESLint v9 flat config with TypeScript rules
- **tsconfig.json**: TypeScript project references for all packages
- **jest.config.js**: Jest testing configuration with ts-jest
- **docker/docker-compose.dev.yml**: Development services (MongoDB, Redis, MinIO, etc.)

### CI/CD Pipeline (GitHub Actions)

**Continuous Integration (.github/workflows/continuous-integration-workflow.yml):**

- Triggers: All branches except master/staging/release
- Matrix: ubuntu/macOS/windows with Node 20.x
- Steps: bootstrap → test → build → lint → docs build
- **Critical**: Uses `corepack enable` and specific node-gyp setup for Windows

**Release Pipeline (.github/workflows/release.yml):**

- Triggers: master, staging, release/\* branches
- Steps: test → build → npm publish → docs deploy → Docker build/push
- Publishes to NPM, DockerHub, and GitHub Container Registry

**Known CI Issues:**

- Windows requires special node-gyp configuration
- Tests use `--max_old_space_size=4096` for memory management
- Docker builds have ARM32/ARM64 variants via AWS CodeBuild

## Development Best Practices

### Code Style Guidelines (from existing .github/instructions)

- **Naming**: camelCase (variables/functions), PascalCase (classes), ALL_CAPS (constants)
- **Private members**: prefix with `_` and use `private` keyword
- **Imports**: Use ES6 modules, prefer `import type` for types
- **Documentation**: JSDoc with required `@dochash` and `@docid` tags
- **Error handling**: try/catch for void functions, always log errors with class/method names

### TypeScript Project References

The repository uses TypeScript project references for efficient incremental builds. Each package in src/ has its own tsconfig.json that references dependencies.

### Package Dependencies

- **Critical**: aux-common is foundational - many packages depend on it
- **Build order**: Libraries (aux-common, aux-vm, etc.) → Server → Applications
- **Circular dependencies**: Avoided through careful architecture

### Release Notes

Make sure to update CHANGELOG.md with a summary of the changes you've made.

## Quick Start for Common Tasks

### Making Code Changes

1. `corepack enable && npm run bootstrap`
2. `npm run docker:dev` (start services)
3. Make your changes
4. `npm run build` (full build)
5. `npm test` (verify changes)
6. `npm run lint` (check code quality)
7. Update CHANGELOG.md

### Working with Specific Packages

```bash
# Build specific package:
npm run build:server
npm run build:proxy
npm run build:cli

# Lint specific package:
npm run lint:common
npm run lint:server
npm run lint:components
```

### Development Server

```bash
npm run watch # Starts Vite in watch mode + nodemon
# Server available at http://localhost:3000 and http://localhost:3002
```

### Documentation Updates

```bash
cd docs
npm start # Development server
npm run build # Production build
```

## Trust These Instructions

These instructions are based on comprehensive analysis of the codebase, successful testing of build/test/lint commands, and examination of CI/CD pipelines. **Only search for additional information if these instructions are incomplete or incorrect for your specific task.** The commands and workflows documented here have been validated and account for the major dependencies and timing requirements of this complex monorepo.

When in doubt, follow the exact command sequences provided, especially for bootstrap → build → test workflows which are critical for this repository's build system.
Loading
Loading