Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
228 commits
Select commit Hold shift + click to select a range
a924fc3
Use configurable hooks for most logging
garrettmflynn Sep 27, 2025
bb21a77
Update header format
garrettmflynn Sep 27, 2025
a128946
Properly scope printing
garrettmflynn Sep 27, 2025
a2de1cf
Improve formatting
garrettmflynn Sep 27, 2025
ffd21b2
Update hooks.ts
garrettmflynn Sep 27, 2025
bef0b33
Fix build services command. Allow custom hooks
garrettmflynn Sep 29, 2025
d2a0ea3
Re-enable printing from electron by default
garrettmflynn Sep 29, 2025
35157a9
Allow using CLI Hooks directly for Electron
garrettmflynn Sep 29, 2025
63b9848
Print electron ready state
garrettmflynn Sep 29, 2025
062be09
Move UI to core. Allow theming
garrettmflynn Sep 29, 2025
5b232c6
Improve hooks configurability
garrettmflynn Sep 29, 2025
53aa31d
Update environment.yml
garrettmflynn Sep 29, 2025
9699271
Fix testing
garrettmflynn Sep 29, 2025
4e09f08
Upgrade all vite-related deps for consistent version
garrettmflynn Sep 29, 2025
d1eb3e8
Reduce needless event monitor duplication
garrettmflynn Sep 30, 2025
0494616
Improve event listener management
garrettmflynn Sep 30, 2025
bf4c116
Fix service filtering
garrettmflynn Sep 30, 2025
68a6344
Use custom SEA over pkg
garrettmflynn Sep 30, 2025
0f8f96f
Update service build messages
garrettmflynn Sep 30, 2025
f05d607
Update docs
garrettmflynn Sep 30, 2025
1fa3314
Improve CLI based on best practices repo
garrettmflynn Oct 1, 2025
eb76bdc
Improve organization with Claude
garrettmflynn Oct 1, 2025
51275b4
Additional fixes for possible memory leak and TS issues.
garrettmflynn Oct 1, 2025
bc1a4cd
Completed major refactor of the CLI
garrettmflynn Oct 2, 2025
9c3469d
Update logger
garrettmflynn Oct 2, 2025
426f75c
Improve logger output and integration with UI. Ensure ASAR integrity …
garrettmflynn Oct 2, 2025
88908a3
Fix CLI error handling for tests
garrettmflynn Oct 2, 2025
f261779
Fix temporary output handling on Electron builds
garrettmflynn Oct 2, 2025
59dd476
Fix builds
garrettmflynn Oct 2, 2025
bd9c674
Fix CI
garrettmflynn Oct 2, 2025
26f809e
Add lock file
garrettmflynn Oct 2, 2025
9d8a0e4
Update ESBuild
garrettmflynn Oct 2, 2025
ce9e376
Fix ASAR integrity check
garrettmflynn Oct 2, 2025
c0295d0
Moved demo into an examples subfolder.
garrettmflynn Oct 2, 2025
74ffbeb
Fixed build
garrettmflynn Oct 3, 2025
967b3ef
Remove extraneous logs
garrettmflynn Oct 3, 2025
5e9f301
Fix PWA caching behavior and launch
garrettmflynn Oct 3, 2025
f0dbc4f
Use custom hooks in demo. Cleanup hooks
garrettmflynn Oct 3, 2025
b40d498
Flagged sandbox on
garrettmflynn Oct 3, 2025
998b9c6
More extensive tests completed
garrettmflynn Oct 3, 2025
74e4ed1
Update index.ts
garrettmflynn Oct 3, 2025
61e658c
Update index.test.ts
garrettmflynn Oct 3, 2025
b8dbba5
Update preload.ts
garrettmflynn Oct 3, 2025
1198347
Update sea.ts
garrettmflynn Oct 3, 2025
3e5f2fd
Attempt to remove signature
garrettmflynn Oct 3, 2025
f16ee5d
Add environment option to individual services. Upgrade electron to be…
garrettmflynn Oct 8, 2025
fd715eb
Add certificate support and allow specified protocols to take effect
garrettmflynn Oct 9, 2025
de202e4
Add certificate support for Electron
garrettmflynn Oct 9, 2025
98156ea
Fix testing library to recognize all desktop targets
garrettmflynn Mar 6, 2026
de17f0e
Bump all dependencies to latest stable and add ROADMAP.md
garrettmflynn Mar 7, 2026
31cf819
Add CargoService helper and fix CI workflows
garrettmflynn Mar 7, 2026
f3b4e06
Fix test failures: SEA for Rust, electron-builder config, CLI exit codes
garrettmflynn Mar 7, 2026
3bcf2a0
Add project setup: changesets, editorconfig, tsconfig base, package m…
garrettmflynn Mar 7, 2026
7a1f2bf
Add Rust precompile extension and demo service
garrettmflynn Mar 7, 2026
fc58c54
Complete low-lift roadmap: shared path utils, modal dark mode, test s…
garrettmflynn Mar 7, 2026
7e2a296
Add test:env script and mark .env tests as complete in roadmap
garrettmflynn Mar 7, 2026
2bd5352
Split CI into fast and service test jobs, add dev branch trigger
garrettmflynn Mar 7, 2026
a82e28d
Expand E2E tests, update roadmap with architecture decisions
garrettmflynn Mar 7, 2026
55563ea
Rebuild create-commoners with starter template, update getting-starte…
garrettmflynn Mar 7, 2026
4dd1f83
Add headless mobile testing via web preview, fix WebLaunchStrategy re…
garrettmflynn Mar 7, 2026
160b5a0
Fix start test flakiness and add Node globals to ESLint config
garrettmflynn Mar 7, 2026
69917d4
Unify plugins and services into extensions system with capabilities m…
garrettmflynn Mar 8, 2026
69d1819
Add WASM service compilation support for Rust services
garrettmflynn Mar 8, 2026
0b9d509
Migrate Electron IPC from sendSync to async invoke, add runtime abstr…
garrettmflynn Mar 8, 2026
73e552b
Fix pre-existing test failures and improve service test reliability
garrettmflynn Mar 8, 2026
9cebd9d
Update roadmap and add documentation for extensions, WASM, and walkth…
garrettmflynn Mar 8, 2026
eff4047
Fix test suite reliability: sequential execution, timeouts, and deskt…
garrettmflynn Mar 8, 2026
34d81e7
Stabilize desktop testing, fix WASM resolution, migrate IPC to async
garrettmflynn Mar 9, 2026
1c225f7
Fix CDP connection for packaged Electron builds, stabilize test cleanup
garrettmflynn Mar 9, 2026
f983a2b
Add share CLI command, wire runtime interface, rewrite docs messaging
garrettmflynn Mar 9, 2026
1e7f819
Tier 1 security fixes: ASAR parsing, strict integrity, origin validat…
garrettmflynn Mar 9, 2026
3ea84e7
Add WASM virtual module, protocol/wasm test scripts, and Rust service…
garrettmflynn Mar 9, 2026
0812d96
Update roadmap with deferred items tracking and detailed implementati…
garrettmflynn Mar 9, 2026
ecf60d2
Tier 2 security fixes: CSP, IPC allowlist, PID verification, security…
garrettmflynn Mar 9, 2026
bfdf2d5
Bump all packages to 1.0.0-alpha.3
garrettmflynn Mar 9, 2026
8d8bf58
Expose hooks to desktop plugin contexts
garrettmflynn Mar 9, 2026
50f95f3
Fix dev mode CDP on Windows: extract build artifact, fire-and-forget …
garrettmflynn Mar 9, 2026
807d905
Add CDP diagnostic logging to testing package, fix .gitignore
garrettmflynn Mar 9, 2026
137c500
Add IPv6 fallback and Electron output forwarding to testing CDP flow
garrettmflynn Mar 9, 2026
2dc9231
Skip process polyfill for desktop targets in config bundling
garrettmflynn Mar 9, 2026
4dcae20
Stop modifying host package.json for Electron dev mode
garrettmflynn Mar 10, 2026
8ed261e
Remove hardcoded port and dangerous kill -9 from test infrastructure
garrettmflynn Mar 10, 2026
b78c25f
Improve CDP page recovery proxy for desktop test stability
garrettmflynn Mar 10, 2026
a1fc205
Fix service process management and rust binary zombie issue
garrettmflynn Mar 10, 2026
6214d60
Add Dependabot configuration for automated vulnerability alerts
garrettmflynn Mar 10, 2026
d173e8e
Add pnpm overrides to patch transitive dependency vulnerabilities
garrettmflynn Mar 10, 2026
c246a6b
Reduce dependency vulnerabilities from 46 to 4 irreducible
garrettmflynn Mar 10, 2026
861ed6f
Replace vite-plugin-node-polyfills with lightweight alternatives
garrettmflynn Mar 10, 2026
1f23658
Fix lint errors in assets.ts
garrettmflynn Mar 10, 2026
9078b1f
Add lazy factories for tree-shaking and enhance commoners:env module
garrettmflynn Mar 10, 2026
84c583a
Add port retry stress test and fix desktop test flakiness
garrettmflynn Mar 10, 2026
b2f1e9b
Fix Windows compatibility across build pipeline and test suite
garrettmflynn Mar 12, 2026
e64b927
Add Windows code signing support and desktop build CI
garrettmflynn Mar 12, 2026
516b7ff
Add Windows verification checklist document
garrettmflynn Mar 12, 2026
3532a4e
Fix Windows desktop builds, type exports, and service crash handling
garrettmflynn Mar 12, 2026
63a3b89
Disable app.enableSandbox() on Windows and document for future invest…
garrettmflynn Mar 12, 2026
c91b2c4
Add SEA and port PID verification tests
garrettmflynn Mar 13, 2026
a506cb8
Expand Batch A test coverage and update roadmap docs
garrettmflynn Mar 13, 2026
ec423cb
Fix ASAR verification hash bug and add unit tests
garrettmflynn Mar 13, 2026
42fba52
Fix plugin lifecycle race condition and add plugin test suite
garrettmflynn Mar 13, 2026
54ac8f5
Add IPC schema validation, CSP script hashes, and fix ASAR comments
garrettmflynn Mar 13, 2026
438023d
Add ad-hoc signing, CI ASAR verification, and port randomization warning
garrettmflynn Mar 13, 2026
969d974
Route shell, app, session, ipc, lifecycle, and protocol.fetch through…
garrettmflynn Mar 13, 2026
efbd9a0
Add mobile build output tests for config injection and extension capa…
garrettmflynn Mar 13, 2026
f90dc27
Add QR code, metadata flag, and status table to share CLI
garrettmflynn Mar 13, 2026
9899451
Merge remote-tracking branch 'origin/dev' into dev
garrettmflynn Mar 13, 2026
095fba0
Add plugin dependency ordering via after[] and sequential ready() hooks
garrettmflynn Mar 13, 2026
2a057cb
Fix onReady promise chain and relax solidarity version constraints
garrettmflynn Mar 13, 2026
aa9b6be
Route protocol, dialog, plugins, and window enumeration through Deskt…
garrettmflynn Mar 13, 2026
97225b4
Add config stripping tests, protocol E2E tests, and ESLint ignore fix
garrettmflynn Mar 13, 2026
5776e19
Add Tauri desktop backend with build, launch, dev, and runtime support
garrettmflynn Mar 13, 2026
91c46e9
Standardize target naming to <platform>-<backend> and add Tauri mobil…
garrettmflynn Mar 13, 2026
e346190
Fix cold build ENOENT, add benchmark suite and cold build regression …
garrettmflynn Mar 13, 2026
a8123da
Fix Tauri build frontendDist issue, add icon conversion, and rename _…
garrettmflynn Mar 13, 2026
1daf9eb
Add lifecycle-probe plugin and regression test for config stripping
garrettmflynn Mar 13, 2026
53ca660
Merge remote and add lifecycle regression test
garrettmflynn Mar 13, 2026
0be861a
Merge remote-tracking branch 'origin/dev' into dev
garrettmflynn Mar 13, 2026
35d2074
Fix ELECTRON_STRIP_KEYS and add lifecycle regression test
garrettmflynn Mar 13, 2026
6671388
Complete runtime abstraction, typed IPC, capabilities-driven allowlis…
garrettmflynn Mar 14, 2026
2077d19
Add Batch D architecture features: event bus, async API, health monit…
garrettmflynn Mar 14, 2026
b858a6e
Eliminate sendSync IPC and complete Tauri runtime parity
garrettmflynn Mar 14, 2026
60d6a07
Add macOS ASAR post-sign verification and service hash manifest
garrettmflynn Mar 14, 2026
b77e69a
Add serviceManifest tests and expand CI coverage
garrettmflynn Mar 14, 2026
1712dd9
Clean up roadmap: remove completed docs, update progress tracking
garrettmflynn Mar 14, 2026
8ca158e
Add Tauri sidecar lifecycle: spawn, monitor, and expose services via …
garrettmflynn Mar 14, 2026
5c10326
Update Vite evolution audit with Tauri plugin hooks, renderChunk, and…
garrettmflynn Mar 14, 2026
eaf626e
Update roadmap: mark sidecar lifecycle done, defer device comm abstra…
garrettmflynn Mar 14, 2026
0c69875
Add Build Adapter Interface design doc with ServiceBundler extensibility
garrettmflynn Mar 14, 2026
9d8ac0e
Update security whitepaper and document platform abstractions
garrettmflynn Mar 14, 2026
ca98ed6
Add Tauri dev mode tests and extract template generators
garrettmflynn Mar 14, 2026
20daf03
Restructure roadmap around 1.0.0 release gate
garrettmflynn Mar 14, 2026
29bca41
Add multi-window testing roadmap item for @commoners/testing
garrettmflynn Mar 16, 2026
5258425
Fix Windows ASAR verification script and mark CI coverage done
garrettmflynn Mar 16, 2026
0d8b67c
Update roadmap: desktop stability status and mitigations
garrettmflynn Mar 16, 2026
c3f1585
Add multi-window testing API: pages, findPage, waitForPage
garrettmflynn Mar 16, 2026
7db685c
Update roadmap: mark ASAR done, update multi-window status, add compl…
garrettmflynn Mar 16, 2026
395e499
Add API reference, rewrite plugin and testing guides, mark docs done
garrettmflynn Mar 16, 2026
ba93519
Add ready() chain debug markers for tracing plugin lifecycle
garrettmflynn Mar 16, 2026
824141e
Fix E2E page discovery and add MSVC fallback for C++ services
garrettmflynn Mar 16, 2026
31bb4be
Add event-based page lifecycle tracking to @commoners/testing
garrettmflynn Mar 16, 2026
db95538
Add @vite-pwa/assets-generator peer dependency
garrettmflynn Mar 16, 2026
d11f5d3
Add @commoners/integrity runtime verification plugin
garrettmflynn Mar 16, 2026
af1f783
Add Build Adapter Interface with Vite as default implementation
garrettmflynn Mar 16, 2026
3a806b8
Update roadmap: Build Adapter Phase 1 complete, add integrity plugin
garrettmflynn Mar 16, 2026
7508a09
Build Adapter Phase 2: wire adapter into start.ts
garrettmflynn Mar 16, 2026
ce79f17
Add @commoners/secure-services plugin for service authentication
garrettmflynn Mar 16, 2026
cc2a429
Add Tauri E2E test with prerequisites validation
garrettmflynn Mar 16, 2026
ff776f0
Update roadmap: Tauri E2E test done, secure-services and integrity added
garrettmflynn Mar 16, 2026
7e06029
Fix TauriBuildStrategy: sidecarEntries used before declaration
garrettmflynn Mar 16, 2026
f477667
Fix Tauri build on Windows: ICO generation, Emitter import, icon vali…
garrettmflynn Mar 16, 2026
9251721
Add RGBA demo icon and document cross-platform icon requirements
garrettmflynn Mar 16, 2026
a1e038e
Use tauri icon for Tauri builds, align icons across all apps
garrettmflynn Mar 16, 2026
d24220c
Simplify Tauri icon handling: trust tauri icon, remove fallbacks
garrettmflynn Mar 16, 2026
27cb58b
Strip pre-release from Tauri version for MSI/NSIS compatibility
garrettmflynn Mar 16, 2026
4ff31fe
Clean up dev output noise and fix Windows file-mode navigation
garrettmflynn Mar 16, 2026
1725d89
Revise strategic critique and compress roadmap for 1.0.0
garrettmflynn Mar 16, 2026
40901bc
Compress ROADMAP.md: remove strikethroughs, align with features.md
garrettmflynn Mar 16, 2026
dabd4d8
Implement post-1.0 near-term priorities: health, orphan cleanup, auto…
garrettmflynn Mar 16, 2026
3140a07
Upgrade to Vite 8.0.0 (Rolldown bundler)
garrettmflynn Mar 16, 2026
eabf1f7
Update roadmap: Vite 8 done, near-term items done, testing confirmed
garrettmflynn Mar 16, 2026
56f1817
Remove multi-window testing from roadmap (already done)
garrettmflynn Mar 16, 2026
fc74330
Add health monitor tests (11) and refine critique per review
garrettmflynn Mar 16, 2026
5598428
Align roadmap with critique strategic priorities
garrettmflynn Mar 16, 2026
42d6db5
Add Vite 7 legacy build adapter for rollback safety
garrettmflynn Mar 16, 2026
353ef6a
Add storage abstraction design doc and Vite legacy adapter
garrettmflynn Mar 16, 2026
354034f
Update tagline: Build Full-Stack Apps on Every Platform
garrettmflynn Mar 16, 2026
b1f0a65
Update tagline: Declare Your App. Deploy Everywhere.
garrettmflynn Mar 16, 2026
c5afdf5
Update tagline: Your App, Every Platform
garrettmflynn Mar 16, 2026
01a61b1
Align docs with 'Your App, Every Platform' framing
garrettmflynn Mar 16, 2026
1dc8e64
Add commoners init command and migration guide
garrettmflynn Mar 16, 2026
250e48b
Fill platform documentation gaps
garrettmflynn Mar 16, 2026
3dfddf0
Add altool deprecation note for iOS CI publishing
garrettmflynn Mar 16, 2026
1bf1c2e
Fix build-adapter test: rename preview to serve, use factory pattern
garrettmflynn Mar 16, 2026
e6d5e0c
Add @commoners/audit and @commoners/storage plugins, update roadmap
garrettmflynn Mar 16, 2026
f667ac8
Add @commoners/notifications and @commoners/context plugins
garrettmflynn Mar 16, 2026
a728b54
Add @commoners/messaging and @commoners/discovery plugins
garrettmflynn Mar 16, 2026
f3788fd
Promote commoners.is() to global, drop commoners.api wrapper
garrettmflynn Mar 16, 2026
904a3f5
Remove bus, query, api from global — plugins only
garrettmflynn Mar 16, 2026
fb8bdd5
Restore query on global, keep bus as plugin-only
garrettmflynn Mar 16, 2026
16dc7e5
Rename bus to events, clean up types
garrettmflynn Mar 16, 2026
babba00
Fold discovery into global, drop @commoners/discovery plugin
garrettmflynn Mar 16, 2026
ec10e27
Clean up stale api/bus references and dead code
garrettmflynn Mar 16, 2026
a565e39
Revert to Vite 7, restore events on global, fix plugin test regression
garrettmflynn Mar 16, 2026
07ef966
Fix events import name mismatch in onload.ts
garrettmflynn Mar 16, 2026
1dd0a9e
Add @commoners/filesystem and @commoners/clipboard plugins
garrettmflynn Mar 16, 2026
424741f
Rename storage→preferences, filesystem→storage, add plugin README
garrettmflynn Mar 17, 2026
553eb49
Honest status in README and roadmap, clarify local-services
garrettmflynn Mar 17, 2026
11d5a1c
Decouple local-services from share: shared mDNS utility
garrettmflynn Mar 17, 2026
6c971bd
Add preview as alias for launch command
garrettmflynn Mar 17, 2026
1c96790
Fix docs/implementation mismatches from audit
garrettmflynn Mar 17, 2026
a358f11
QoL fixes: gitignore, preview script, stale docs
garrettmflynn Mar 17, 2026
1e46ce8
Compress repo docs: delete 5 completed/stale docs, deduplicate
garrettmflynn Mar 17, 2026
63d4d5e
Distinguish process crashes from port conflicts in service launcher
garrettmflynn Mar 17, 2026
ba4c760
Add Claude Code configuration: CLAUDE.md files and slash commands
garrettmflynn Mar 22, 2026
8056a65
Docs overhaul: comparisons, architecture, troubleshooting, benchmarks
garrettmflynn Mar 22, 2026
ba0131e
Skip .cjs config in non-Electron builds, reframe C++/Python docs
garrettmflynn Mar 22, 2026
b438fc8
Tree-shake onload.mjs and lazy-load services in Electron main
garrettmflynn Mar 22, 2026
3ff2ec8
Fix ESLint config for assets/, honest app size framing
garrettmflynn Mar 22, 2026
f0700c7
Simplify app size framing: absolute numbers only, drop percentages
garrettmflynn Mar 22, 2026
f105040
Implement service hot-reload in Electron dev mode, fix plugin test
garrettmflynn Mar 22, 2026
d542a4a
Eliminate unused event system from onload, clean up why.md table
garrettmflynn Mar 22, 2026
bf187b0
Eliminate dev-only WebSocket code from production onload builds
garrettmflynn Mar 22, 2026
7499508
Fix test assertions for .cjs stripping and src resolution
garrettmflynn Mar 22, 2026
2851c7b
Fix import.meta.url in config bundles, fixing Python desktop services
garrettmflynn Mar 23, 2026
fe265e3
Resize demo icon to 512x512 for Electron builder
garrettmflynn Mar 23, 2026
28f819e
Inline VITE_/COMMONERS_ process.env values in browser config bundles
garrettmflynn Mar 24, 2026
c6c379b
Fix Electron crash and blank window when app has no services
garrettmflynn Apr 1, 2026
de87094
Improve config validation, CSP overrides, and esbuild error formatting
garrettmflynn Apr 1, 2026
d74c3e3
Verify service binaries via OS code-signing chain instead of byte-hash
garrettmflynn Apr 27, 2026
62458dc
Document the release process
garrettmflynn Apr 27, 2026
59967cb
Fix renderer plugin loader storing Promise instead of resolved API
garrettmflynn Apr 29, 2026
693f48c
Preserve search and hash when navigating between pages
garrettmflynn Apr 29, 2026
a4d5fd9
Skip service trust manifest under SKIP_SIGNING=1
garrettmflynn Apr 30, 2026
6e6e879
Bump to 1.0.0-alpha.4 across published packages
garrettmflynn Apr 30, 2026
3197e45
Make Electron single-instance enforcement opt-out via electron.single…
garrettmflynn May 8, 2026
4cd3756
fix(ble): grant Bluetooth device permissions so getDevices() returns …
garrettmflynn May 26, 2026
e3ceb41
fix(ble): drop overly-restrictive setPermissionCheckHandler
garrettmflynn May 26, 2026
5bb797c
feat(core): postMessage scoped IPC for MessagePort transfer
garrettmflynn May 26, 2026
0d90a87
feat(haptics): cross-platform haptic feedback plugin
garrettmflynn May 26, 2026
2f183cd
revert(ble): drop commandLineSwitches plugin mechanism
garrettmflynn May 26, 2026
7d1a0c4
fix(core): route MessagePort transfers via window.postMessage
garrettmflynn May 27, 2026
e1a04b7
fix(core): externalize wasm-pack packages in config bundler
garrettmflynn May 27, 2026
646af06
fix(onload): silently skip plugin-loaded notify when preload is custom
garrettmflynn May 27, 2026
a924a47
fix(onload): no-op ctx methods when TEMP_COMMONERS lacks them
garrettmflynn May 27, 2026
bfc1cc5
fix(events): tolerate undefined send/on in renderer event bridge
garrettmflynn May 27, 2026
bc917cb
fix(preload): flatten main-process console proxy to `[main]` prefix
garrettmflynn May 27, 2026
40b443e
fix(security): add worker-src to default CSP for module workers
garrettmflynn May 27, 2026
ca2bee8
fix(assets): externalize wasm-pack outputs in bundleConfig too
garrettmflynn May 27, 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
  •  
  •  
  •  
23 changes: 23 additions & 0 deletions .changeset/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [
[
"commoners",
"@commoners/solidarity",
"@commoners/testing",
"@commoners/bluetooth",
"@commoners/serial",
"@commoners/windows",
"@commoners/local-services",
"@commoners/splash-screen",
"@commoners/autoupdate"
]
],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": []
}
11 changes: 11 additions & 0 deletions .claude/commands/debug-service.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Debug a failing service. The service name/type is: $ARGUMENTS

Investigation steps:
1. Find the service definition in the demo config or relevant config file
2. Check the service source code for obvious issues
3. Check service build output paths (dev: `.commoners/.tmp/services/`, build: `.commoners/services/`)
4. Look for port conflicts (especially port 2345)
5. Check if the service requires special environment (conda for Python, cargo for Rust, g++ for C++)
6. Review recent changes to service-related code in `packages/core/`

Report: root cause analysis, suggested fix, and any related known issues from test history.
10 changes: 10 additions & 0 deletions .claude/commands/release-check.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Run the full pre-release checklist for the commoners monorepo. Execute each step sequentially and report results:

1. **Type check**: `pnpm typecheck`
2. **Lint check**: `pnpm lint:check`
3. **Build all packages**: `pnpm build`
4. **Run tests**: `pnpm test`
5. **Build docs**: `pnpm docs:build`
6. **Build demo**: `pnpm demo:build`

After all steps, provide a summary table showing pass/fail for each step and any issues that need attention before release.
11 changes: 11 additions & 0 deletions .claude/commands/review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Review the current uncommitted changes (or the last commit if clean) against project conventions.

Check for:
1. **Security**: No hardcoded secrets, no command injection, no XSS vectors
2. **Architecture**: No imports across the `assets/electron/` → `utils/` boundary; WASM services don't go through full `resolveService` path
3. **Testing**: Changes to core logic should have corresponding test coverage
4. **Style**: Follows Prettier config (2 spaces, single quotes, no semicolons, 100 char width)
5. **Extensions system**: Uses `config.extensions` as canonical record, not legacy `plugins`/`services` directly
6. **Electron**: Preload has no top-level await; IPC uses `invoke`/`handle` pattern

Report findings grouped by severity: blocking, warning, suggestion.
13 changes: 13 additions & 0 deletions .claude/commands/test-suite.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Run the specified test suite (or all tests if none specified). Ensure proper environment and sequencing.

Available suites: start, config, security, desktop, services, wasm, build, env, protocol, mobile-workflow

Important constraints:
- Do NOT run test suites concurrently (port conflicts, especially port 2345)
- Desktop test order: desktop-build → desktop → desktop-zlaunch
- Python service tests require `conda activate commoners-demo`
- Echo test may need 90s timeout under resource contention

