Skip to content

merge: integrate v4.7.11 release history#230

Merged
nullxnothing merged 28 commits into
mainfrom
integrate/v4.7.11-main
Jul 18, 2026
Merged

merge: integrate v4.7.11 release history#230
nullxnothing merged 28 commits into
mainfrom
integrate/v4.7.11-main

Conversation

@nullxnothing

Copy link
Copy Markdown
Owner

Integrates the published v4.7.11 release line into main without rewriting the tag. The integration merge preserves both v4.7.11 and current main ancestry, retains migrations V58-V60, appends receipts migration V61, and keeps package version 4.7.11. Verified with typecheck, 1,211 tests, standard and Lite builds, Lite dependency/package gate, packaged app smoke, packaged workbench smoke, independent review, and gitleaks.

nullxnothing and others added 28 commits July 3, 2026 17:20
Fresh installs seed current model aliases, but upgraded DBs kept agent rows
pointing at claude-sonnet-4-20250514 / claude-opus-4-20250514 from old seeds,
and the shared MODEL_MAP still hardcoded the same dated ids. V59 rewrites only
those exact known-stale ids to the current aliases (a valid model the user
picked on purpose is never touched) and the shared shorthand maps now resolve
to claude-sonnet-4-6 / claude-opus-4-8.
A disabled or invalid ANTHROPIC_API_KEY inherited from the shell made the
operator loop throw, and the catch quietly fell back to the tool-less CLI
answer — ARIA lost every tool with no explanation. The fallback now detects
auth rejections (401/403/authentication_error), names which credential failed
(stored key vs shell env, mirroring the loop's stored-first precedence), and
prepends an actionable notice to the degraded reply. Key values never appear
in messages or logs.
CLAUDE_MODEL_IDS in packages/shared is now the canonical id set; MODEL_MAP,
resolveModelName, the desktop provider maps (ClaudeRouter/ClaudeProvider),
ClaudeAgentService defaults, and the Agent Launcher / Agent Station pickers
all derive from it, so a model bump is a one-line change. Station picker
drops the superseded claude-sonnet-4-5 option.
V60 companion to the V59 agent refresh: agent_station_configs rows only ever
hold values the station picker offered, so claude-opus-4-20250514 and
claude-sonnet-4-5 there are DAEMON-originated and safe to remap to the current
aliases. Non-Claude rows (gpt-*) pass through untouched. Migration targets now
reference CLAUDE_MODEL_IDS so they cannot drift from the canonical set.
Follow-up to the rejected-key notice: instead of prepending the warning to the
reply text, emit a dedicated 'notice' transcript event rendered as an
amber-lined banner (5px dot language) above the turn, persist it in message
metadata so it survives history reloads, and log only the key SOURCE (stored
vs shell env) — key values never reach logs or the transcript.
MigrationRunner drives the FULL runMigrations chain against node:sqlite (real
SQL engine, no Electron-ABI binding needed): fresh installs seed only
sanctioned model IDs, a simulated pre-V59 install gets its agent and station
rows remapped, re-running is a no-op, and every refresh-map target is proven
to be a canonical CLAUDE_MODEL_IDS value. AriaAuthNotice exercises sendMessage
end to end with the real claudeAuth classifier: warn banner names the failing
key source, reply text stays clean, metadata survives reloads, GLM turns and
network errors never blame the Anthropic key.
… from ARIA

Adds an end-to-end game-build flow: a phaser-solana-game project template,
ARIA tools to orchestrate it, and the connective tissue to run and merge the
result.

- ProjectStarter: new self-contained Phaser + TS game template (Starfall ported
  into gameTemplateFiles.ts) with git-init on scaffold so a fresh project can
  host a swarm, plus auto dev-server + in-app preview (generalized from the meme
  path).
- WorktreeService.mergeLane: commit a finished lane's work and merge --no-ff into
  the base branch; done-only guard. Re-exported from SwarmOrchestrator.
- ARIA gameStudio tools: scaffold_game, run_dev_server, preview_app,
  swarm_merge_lane, deploy_app. run_dev_server runs only a discovered dev script
  (CheckRunnerService.discoverDevScript), never a raw command.
- uiEffects open_preview / start_dev_server / open_scaffold, with a scaffoldPreset
  handoff so scaffold_game preloads the wizard.
- ARIA system prompt gains a build-a-game playbook (two-message choreography:
  launch the swarm and return, then merge/preview/deploy).

Test: ProjectStarter.runtime asserts the game template's structure; game template
gets an .env.example to keep the universal-files invariant. Gate loop green
(typecheck + 1064 tests + build).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…erministically

Two bugs surfaced on the first live run of the build-a-game flow:

- scaffold_game switched the active project mid-turn, which starts a fresh
  per-project ARIA session and discarded the pending swarm approval card. Make
  scaffold_game the last action of its turn and split the flow into explicit
  turns (scaffold, then build in the new project's session). Updated the tool
  summary and the ARIA build-a-game playbook accordingly.
- The scaffold's initial git commit was chained inside the shell startup command
  (PowerShell ';' continues past failures), so git init could run while the
  commit silently did not, leaving an unborn HEAD a swarm can't branch from. Add
  a deterministic git:init-commit IPC (init + add -A + commit, idempotent) and
  call it from the scaffold handler right after files are written; drop the git
  step from buildGameStartupCommand.

Gate loop green (typecheck + 1110 tests).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- bundle docs knowledge synced from docs.robinhood.com/chain (17 sections)
- canonical token registry: WETH, USDG, 20 stock tokens, 5 ETFs
- new tools: rh_chain_info, rh_chain_knowledge, rh_stock_tokens, rh_chain_rpc
- fetch-based JSON-RPC reader against the public endpoints, no signing
Ship DAEMON Lite as a separate, small Windows download (~106MB) that is
just the ARIA chatbox: paste one BYOK key and chat, no editor, terminal,
or project system. Its own installer (com.daemon.lite), appId, and
userData so it coexists with the full app.

Built from one repo via a second Vite config and a module-swap plugin
that redirects toolCatalog/contextAssembler/ProService/EmailTools/
forensics to .lite variants, keeping the heavy Solana/Monaco SDKs out of
the Lite bundle. A computed dependency whitelist plus check-lite-deps
gate the installer under 110MB and ban heavy SDKs from re-entering.

Phase 0 seams keep the full app green: ariaHost port decouples the ARIA
runtime from the IDE stores (IDE installs ideAriaHost, Lite a null-project
host), and secure-key + planning tools are extracted to shared modules.

v1.1 adds DAEMON-focused tools behind the same approval gate:
- Wallet: read-only balance/holdings watch, optional wallet create
- Trade: token search, watchlist, typed-confirm swaps through ARIA (capped)
- Scanner: one-shot forensics rug check with an IDE upsell
- Pop-out browser: main-process WebContentsView, https/loopback only, no
  guest preload

Rename the in-IDE free tier display copy from "Light" to "Free" so the
standalone app owns the Lite name.

Note: shared preload/type surfaces also carry this branch's in-flight
autopilot arm-review declarations; the Lite build and full test suite
(1,186 tests) are green with them.
* fix: restore signed Apple Silicon releases

* test: run macOS workbench smoke

---------

Co-authored-by: nullxnothing <nullxnothing@users.noreply.github.com>
Co-authored-by: nullxnothing <nullxnothing@users.noreply.github.com>
Co-authored-by: nullxnothing <nullxnothing@users.noreply.github.com>
Co-authored-by: nullxnothing <nullxnothing@users.noreply.github.com>
Co-authored-by: nullxnothing <nullxnothing@users.noreply.github.com>
Co-authored-by: nullxnothing <nullxnothing@users.noreply.github.com>
Co-authored-by: nullxnothing <nullxnothing@users.noreply.github.com>
Co-authored-by: nullxnothing <nullxnothing@users.noreply.github.com>
Co-authored-by: nullxnothing <nullxnothing@users.noreply.github.com>
# Conflicts:
#	electron/db/migrations.ts
#	package.json
#	test/services/MigrationRunner.test.ts
@nullxnothing
nullxnothing merged commit 9e1dc8b into main Jul 18, 2026
5 checks passed
@nullxnothing
nullxnothing deleted the integrate/v4.7.11-main branch July 18, 2026 18:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant