Repository navigation
v0.7.0
What's New
This release adds game-server configurability and ICMP ingress support, alongside a broad set of reliability and UX fixes across the operator app.
Features
- Game servers now support environment variable token interpolation, making deployment configs more flexible.
- Infra automatically provisions ICMP echo (ping) ingress rules from configured ICMP port entries.
- New shared UI primitives (FormField, native select, textarea) ship across the web app's forms.
Fixes
- Infrastructure runs: apply/destroy status no longer gets stuck on stale records, an unfound run now surfaces a clear error instead of hanging, and the run-detail stream is properly cancelled when navigating away.
- Discord: the Client ID field no longer gets wiped when cleared, and a Discord notification now fires if DNS/IP resolution fails.
- Setup & wizards: guided AWS profile detection now takes priority over the pasted-key fallback, and the add-game wizard's dedupe logic no longer breaks on a bad separator character.
- Security & reliability: deploy IAM permissions were corrected to grant
SimulatePrincipalPolicy, sensitiveRunTaskparameters are now redacted from failure logs, and Lambda handlers validate input (hex parsing, environment JSON) before use instead of crashing. - Accessibility: async error states now announce via
role="alert". - Packaging: the health-check Lambda's bundled output is now correctly included in packaged app builds.
Full changelog
Features
-
(web) Add FormField, native-select, and textarea UI primitives (#575) (9ff252e) by @CoderCoco
-
Add env var token interpolation for game servers (#598) (dc06714) by @CoderCoco
-
(infra) Provision icmp echo ingress from icmp port entries (#599) (f81b09b) by @CoderCoco
Bug Fixes
-
(build) Package lambda/health-check dist in extraResources (#562) (22f450e) by @CoderCoco
-
(iam) Grant SimulatePrincipalPolicy on deploy user ARN (#564) (aba5506) by @CoderCoco
-
(web) Re-arm mountedRef under StrictMode remount (#565) (247c618) by @CoderCoco
-
(discord) Don't wipe Client ID when field is cleared (#563) (592075a) by @CoderCoco
-
(web) Guard stack-init against StrictMode double-invoke (#566) (0564696) by @CoderCoco
-
(web) Reset stale apply/destroy records on resubmit (#567) (b378926) by @CoderCoco
-
(web) Surface error when apply/destroy run is unfound (#568) (efad3e6) by @CoderCoco
-
(hooks) Resolve EnterWorktree path check against project root (#574) (ae6a4df) by @CoderCoco
-
(desktop-main) Redact RunTask params from failure log (#570) (fc56b09) by @CoderCoco
-
(claude) Correct broken tool names and blocked commands in agent instructions (#572) (4c788a4) by @CoderCoco
-
(lambda) Guard followup/update-dns env JSON.parse (#571) (aa81bc8) by @CoderCoco
-
(hooks) Anchor guard hook commands to $CLAUDE_PROJECT_DIR (#569) (2270dee) by @CoderCoco
-
(web) Deflake DiagnosticsPanel pause-autoscroll test (#619) (40eb975) by @CoderCoco
-
(desktop-main) Restore missing subject in stackInitInFlight TSDoc (#600) (581d4b8) by @CoderCoco
-
(hooks) Scope guard-require-worktree to in-repo Edit/Write paths (#639) (4d4d13d) by @CoderCoco
-
(web) Add role="alert" to async-content error state (#650) (a945b1d) by @CoderCoco
-
(web) Move watchdog-panel off inline styles onto Tailwind tokens (#651) (7037ef4) by @CoderCoco
-
(desktop-main) Cache loadBase fallback symmetrically with load (#652) (bbe7864) by @CoderCoco
-
(lambda-update-dns) Notify Discord on IP resolution failure (#653) (089b4a2) by @CoderCoco
-
(web) Recognize guided AWS profile before pasted-key fallback (#654) (08e92d4) by @CoderCoco
-
(web) Replace NUL byte separator in wizard dedupe key (#655) (57788ba) by @CoderCoco
-
(web) Reset pathCopied affordance after timeout in guided-iam hook (#657) (181066a) by @CoderCoco
-
(desktop-main) Abort confirmRollback stream on destroyed sender (#658) (015acdc) by @CoderCoco
-
(lambda-interactions) Validate hex pairs before parseInt (#659) (2dabd94) by @CoderCoco
-
(web) Cancel iac run-detail stream on nav-away (#662) (df8a41b) by @CoderCoco
Refactoring
-
(web) Extract shared page-chrome components (#576) (65c366a) by @CoderCoco
-
(web) Add SectionCard and AsyncContent, adopt on list pages (#578) (3e3734b) by @CoderCoco
-
(web) Migrate wizard and settings fields to FormField (#579) (3f6bf12) by @CoderCoco
-
(web) Split health-check fields out of NetworkingStep (#580) (c52b76c) by @CoderCoco
-
(web) Extract useWizardDraftAutosave from AddGameWizard (#581) (ad66f7e) by @CoderCoco
-
(web) Extract useDeploymentSettings hook (#597) (0dd7d2e) by @CoderCoco
-
(web) Split app-layout into nav, topbar, and window chrome (#583) (ba5db6a) by @CoderCoco
-
(web) Extract LogTailView shared by both log pages (#584) (f869878) by @CoderCoco
-
(web) Collapse the IaC submission banner triplicate (#585) (dc78479) by @CoderCoco
-
(web) Extract useIacRun and the destroy section (#586) (19a134a) by @CoderCoco
-
(web) Split iac-history row and fetch orchestration (#587) (0813e05) by @CoderCoco
-
(web) Split discord.page into a discord/ directory (#588) (13a9d82) by @CoderCoco
-
(web) Extract useDiscordConfig (#589) (1057f95) by @CoderCoco
-
(web) Split bootstrap step rows and IAM panel (#590) (a9361e7) by @CoderCoco
-
(web) Split guided-IAM phase screens (#591) (d69c188) by @CoderCoco
-
(web) Extract first-run wizard state hooks (#592) (bf77bc4) by @CoderCoco
-
(web) Tidy game-card, costs table, cloud health, diagnostics (#593) (01ae646) by @CoderCoco
-
(shared,cloud-aws,preload) Dedupe credential-signature and stream docs (#613) (51a976b) by @CoderCoco
-
(infra) Collapse duplicated invariants into docs pointers (#610) (0db8721) by @CoderCoco
-
(desktop-main) Trim service TSDoc to caller-facing contracts (#611) (9097423) by @CoderCoco
-
(desktop-main) One canonical ESM module-cycle note; trim controllers (#612) (1881e30) by @CoderCoco
-
(web) Trim page/component docs; dedupe api.service.ts types (#614) (204f745) by @CoderCoco
-
(web) Extract bridge-unavailable message into one constant (#621) (bcd321f) by @CoderCoco
-
(desktop-main) Hoist isNonEmptyString guard into validation.ts (#627) (e754f5c) by @CoderCoco
-
(web) Source api.service.ts types from @hyveon/shared (#628) (8b2898d) by @CoderCoco
-
(desktop-main) Share Electron runtime accessors (#629) (4ce5f11) by @CoderCoco
-
(shared) Add Lambda env-parsing helpers, adopt across Lambdas (#624) (4eed5d7) by @CoderCoco
-
(infra) Factor Lambda log-group blocks into one helper (#626) (302c6b6) by @CoderCoco
-
(web) Extract formatTimestamp, formatUsd and useNowTick (#620) (35c90d4) by @CoderCoco
-
(shared) Add errMessage helper, adopt in desktop-main (#625) (7469880) by @CoderCoco
Documentation
-
(claude) Add component-size and reach-for-a-primitive rules (#594) (5f123b0) by @CoderCoco
-
(openspec) Propose VPC Flow Log support for network diagnostics (#595) (35c67b5) by @CoderCoco
-
(infra) Remove Terraform address citations and deleted-tree inventory (#603) (b24f7a2) by @CoderCoco
-
(desktop-main) Drop IPC-transport boilerplate from controller docs (#604) (2f2e772) by @CoderCoco
-
(claude) Document subagent worktree-creation restriction (#617) (73594fb) by @CoderCoco
-
(claude) Correct Lambda package count from five to six (#601) (1dff331) by @CoderCoco
-
(shared,preload) Strip issue-number narration from type docs (#606) (40123ed) by @CoderCoco
-
(desktop-main) Remove issue refs, review narration, dead-code comments (#607) (89da554) by @CoderCoco
-
(web) Strip issue numbers and pre-migration contrast clauses (#608) (a6fd8a2) by @CoderCoco
-
(lambda) Drop Python-port and migration-era framing from handlers (#609) (b944fba) by @CoderCoco
-
(web) Replace stale /api/* route references with IPC channel names (#605) (ab98c67) by @CoderCoco
-
(lambda) Document AWS_REGION_ environment handling (#615) (8a2f6f8) by @CoderCoco
-
State load-bearing invariants at their code sites (#616) (4d37a76) by @CoderCoco
-
(rules) Add duplication, reuse-first, and fixture-scope rules (#630) (08f49a5) by @CoderCoco
-
Fix wrong behaviour claims in operator docs (#640) (ac812c9) by @CoderCoco
-
Correct the Lambda package count across the site (#641) (116c3c9) by @CoderCoco
-
Refresh the integration-tests page for the current tier-2 suite (#642) (90007ac) by @CoderCoco
-
Fix operator-page behaviour claims (iac, logs, costs, audit) (#643) (973342f) by @CoderCoco
-
(openspec) Sync health-check and release-automation delta specs (#644) (cdd0cb8) by @CoderCoco
-
Correct npm-script and packaging descriptions (#645) (d1f0ccf) by @CoderCoco
-
Fix wrong invariants in architecture and management-app (#646) (f59ae62) by @CoderCoco
-
(openspec) Archive shipped changes and correct stale specs (#647) (934d9b9) by @CoderCoco
-
Document credential precedence and Discord custom domain (#648) (7434468) by @CoderCoco
-
(desktop-main) Fix stale TSDoc cross-reference to ConfigService (#656) (1ac7001) by @CoderCoco
Tests
-
(e2e) Adopt launchElectron() at bypassing electron-launch call sites (#622) (1c0068f) by @CoderCoco
-
(desktop-main) Table-drive MessagePattern channel assertions (#631) (10f05c3) by @CoderCoco
-
(desktop-main) Extract StackOutputs, ConfigService, and DeploymentConfig fixtures (#632) (f7624e9) by @CoderCoco
-
(web) Assert prefilled field values in games/add-game-wizard tests (#661) (389e766) by @CoderCoco
Chores
-
(comments) Strip ASCII banner separators from comment blocks (#602) (df54852) by @CoderCoco
-
Update hooks (24c6bcf) by @CoderCoco
-
Add hook files (2a05816) by @CoderCoco
-
(docs) Regenerate app screenshots and capture missing routes (#649) (9bf078d) by @CoderCoco
-
(desktop-main) Remove Pulumi spike scaffolding (#660) (a311d64) by @CoderCoco
Build System
- (lambda) Centralize shared Lambda build configuration (#623) (eb3384d) by @CoderCoco
Other
- Restore dorny/paths-filter for CI skip checks (#573) (8e7c419) by @CoderCoco