Run: `pnpm test:$ARGUMENTS` (or `pnpm test` if no suite specified)

After the run, summarize: pass/fail counts, any flaky failures, and whether re-running in isolation would help.
12 changes: 12 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false
18 changes: 18 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
groups:
dev-dependencies:
dependency-type: "development"
update-types:
- "minor"
- "patch"
production-dependencies:
dependency-type: "production"
update-types:
- "minor"
- "patch"
247 changes: 247 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,247 @@
name: CI

on:
push:
branches: [main, dev]
pull_request:
branches: [main, dev]

jobs:
build:
name: Build on ${{ matrix.os }} (Node ${{ matrix.node }})
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
node: ['20', '22']

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js ${{ matrix.node }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}

- name: Install pnpm
uses: pnpm/action-setup@v4

- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT

- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build packages
run: pnpm build

- name: Check bundle size
if: matrix.os == 'ubuntu-latest' && matrix.node == '22'
run: |
echo "## Bundle Sizes" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Package | Size |" >> $GITHUB_STEP_SUMMARY
echo "|---------|------|" >> $GITHUB_STEP_SUMMARY
echo "| CLI | $(du -h packages/cli/dist/index.cjs | cut -f1) |" >> $GITHUB_STEP_SUMMARY
echo "| Core | $(du -sh packages/core/dist | cut -f1) |" >> $GITHUB_STEP_SUMMARY

