Repository navigation
Releases
v0.9.1
This release is a round of fixes that make the file manager and the Add Game Server wizard more reliable and easier to read.
Fixes
- Clearer folder-upload failures: When the file manager helper stopped before it was reachable, a folder upload used to sit on "Starting helper" for about three minutes and then fail with a generic "did not get a public IP in time" message. The upload now fails right away and shows the reason ECS gave for stopping the helper. The wait is also logged now.
- Wizard review step layout: Long, unbroken environment values, such as a 40+ character password, no longer overflow the card or add a horizontal scrollbar to the Add Game Server wizard's Review step. They now wrap inside the card. The Environment variables and Storage volume rows use the same fix.
- File manager logging: The infrastructure program now pre-creates the file manager's log groups.
Full changelog
Bug Fixes
-
(web) Wrap long env values in wizard review step (#678) (669513c) by @CoderCoco
-
(upload) Surface helper stop reason instead of silent 3-min wait (#679) (16dcb07) by @CoderCoco
-
(infra) Pre-create file manager log groups (#680) (5deeee7) by @CoderCoco
Continuous Integration
- (release) Bump action-gh-release to v3 (#677) (80882e6) by @CoderCoco
v0.9.0
This release makes updating Hyveon easier: you can now see which version you're running and install new releases without leaving the app.
Features
- App version in Settings → Updates. A new App Version row shows the version you're running, and a manual check now reports "You're up to date (v0.8.0)" so you can tell a current install from a stale check.
- Download and install updates from the app. When Check for Updates finds a newer release, you can click Download & Install and watch progress inline. When the download finishes, the button becomes Restart & Install. If a download fails, you see the error, a Download manually link, and the option to try again. Updates are only downloaded or installed when you click. The automatic startup check still just reports.
Full changelog
Features
-
(app) Show running app version in Settings → Updates (#674) (bf32ab3) by @CoderCoco
-
(app) Download and install updates from Settings → Updates (#675) (47499ed) by @CoderCoco
v0.8.0
This release makes it easier to bring existing game data into Hyveon and smooths out the add-game wizard.
Features
- Upload local folders directly into a game volume from the app, with progress shown as the upload runs.
Fixes
- The add-game wizard now starts with a default of 1 vCPU and 2 GiB of memory, so the Resources step shows the sliders and the hourly cost estimate immediately instead of waiting for you to move them.
- The Storage step of the add-game wizard has tidier volume error messages and layout.
Full changelog
Features
- (app) Upload local folders into a game volume with progress (#672) (df477b9) by @CoderCoco
Bug Fixes
-
(web) Default wizard cpu/memory so cost estimate shows (#669) (51fc77f) by @CoderCoco
-
(web) Tidy add-game Storage step volume errors and layout (#670) (acdea75) by @CoderCoco
Chores
- (claude) Move worktree guards to Pane, add PR watcher (#671) (b8d1d0f) by @CoderCoco
Continuous Integration
- (release) Pass GITHUB_TOKEN to version bump step (#673) (5653ad8) by @CoderCoco
v0.7.3
This release makes the in-app updater more resilient when the latest release is missing its update files.
Fixes
- The updater now recovers when the newest release has no update feed. If the first check fails, it falls back to the most recent published release that does have one and retries once. If no fallback exists or the retry fails, the original error is still shown.
- The updater settings now link to the releases page.
Full changelog
Bug Fixes
- (updater) Fall back to newest release with a feed; link to releases page (#668) (1e30ebe) by @CoderCoco
Continuous Integration
-
(release) Use claude-sonnet-5-5 for release notes (#666) (1178498) by @CoderCoco
-
(release) Fail the release if feed or installer assets are missing (#667) (4445f99) by @CoderCoco
v0.7.2
This release contains no user-facing changes.
- The only change is internal: the CI release pipeline was refactored to use composite GitHub Actions and build releases directly in
release.yml(#665).
Full changelog
Continuous Integration
- Extract composite actions and build releases in release.yml (#665) (074a680) by @CoderCoco
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
-
Upd...
v0.6.0
This release improves log viewing and adds safety guards around branch syncing.
Features
- The log viewer now supports paging back through history: scrolling to the top of the log box backfills older CloudWatch log events instead of stopping at whatever was still in the client buffer, live lines keep buffering in the background while you look at history, and a "Jump to latest" button returns you to live tailing. Applies to both the game-server logs page and the Infrastructure Lambda log viewer.
- Claude Code hooks now warn when a branch has drifted from its base or remote and block pushes from a stale branch, preventing wasted CI/AI review runs that would just need a second push after rebasing.
Fixes
- Multi-line log entries (e.g. pretty-printed metadata) now get a timestamp/level prefix on every line, not just the first, so continuation lines display with proper indentation and level badges instead of floating unstyled.
- Removed the client-side log level (INFO/WARN/ERROR/DEBUG) detection and filter from the log pages and Diagnostics panel, since Hyveon doesn't control the log line format emitted by game servers or its own Lambdas and the regex-based classification frequently misclassified lines.
Full changelog
Features
-
(logs) Load older logs on scroll-up (#538) (70165f7) by @CoderCoco
-
(hooks) Warn on branch drift, block stale pushes (#542) (2470cfd) by @CoderCoco
Bug Fixes
-
(logs) Prefix every line of multi-line log entries (#536) (7df1b54) by @CoderCoco
-
(web) Remove unreliable log level detection (#537) (d9898b6) by @CoderCoco
Tests
- (e2e) Implement canRun() permission integration test (#540) (98cc458) by @CoderCoco
Chores
-
(claude) Scope comment/TS/test conventions into rule files (#539) (b86af15) by @CoderCoco
-
(hooks) Auto-run npm ci on EnterWorktree (#541) (f5e16ab) by @CoderCoco
-
(hooks) Clarify EnterWorktree retry path in worktree-add guard (#544) (3a61b13) by @CoderCoco
Continuous Integration
- Switch CI skip check from paths-filter job to paths-ignore (#543) (c55b5d1) by @CoderCoco
v0.5.1
This release is a small follow-up with two bug fixes.
Fixes
- Fixed manual "check for updates" in Settings, which crashed every time with a silent, unhelpful error even though the update feed was reachable and correctly published.
- Fixed the local Diagnostics panel splitting pretty-printed log metadata across multiple unbadged rows — multi-line log entries now render as a single leveled entry.
Full changelog
Bug Fixes
-
(desktop-main) Fix manual update check crash from CJS getter export (#535) (ece8595) by @CoderCoco
-
(diagnostics) Merge multi-line log metadata into one entry (#534) (03ad880) by @CoderCoco
v0.5.0
This release brings a refreshed app shell, deeper log visibility, and more flexible health-check auth, alongside a couple of stability fixes.
Features
- Custom title bar — the app now draws its own title bar instead of relying on Electron's default, with platform-native controls: macOS traffic lights, Windows' native overlay (including snap-layout support), and app-drawn minimize/maximize/close buttons on Linux.
- Infrastructure Lambda log viewer — a new
/logs/infrastructurepage lets operators tail logs for the watchdog, health-check, DNS-updater, interactions, and followup Lambdas directly in the app, without needing the AWS CloudWatch console. - Basic/bearer health-check credentials — health checks now support
basicandbearerauth types alongside the existingrawtype, with the app managing the underlying Secrets Manager secret so operators no longer have to hand-encode credentials themselves. - Local diagnostics export bundle — a new "Export diagnostics bundle" action in Settings → Diagnostics produces a redacted
.zipof recent logs, deployment-config summary, app/system metadata, and an AWS resource snapshot, saved locally with no upload. - Manual update check — a "Check for Updates" button in Settings lets operators trigger an on-demand update check at any time, independent of the auto-update toggle.
Fixes
- Fixed the Apply page occasionally showing "Change summary unavailable" after successful Pulumi runs by falling back to Pulumi's own update history when the live event stream drops the summary.
- Removed the default Electron File/Edit/View/Window menu bar, since Hyveon is a single-purpose operator console that didn't use it.
Full changelog
Features
-
(settings) Add manual check-for-updates button (#526) (7ad934f) by @CoderCoco
-
(diagnostics) Add local diagnostics export bundle (#528) (0026c8e) by @CoderCoco
-
(health-check) Add basic/bearer credential types (#530) (f94bef1) by @CoderCoco
-
(logs) Add Infrastructure Lambda log viewer (#529) (6e1996a) by @CoderCoco
-
(web) Add custom title bar with platform-native controls (#531) (3565e08) by @CoderCoco
Bug Fixes
-
(desktop-main) Recover changeSummary via stack.history() fallback (#527) (9b8f332) by @CoderCoco
-
(desktop-main) Remove default File/Edit/View/Window menu bar (#525) (43d07fb) by @CoderCoco
v0.4.0
A small release focused on giving operators control over auto-updates.
Features
- Added an auto-update toggle to the Settings page. Previously the app's auto-update behavior was only configurable in the underlying store; now there's a visible "Updates" section with a label, description, and checkbox to turn it on or off. It's off by default, and changes take effect the next time the app starts.
Full changelog
Features
- (settings) Add auto-update toggle (#524) (1b059bb) by @CoderCoco
Chores
- Stop tracking graphify-out/cache (a47f753) by @CoderCoco