Releases: danscMax/castellyn
Release list
Castellyn v0.6.1
A same-day hotfix for v0.6.0 plus the Codex fan-outs that complete the multi-environment story.
Fixed
- Terminal panes were broken in v0.6.0 — the Unicode-11 width addon (new in 0.6.0) requires xterm's
allowProposedApiflag; without it the addon threw during pane setup and aborted the whole mount, leaving every session pane empty and unresponsive. If you are on 0.6.0, update.
Added
- MCP fan-out to Codex — one click writes the canonical
.mcp.jsonservers into Codex via the officialcodex mcp addCLI (upsert; user-added servers untouched). Verified live: registered servers load in a session and their tools resolve through Codex tool search. - Connect the freellmapi gateway to Codex — writes
[model_providers.freellmapi]+ a[profiles.freellmapi]into~/.codex/config.toml(format-preserving, your default model untouched) and mirrors the gateway's API key into theFREELLMAPI_API_KEYuser variable, socodex --profile freellmapiruns your local free models with zero manual setup.
Docs
- README showcases the Environments tab (screenshot + feature row, en/ru/zh) and all screenshots are refreshed to the post-audit UI.
Windows x64 binaries (standalone .exe, NSIS setup, MSI) are attached below once the build finishes.
Castellyn v0.6.0
The multi-environment release: a new Environments tab makes Castellyn aware of every AI-coding harness on the machine (Claude Code, OpenCode, Codex) and pushes the canonical skills / MCP / providers / rules into OpenCode with one click. On top of that: two full improvement waves (35 product items + a 40-item UI/UX audit), an SSH security fix, and richer MCP / backup / analytics management.
Added
- Environments tab — per-harness overview of skills, providers, MCP servers and RTK state; one-click skill sharing via directory junctions (with dangling-junction repair); a per-skill × harness coverage matrix; an RTK command-rewriting toggle for OpenCode (Windows-safe plugin pinned to the absolute
rtkpath). - Fan-out to OpenCode — three idempotent merge-patch deploys from the canonical store: MCP servers (
.mcp.json→mcpblock), the provider registry (myproviders.json→providerblock; API keys are written only as{env:…}references and manually bound keys are never overwritten), and the canonical rule files attached toinstructions[]by path, no copying. Codex fan-out is deliberately deferred (upstreamconfig.tomlMCP loading is unreliable). - MCP management from the UI — add/edit/remove canonical servers and clear extras, no more hand-editing
.mcp.json. - Backup — delete a single snapshot from the UI; weekly maintenance operations.
- Analytics — script-run duration histogram by day.
- Sessions — Codex terminal tool and a fork-terminal picker; find/new-session moved to
Ctrl+Shift+F/Ctrl+Shift+Tso they no longer collide with terminal keys. - Forks — direct fast-forward from the card; Schedule — reschedule a task in place; Providers — reuse a saved preset when connecting.
Fixed
- Security: SSH argv flag-smuggling — the
sshTargetvalidator now rejects values that could smuggle extrasshflags through the session launcher. - Reliability — config/provider data guarded against corruption and key loss; honest run feedback (a
heldcomponent no longer reads as "up to date"; a finished operational run reads its real status envelope); spawn errors surface as a toast and auto-reveal the console. - The last active tab is restored again — the persist effect ran before the restore and overwrote the saved tab, so the app always opened on Updates.
- Tray actions confirm in a visible window — Stop stack / Start stack from the tray reveal the window instead of waiting on a confirm dialog nobody can see.
- Onboarding no longer discards an unsaved scripts folder — "Next" saves it implicitly.
Changed
- UI/UX audit wave (40 items) — hotkeys and
Ctrl+1…9follow the visible sidebar order; grouped hotkey cheatsheet; tables fit a 1440-wide window without horizontal scroll; one SVG icon language (no emoji/unicode mix); correct Russian plurals; window chrome dims when unfocused; dialogs submit on Enter; ~50 dead i18n keys removed. - Performance — the on-focus plugin check is throttled, skill scans are memoized, palette/set lookups use
Setmembership.
Windows x64 binaries (standalone .exe, NSIS setup, MSI) are attached below once the build finishes.
Castellyn v0.5.3
A hardening pass: backend stability, tighter security defaults, accessibility, faster startup, and power-user keyboard control — no behaviour changes to the workflows themselves.
Added
- Power-user keyboard control —
Ctrl + 1 … 9jumps straight to a tab,Esccancels the running operation, and the command palette gained direct action verbs (Check all for updates, Refresh forks, Backup now, Open the run log). - Pausable toasts — hovering or focusing the notification stack pauses its auto-dismiss timers; error/warn toasts announce as
alert, others asstatus.
Changed
- Tighter security defaults — CSP
object-src 'none'/base-uri 'self'/frame-ancestors 'none'; detached windows run under a least-privilege capability;open_urlonly openshttp/https; provider ids are validated. - Faster, leaner startup —
HubConfigparsed once and cached; elevation check warmed off the UI path; the xterm/Sessions bundle is now lazy-loaded.
Fixed
- Self-healing run-lock (RAII guard — an early-return/panic can no longer leave the app permanently "busy").
- PTY sessions cleaned up on exit instead of being orphaned.
- Honest cancel — reports a real failure if the kill fails; treats "process already gone" as success.
- Non-blocking terminal input —
session_writeno longer holds the session map lock across the write. - Safer destructive confirms — dialogs focus Cancel by default; Enter no longer fires a dangerous/text-gated action; batch dialogs list what is affected.
- No
.bakfor secret files —settings.json/opencode.jsonare never copied in plaintext.
Accessibility
- Notification region,
aria-currenton the active nav item,<html lang>synced to the locale, focus moved into dropdowns on open, modalinitialFocus.
Docs
- README Download section + PowerShell 7 (
pwsh) prerequisite (en/ru/zh).
Windows x64 binaries (standalone .exe, NSIS setup, MSI) are attached below once the build finishes.
Castellyn v0.5.2
Forks get smarter at handing work to an AI agent, plus the copy buttons are actually fixed and the restore flow is clearer.
Added
- Auto-assembled AI prompt for every fork state — previously only the conflict and dirty cases produced a prompt; a diverged default branch, a mid-operation/detached repo, and combinations were left with only "Open terminal". The card now inspects the real repo state and assembles one tailored prompt from every detected problem (mid-op, detached HEAD, branch conflicts, diverged/behind/ahead default, dirty/untracked tree, upstream rename/archive, redundant/behind
wip-local). Every hand-off recommendation copies the prompt as its primary action, and a universal Copy AI prompt item is in the ⋯ menu for any repo.
Fixed
- Copy buttons — really this time — the 0.5.1
execCommand('copy')fallback is also a silent no-op in the WebView2 shell. Switched to the native clipboard plugin (OS clipboard via Rust). - Single-file conflict prompt wouldn't copy — a scalar
conflictFiles(one file) broke the unguarded.join; normalized to an array at the boundary. - Restore could implicitly overwrite
main(~/.claude) — it is now a first-class, selectable profile. - Restore plan shown inside the dialog — readable localized summary + raw output under a collapsible section.
- Forks status auto-check no longer blocks Backup/Restore.
Docs
- README screenshots refreshed — 7 tabs incl. Sessions and Forks, via a reusable DEV-only mock-IPC harness.
Full changelog: https://github.com/danscMax/castellyn/blob/main/CHANGELOG.md
v0.5.1
Follow-up fixes after the 0.5.0 Forks pass, plus the release/CI pipeline.
Fixed
- Copy buttons did nothing —
navigator.clipboardis blocked in the WebView2 shell, so every copy button (fork conflict / dirty prompts, secret keys) silently no-oped.copyTextnow falls back to the legacyexecCommand('copy')path, which works in WebView2; the "copied ✓" flash fires again. - Delete wip-local / Prune failed from the tab — the entry script never declared or forwarded
-DeleteWip/-Prune, so running either action errored immediately ("a parameter cannot be found"). Both switches are now wired through. - Refresh-cancel was undiscoverable — during a whole-stack refresh the header button now reads "Cancel" and the entire status chip is a click target with an always-visible ✕. The greyed-out staggered "reveal wave" is replaced with a soft accent shimmer that keeps every card readable.
- Light-theme contrast on Forks — KPI numbers, conflict-file lines and per-repo run ✓/✗ migrated onto the
statusColorcanon so both themes clear WCAG 4.5:1.
Internal
- Release automation — publishing a GitHub Release now builds the Windows binaries in CI (standalone exe + NSIS setup + MSI) and attaches them.
- CI gates + repo hygiene — GitHub Actions runs check / check:i18n / vitest / clippy / cargo test on push and PR; added CONTRIBUTING and issue/PR templates.
- Backup tests — pinned the restore security-gate and atomic-write integrity.
Windows binaries are attached by CI a few minutes after publish.
Castellyn v0.5.0
Castellyn v0.5.0 — a full pass over the Forks tab: clearer status, redundant-wip-local detection, real fork operations, upstream lifecycle awareness, and a richer repository table.
Highlights
- 🧹 Redundant wip-local — counts a
wip-localbranch's unique commits; when it holds nothing new, recommends Delete wip-local (local, backed up, never pushed) instead of "sync it forever". - 🔱 Real fork ops — Compare on GitHub, Contribute back (PR-to-upstream form for branches with unique work), and Prune stale branches (whose remote was deleted after a merge).
- 🩺 Upstream lifecycle — badges for an archived original ("dead fork"), a default-branch rename (
master→maindrift that silently breaks sync), and "+N in main" (why fast-forward is blocked). - 🟦 Behind vs diverged — a fast-forwardable branch now reads differently from one that needs a manual rebase; cryptic status lines reworded in plain language with explanatory tooltips.
- 📊 Richer table — Language · ★Stars · Updated columns, an archived badge, description on hover; the wasted right-hand whitespace and the 3-line "Open on GitHub" button are gone.
Full notes: CHANGELOG.
Download (Windows x64)
| File | Use |
|---|---|
Castellyn_0.5.0_x64-setup.exe |
NSIS installer (recommended) |
Castellyn_0.5.0_x64_en-US.msi |
MSI installer (enterprise / silent) |
Castellyn-0.5.0-windows-x64.exe |
Portable standalone (no install) |
Unsigned build → Windows SmartScreen may warn: More info → Run anyway.
Windows-first: full functionality expects the maintenance-scripts toolkit underSCRIPTS_ROOT(Settings → defaultE:\Scripts).
Castellyn v0.4.0
Castellyn v0.4.0 — parallel sessions over SSH, multi-monitor session output, a redesigned launcher, and a large reliability + DRY hardening pass.
Highlights
- 🔐 SSH sessions — run Claude / opencode / a shell on a remote host via the system
ssh+ your~/.ssh(no secrets stored). Host registry with~/.ssh/configimport (now honoringInclude), reachability dots, and an optional remote start directory. - 🖥️ Multi-monitor — pop a pane onto another monitor (
⬈) or spread sessions across them as a live move (the session never dies — output fans out). The arrangement persists and restores on launch. - ⌨️ Launcher redesign — an inline phrase (
Run {env} on {location} in {folder} with {args}) with SSH as a location toggle; ★ pin a whole phrase for one-click relaunch; keyboard hints (Ctrl+T, Alt+1/2/3); recent remote-dir suggestions. - 🛡️ Reliability & DRY — sessions reaped on exit, atomic session-limit and fork-status writes, SSH probes every resolved address, popovers self-correct inside blurred cards, and a monitor-window that fails to build recovers instead of vanishing.
Full notes: CHANGELOG.
Download (Windows x64)
| File | Use |
|---|---|
Castellyn_0.4.0_x64-setup.exe |
NSIS installer (recommended) |
Castellyn_0.4.0_x64_en-US.msi |
MSI installer (enterprise / silent) |
Castellyn-0.4.0-windows-x64.exe |
Portable standalone (no install) |
Unsigned build → Windows SmartScreen may warn: More info → Run anyway.
Windows-first: full functionality expects the maintenance-scripts toolkit underSCRIPTS_ROOT(Settings → defaultE:\Scripts).
Castellyn v0.3.0
Castellyn — one native control center for your AI-coding dev environment (Claude Code, opencode): profiles, providers & routers, MCP, plugins & skills, parallel sessions and fork upkeep. Tauri v2 + Svelte 5 + Rust. UI in English / Russian / Chinese.
First release under the Castellyn name (renamed from AgentHub).
Highlights
- 🏰 New brand: citadel icon, banner, trilingual README, in-app logo.
- 📊 Reusable data tables (sort / search / resize / row-expand / bulk) rolled out to Plugins & skills, MCP, Profiles and the GitHub-only Forks list.
- 🧩 Skills/plugins ownership: items from your own local marketplace now classify as "mine" (e.g.
/maxskills). - 🗂️ 12 tabs: Sessions · Profiles · Providers · MCP · Plugins & skills · Schedule · Analytics · Sync · Updates · Forks · Backup · Settings.
Download (Windows x64)
| File | Use |
|---|---|
Castellyn_0.3.0_x64-setup.exe |
NSIS installer (recommended) |
Castellyn_0.3.0_x64_en-US.msi |
MSI installer (enterprise / silent) |
Castellyn-0.3.0-windows-x64.exe |
Portable standalone (no install) |
Unsigned build → Windows SmartScreen may warn: More info → Run anyway.
Windows-first: full functionality expects the maintenance-scripts toolkit underSCRIPTS_ROOT(env → Settings → defaultE:\Scripts).
Castellyn v0.2.1
Security & portability hardening on top of v0.2.0.
- Secrets no longer pass via the command line: provider tokens and the opencode apiKey are fed to the binding scripts over STDIN (Windows argv is world-readable via Win32_Process). spawn_streamed gains an stdin-capable variant; -TokenStdin / -KeyStdin.
- Manifest paths are machine-independent: engines.json / stack.json use {{SCRIPTS_ROOT}} and {{USERPROFILE}} placeholders, expanded by the executors and the backend (SCRIPTS_ROOT is exported to spawned scripts). Absolute paths still work.
- Binding scripts (Manage-Provider/Connect-Router/Setup-Router/Manage-OpenCode-Provider/Manage-Engine) vendored into the repo for version history.
- Removed a dead duplicate engine entry (router-glm).
Windows x64 build attached.
Castellyn v0.2.0
Cohesive stack binding for Claude Code (harness-wiring).
- One-step binding writes a persistent provider into each profile's settings.json that survives restart and a bare
claudelaunch — no real Anthropic login required. - A dummy ANTHROPIC_AUTH_TOKEN is written for keyless local gateways (never leaves a custom endpoint tokenless), so the login screen is skipped.
- Model overrides now use the current tier env vars (ANTHROPIC_DEFAULT_SONNET/OPUS_MODEL, ANTHROPIC_DEFAULT_HAIKU_MODEL); legacy ANTHROPIC_MODEL / ANTHROPIC_SMALL_FAST_MODEL are migrated away.
- Added CONTEXT.md glossary and ADR 0001 documenting the mechanism.
Windows x64 build attached.