lint:
name: Lint
runs-on: ubuntu-latest
continue-on-error: true

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'

- name: Install pnpm
uses: pnpm/action-setup@v4

- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT

- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build packages
run: pnpm build

- name: Run linter
run: pnpm lint:check

typecheck:
name: Typecheck
runs-on: ubuntu-latest
continue-on-error: true

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'

- name: Install pnpm
uses: pnpm/action-setup@v4

- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT

- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build packages
run: pnpm build

- name: Run type check
run: pnpm typecheck

test-fast:
name: Fast tests on ${{ matrix.os }} (Node ${{ matrix.node }})
needs: build
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
node: ['20', '22']

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js ${{ matrix.node }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}

- name: Install pnpm
uses: pnpm/action-setup@v4

- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT

- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build packages
run: pnpm build

- name: Config tests
run: pnpm test:config
env:
CI: true

- name: Environment tests
run: pnpm test:env
env:
CI: true

- name: Fast unit tests
run: pnpm test:fast-unit
env:
CI: true

test-services:
name: Service tests on ${{ matrix.os }} (Node ${{ matrix.node }})
needs: build
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
node: ['20', '22']

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js ${{ matrix.node }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}

- name: Install pnpm
uses: pnpm/action-setup@v4

- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT

- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build packages
run: pnpm build

- name: Service compilation tests
run: pnpm test:services
continue-on-error: true
env:
CI: true
Loading
Loading