Releases: rodarvus/proteles
Proteles v0.7.0
The polish-and-debug release: a month of live-play fixes plus several new surfaces.
New
- Lua Console (Tools ▸ Lua Console, ⇧⌘Y): script errors stream in live with the plugin that raised them, plus a REPL with input history and a per-plugin environment picker (run code inside any loaded plugin's sandbox).
- Continent maps: travelling overland now renders Aardwolf's bigmap natively in the Map panel — coloured cells, your position ringed, fetched automatically once per continent and persisted across sessions.
- Map background textures: the mapper tiles each area's texture behind the map (
mapper textures on|off). Bring your own images into~/Documents/Proteles/MapImages/— the MUSHclient import now copies them across for you. - Import upgrades: map textures come across, and installs carrying their own Search & Destroy can choose between Proteles' copy (latest, recommended) or importing theirs.
Improved
- Settings reshaped: seven focused tabs (Appearance, Status Bar, Input, Panels, Session, Notifications, Development) — every setting where you'd look for it, with tooltips throughout.
- Menus reorganised: File is the session lifecycle ("Connect to " names the active world), a new Tools menu holds the editor windows, View holds only view concerns.
- Floating panels: translucency now fades only the backdrop — text stays readable at any opacity, and all panels fade consistently.
- Notifications: the low-HP alert threshold is editable in place.
- Triggers: same-sequence trigger ordering now matches MUSHclient exactly (match-text order), fixing plugins whose marker-scan patterns depended on it.
Fixed
- Search & Destroy:
xset autonav,ht find, andmobsearchwork (the packaged plugin shipped mismatched halves; the host now loads a single source of truth and survives any S&D version). S&D settings — autonav included — persist across sessions. - Plugins can now detect and call the natively-hosted S&D (
IsPluginInstalled/CallPlugin), including synchronous reads of the current target and goto list. - Campaign room lookups prefer rooms a mob is actually known to occupy.
ldb onand other plugin state survive quitting while connected.- Channel social colours render correctly (1-based colour tables).
- Empty-room kill loops no longer try to attack Aardwolf tag markers.
Proteles v0.6.0
Import your whole MUSHclient setup
File ▸ Import from MUSHclient… brings an existing install (a folder or a .zip) into Proteles in one pass, behind a reviewable sheet that shows exactly what will be brought over and backs up your current data first:
- Connection + autologin (password goes straight to the Keychain).
- Aliases, triggers, timers, macros, and the keypad. MUSHclient
replace-type macros become a real "replace command line" action (they prefill the input instead of sending). - Your third-party plugins — each vetted by the same compatibility check as adding one by hand (own pop-up window / Windows-only / missing files).
- Mapper, Search-and-Destroy, inventory (dinv), and leveling (leveldb) databases — the live copy is detected automatically.
On a fresh install the import simply becomes your profile; if you already have one, it lands as a separate "Aardwolf (imported)" so your setup is never clobbered. The bundled Aardwolf package plugins are recognized and skipped (Proteles provides them natively).
Also fixed
- Editbox dialogs (e.g. a plugin's config editor) now scroll properly.
Notarized Developer-ID build. Auto-update via Sparkle.
Proteles v0.5.1
Proteles v0.5.1
- WebSocket connection option (experimental). A per-world Direct/WebSocket transport over Aardwolf's TLS gateway — the groundwork for an iOS client. The gateway currently forwards limited GMCP (vitals HUD, mapper, and channels stay empty over WebSocket — the world editor warns when it's selected), so Direct (TCP) remains the full-featured path.
- Faithful channel rendering. Channels now render from GMCP (colored) like the Aardwolf package, fixing held/caught tells (
catchtells) not appearing in the main window. - Smarter command completion. Verbs and subcommands are now recognised for every installed plugin, not just the built-in ones.
- Bundled monospace fonts. JetBrains Mono (default) plus Fira Code, Source Code Pro, Monaspace, Cascadia Code, and Hack — all OFL.
- Reliability. Hardened the auto-update/release flow (build-number + draft-release guards) and got CI back to green.
Notarized Developer-ID build. Auto-updates from v0.5.0.
Proteles v0.5.0
Notarized Developer-ID build.
Storage reshape
- All Proteles data now lives under
~/Documents/Proteles/— Settings, State, Scripts, Plugins, Databases, Recordings, Logs. - Hand-editable
Settings/preferences.jsonandSettings/notification-rules.json. - Plugin databases flattened to
Databases/<character>/<plugin>.db.
Command completion overhaul
- Full 519-command Aardwolf verb base, plus your own aliases.
- Kind-aware channel ghosting — broadcast channels stay quiet; directed channels (
tell/page) complete a recipient. - Per-verb argument completion: exits (
open/close/unlock), spells (cast), areas (runto/xrt), and owned items (wear/wield/quaff/…).
Also
/luaconsole command for one-off Lua evaluation on the live engine.- Compat-shim fixes: live output-view geometry, clipboard, temporary trigger/timer clears.
- Parser fuzzing + test-isolation hardening.
~1300 tests, four gates green.
Proteles v0.4.12
Notarized Developer-ID build.
Robust session resume (#42, auto-update Phase 2)
- Resume survives long sessions — a heartbeat keeps the resume breadcrumb fresh, so an update relaunch restores your scrollback + reconnects even after hours online.
- A clean
quit(or Disconnect) ends cleanly — no unwanted resume on the next launch; only an unexpected restart (update/crash) resumes. - Resume is now recorded in the session transcript (auditable).
All three paths verified live: update→resume, quick-relaunch→resume, clean-quit→cold-start.
Auto-update remains interim/GitHub-hosted until proteles.net.
Proteles v0.4.11
Notarized Developer-ID build. Version-only bump released to validate the Phase 2 seamless update→resume flow (0.4.10 → 0.4.11). Interim GitHub-hosted update feed until proteles.net.
Proteles v0.4.10
Notarized Developer-ID build.
Auto-update Phase 2 — seamless session resume (#42)
- After an update relaunch (or a crash / quick restart while connected), Proteles restores your scrollback, reconnects + auto-logs-in, and shows a brief "Updated to vX — reconnecting…" banner instead of a cold start.
- Mid-combat guard: background update checks defer while you're fighting / running / writing a note, so an update prompt never interrupts combat. (Manual "Check for Updates…" always works.)
Auto-update remains interim/GitHub-hosted until proteles.net.
Proteles v0.4.9
Notarized Developer-ID build. Tiny follow-up to 0.4.8 (About-panel tagline), released to exercise the Sparkle auto-updater end-to-end. Interim GitHub-hosted update feed until proteles.net.
Proteles v0.4.8
Notarized Developer-ID build.
Fixes
- Colours: bold ANSI now renders bright, matching MUSHclient's
<bold>palette. Previously bold codes (\e[1;3Xm) rendered as their dim normal variants — bold-black became invisible on black, bold-blue showed as dark navy, etc. Now bold-black is grey, bold-blue is bright blue, and the main window matches the Channels window. Also brightens the very-darkest xterm codes per Aardwolf's ownx_not_too_darkremap.
Improvements
- Multi-line command input: Shift-Enter inserts a newline, paste preserves newlines, plain Enter still sends (one command per line); the field auto-grows.
- Command-button hotkeys now actually bind the key — pressing a button's chord fires it.
- Auto-update (Sparkle) — App ▸ Check for Updates… plus background daily checks.
Note: auto-update is interim/GitHub-hosted while
proteles.netis being set up; the feed moves to proteles.net before 1.0.
Proteles v0.4.7
Notarized Developer-ID build.
Fixes
- Performance: jagged room-to-room movement resolved. Removed a continuous, always-on map-pulse animation that was driving a 60 fps redraw of the whole UI whenever the Map panel was visible, starving the main thread during play. Validated against a live 143-room movement recording: zero main-thread stalls and zero slow render frames across continuous movement.
- Group window now populates. Aardwolf sends each member's vitals as JSON numbers; the decoder expected strings and silently dropped them, leaving the Group window empty while in a party. It now accepts number-or-string fields.
Improvements
- Group window: the group name renders with its Aardwolf
@-colours, and the default window is narrower (hugs its content). - Group data refreshes on tick and on join/leave/disband/leader changes (Aardwolf only sends
groupGMCP on request). - Render telemetry: a thresholded arrival→paint latency probe + finer main-thread stall monitor, logged to the session transcript only when a real hitch occurs — for ongoing live performance debugging.