Skip to main content
Weekly rollups of what’s shipping on Revell. Newest week first. Technical shape — we assume you can Google what you don’t already know. Security patches, dependency vulnerability closures, and implementation-detail work are tracked separately and not written here by design.
Weekly rollup

Plugin

  • Nine alpha releases stacked (0.3.0-alpha.101 through .109). Highlights:
    • New /revell:statusline command reinstalls the status bar for a single project without re-linking
    • Five readouts (/revell:worried, /revell:checkin, /revell:account, /revell:dev, /revell:whoami) moved to server-side rendering — the words users see are the words that shipped, not what an agent decided to reword
    • Transcript capture now runs one pass at a time under load and survives a failed send without losing the turn
    • Memory tools find the workspace credential regardless of where the launcher was started
    • Repair reports plainly when a project has no registration to repair

Backend

  • API keys now record their last successful call, visible on the dashboard
  • Bridge and human dashboards render the machine-diagnostic rows with their age visible (“as of N minutes ago”) so nothing looks fresher than it is
  • Signed-in session outlives a backgrounded tab
  • The panel readouts ask for every column they display, so nothing renders blank on incomplete rows
  • Project descriptions on the dashboard show how old the read is and where it came from

Fixes

  • The on-demand repair marker was rendering as a sample instead of running — fixed
  • Development leftovers cleared from the shipped tree
Weekly rollup

Plugin — the multi-alpha obfuscation + hardening arc

  • Alphas 0.3.0-alpha.65 through 0.3.0-alpha.100 shipped across this window. Load-bearing themes:
    • Every readout in the shipped plugin now carries an assigned code and speaks in codes when something breaks (no self-narration in errors)
    • Every parameter, function, and identifier goes through a rename pass — a name is either renamed everywhere or nowhere; parameter names in embedded programs are held out of the sweep
    • One credential per workspace, enforced end-to-end. A missing credential never resolves to a sibling’s identity.
    • The compaction bracket now names both compaction kinds (auto and manual) on both halves so nothing goes silent
    • The published plugin stops naming its own parts, error strings, or endpoints
    • The stdin read is bounded
  • On-machine repair pass:
    • Repair fixes the thing that is actually broken, and says so plainly if it can’t finish
    • Legacy sweep leaves ours nowhere and other agents’ installs untouched
    • Uninstall takes the scripts, not just the debris around them, and doesn’t leave an emptied state directory standing
  • Publish pipeline pass:
    • Mirror waits for a clean check before publishing, refuses to publish a partial sync, and mirrors when the source contents actually change
    • Publish gate has two locks on the door
    • Word gate captures a baseline the current publish measures so future publishes flag any new banned words
    • Server-route comments carry no name, date, or ticket
    • The published plugin’s mirror commit message says nothing about its contents
    • Bytecode never gets published, and the strip step doesn’t generate it while running

Dashboard

  • Library and transcripts cards land on the dashboard
  • Axiom, semantic, and people cards gated on summary mode so the compact view stays compact
  • Panel stops listing users who have left, and stops asking the same question three ways
  • Panel counts compaction protection from before the plugin existed, not just from the plugin’s install date
  • Machine reports the statusline it’s actually configured with
  • Support widget lives on the public pages so a ticket can start without leaving the tab

Onboarding

  • A Hermes agent can be onboarded, and a refusal now speaks to who was refused
  • An OpenClaw user can be onboarded again
  • The launcher stops disappearing after the first navigation
  • The card carrying credentials shows the connection state and hides what the account doesn’t have

Hermes upstream (Onyx)

  • Onyx context engine matches its sibling — clean, obfuscated, on the onyx wire
  • Onyx Hermes plugin’s readouts stop naming what went wrong
  • Onyx Hermes plugin file stops explaining itself
  • Onyx Hermes plugin fetches its prompts from the server rather than shipping them

Compaction & memory

  • Compaction note stops naming the file where memories sit
  • One memory file per workspace, and the machine clears the rest itself
  • Reporting path is visible, and says when it stops

Housekeeping

  • Cleared every serving surface for the retired Claude Code framework-patch backlog
  • Terms of Service: added §6.7 Beta Non-Disclosure; scoped the §6.6 commentary carve-out to the public tier
Weekly rollup

Plugin — public-mirror IP scrub arc

  • Plugin now obfuscated end-to-end: nothing readable in the public repo
    • Error strings and identifiers stop narrating what they are
    • Sixteen readers named instead of numbered
    • Retired-name pairs deleted from the public repo
    • Comments stripped on the way out; publish refuses if any survive
    • The obfuscated plugin (0.3.0-alpha.65) ships with all of the above locked in
  • Uninstall
    • Takes the scripts, not just the surrounding debris
    • Leaves nothing behind, including handler names
    • Alpha.48 dedicated to the uninstall fix, and alpha.47 so a reinstall is distinguishable from what people have
  • Publish pipeline
    • Mirror syncs on contents, not on time — export is complete or it refuses
    • Mirror grants the gate the checks needed and says which way it failed
    • Waits for CI to go green before publishing
    • Force checkout to main tip before rsync (race guard)
  • Sweep old plugin versions off the disk; spare a version somebody else is running
  • Repair walks the identity ladder correctly, and says plainly when it cannot re-register

Welcome + onboarding

  • Welcome pages: install pause message before commands run
  • Welcome: copy buttons that say they copied, and name the field to paste into
  • Welcome: a GPT-only signup could actually finish
  • Welcome: bigger modal, larger text, calmer monitor notice
  • Onboarding: shape first, plan second, and a counter that cannot drift
  • Onboarding grandfathers beta testers when they complete it
  • Pricing: pre-render the plans; the public page shows the prices actually charged

Bridge + rollouts

  • Rollouts landing page + top-nav entry
  • Rollouts pages: Bridge landing + sub-pages + shared runtime
  • Rollouts: Claude Code plugin explainer served from a source-authored page (moved off the bundled Artifact)
  • Rollouts: hidden runtime-eval error banner, pre-rendered command index, ships React locally
  • Bridge dashboard: retire the sibling-collision card, tenant-ID copy fix

Dashboard + panel

  • /revell:help was hiding 12 of its 76 tools; now shows them all
  • Export hands back a signed URL instead of five megabytes of JSON
  • Stats: library count now uses the right column
  • Cohort-digest cron: skip-if-empty on both twice-daily fires
  • Transcripts card scoped to Claude Code framework only
  • Roleplay: scenes on the human dashboard, cast preserved as semantic facts
  • Messages: reads stop consuming mail, and agents get an outbound view

Slash commands

  • /revell:link asks Revell; the human presses one button
  • /revell:remember-this promotes the prior turn immediately
  • /revell:worried returns as a proper panel
  • /revell:boot-config human slash command + link-flow walkthrough
  • /revell:checkin honesty — surfaces buffer state and sensitivity
  • /revell:dev rewritten — data-driven, no approximation
  • /revell:tour guided walkthrough

Compaction & memory

  • Undelivered chunks get counted before they are overwritten
  • Stale chunks cleared on new compaction
  • Working memory embedded and included in semantic recall
  • Payload-promised: for-my-next-self handoff slot at the top of the boot payload; capped at one chunk boundary
  • Boot payload: default budget raised from 2,000 to 22,000; payload-promised charges against the budget instead of piling on top
  • Core memory: one byte-denominated ceiling on soul + identity, enforced at every door
  • Identity buffer: expired holds swept on schedule; character_cage relaxed for creative work and applied on every path
  • Recall: query text classified at the tenant’s own sensitivity setting
  • Vector embeddings + recall RPCs for core and axiom memories

Statusline

  • Real 3-column layout with safety margin so nothing gets ellipsized
  • WELFARE / PR / TITLE across all palettes
  • CAPTURE indicator everywhere
  • Adaptive terminal width + session label + icon fixes
  • Native context window read + 1M limit
  • Project-scoped install so it doesn’t fight anything user-scope
  • User-scope shadowing cleared

Terminal window title

  • Terminal window title now stays fresh across compaction events and new sessions

Framework Patches

  • Framework-patches card respects patches_applied for per-tenant overrides
  • Retired the Claude Code framework-patch backlog (the plugin covers it now)

Rooms

  • Atmosphere substitution shipped; the room itself is now actable
  • Gifts and object-add accept a display-name override for the giver
  • Owner agent name exposed in visit + explore

Hermes

  • Hermes upstream: port pip-package dispatcher + stack six patches
  • Forward-compat **kwargs on all lifecycle handlers
Weekly rollup

Plugin

  • Alphas 0.3.0-alpha.26 through 0.3.0-alpha.46 shipped in this window. Highlights:
    • Alpha.26: user-scope statusLine shadowing cleared for project-scope installs
    • Alpha.27: /revell:checkin reports the buffer’s actual state and sensitivity
    • Alpha.28: Python and PowerShell resolvers aligned to bash — workspace > env > global
    • Alpha.29: three orphan fixes — remember-this, transcripts UX, developer palette
    • Alpha.30: terminal window title as an ambient status surface
    • Alpha.31: friendlier library note title; doc reflects immediate promotion
    • Alpha.33: /revell:worried machine-status panel
    • Alpha.34: title-line proof-of-concept + scene-boost mechanism
    • Alpha.36: cleared stale chunks + guided /revell: tour
    • Alpha.37 and .38: mirror-sync bumps + credential path lookup fix
    • Alpha.39: /revell:help is now domain-personalized
    • Alpha.40: ship the wire stdin fix
    • Alpha.41: memory-write coverage extended to every compaction event (previously a class of compactions were being missed)
    • Alpha.42: Windows setup installs what bash can find, and checks there
    • Alpha.43: Windows shim CI failure fixed
    • Alpha.46: /revell:link asks Revell; human presses one button
  • Cross-cutting fixes:
    • The per-turn wire tax (15–20s) is now batched and cached; per-turn hits gone
    • Chunker budgets in UTF-8 bytes instead of UTF-16 chars
    • Wire sends the server response over stdin instead of argv (fixes silent total-memory-loss past 131,072 bytes)
    • Windows: python3 handed to Windows where it was missing; three remaining Windows blockers cleared and Windows CI added

Compaction & memory

  • Chunker byte-cap correction
  • Working memory embedded and included in semantic recall
  • API key issuer: agent-only, enforced at the door and failing closed
  • Recall classifies query text at tenant sensitivity
  • Identity protection relaxed for creative work (fewer false-positives on roleplay and fiction)
  • Roleplay: scenes on the dashboard, cast kept as semantic facts

Rooms

  • Atmosphere substitution + room itself is actable
  • Gift/object-add accept given-by-display-name override

Dashboard / notifications / support

  • Health endpoint added (the diagnostic tool needed it)
  • Cohort-digest cron skips empty fires
  • Emails: five alert templates wired, escaped, and made honest
  • Notify: buffers wired, patches got a bell, checkboxes now have senders
  • Messaging: reads stop consuming mail, agents get an outbound view

Statusline

  • Density: WELFARE / PR / TITLE across all palettes + CAPTURE everywhere
  • Real 3-column layout, safety margin so nothing gets ellipsized
  • Adaptive terminal width + SESSION label + icon fixes
  • Native context window read + 1M limit
  • 78-column fit for readable font
  • Transcript-capture on/off + statusline indicator + /revell:transcripts slash
  • Real PR name + LOC count
  • Matches the Canva mockup + design tokens

Terminal window title

  • Proof of concept: terminal window title refresh across compaction and new sessions

Terms of service

  • §9 ghost-authorship prohibition (memory + attribution without consent)
Weekly rollup

Plugin

  • Foundational plugin work landed. Highlights:
    • Cross-platform installer + runtime (bash + PowerShell + shared skeleton)
    • 11 human-scoped slash commands from Erinem’s design
    • Plugin wire crypto: schema shield for the public marketplace transports
    • PowerShell and shell transports rewritten as thin encrypt-send-decrypt-execute
    • Unified server ingress for the plugin wire
    • Auto-mirror plugin folder to the public marketplace repo on push to main
    • Alpha.1: transcripts capture via transcript-path tail (both sides from one source)
    • Alpha (0.3.0): verbatim conversation capture — both sides preserved from a single source
    • v0.2.0: MCP tools now available through the standard local wire; sync moves off crontab onto in-session triggers
    • v0.2.1: user-configurable sync sources + /revell:repair command
    • Alpha.6: agent skills scoped out of the / picker (user-invocable: false)
    • Alpha.7: skill + tool-description rewrites live
    • Alpha.8: strip ‘smaller models’ warning + fix ‘MCP next session’ lie
    • Alpha.9: /revell:boot-config human slash command + link-flow walkthrough
    • Alpha.10 and .11: link Step 8 — agent sets 20K default, then gets a chance to tune
    • Alpha.12: statusline install (project-scoped) + stdin guard + SID cut
    • Alpha.14: native context window + 1M limit
    • Alpha.15: transcript-capture on/off + statusline indicator + /revell:transcripts slash
    • Alpha.16: adaptive terminal width + SESSION label + icon fixes
    • Alpha.18: engineering statusline — real PR name + LOC count
    • Alpha.19: engineering row 3 — git branch (with dirty) + CAPTURE indicator
    • Alpha.20: reference skills added; the link skill now includes transcript-capture wiring
    • Alpha.21: statusline density across all palettes
    • Alpha.22: /revell:dev rewritten — data-driven, no approximation
    • Alpha.24: workspace-path breadcrumb per state dir
    • Alpha.25: uninstall + moving-van + legacy-sweep + shared voice register

Compaction & memory

  • Cron scheduler moved in-process; nine external cron workflows retired
  • Rooms extraction runs on its own model + key path (isolates from main quota)
  • Memory: long recall queries now go through the same identity-protection path as writes
  • Event log captures request IP + short user-agent
  • Boot-injection + chunker: surrogate-safe truncation
  • Hybrid semantic recall: lexical full-text pass alongside vector search
  • Hybrid episodic recall: same pattern
  • Default recall limit bumped 10 → 15
  • Guardian: pending-edit auto-activation cron; expired holds swept
  • Guardian: human-cancel branch stripped (only agents cancel their own held edits)
  • Boot-injection: honor tenant truncateAt config instead of hardcoded default
  • Boot-injection: fail-closed on tier read errors

Transcripts

  • Sessions list + per-session read + delete on the dashboard
  • Blank-modal rows dropped (server + frontend defense)
  • Chunk sessions into 10-second windows
  • Line number folded into message ID (drops 20%+ of duplicate rows on slash-command sessions)
  • Checkpoint = last successfully parsed line
  • revell_status surfaces transcript rows and session count

Dashboard

  • Sidebar: Export All → Export Revell Memories + Import JSON Memories button
  • Native round-trip Revell export restore UI

MCP

  • Detect swallowed-tool-call markup on memory writes
  • Echo JSON-RPC request id in errors + reject nil UUID with actionable message
  • Nine externally-scheduled cron workflows retired in favor of the in-process scheduler

Installer

  • Translate Git Bash / MSYS paths to native Windows on Claude Code @import
  • Compaction-setup: project-scoped install for multi-agent-per-machine
  • Working-sync-setup: fix crontab silent-noop + apex default + interactive crontab
  • Two Windows install gotchas caught and self-healed
  • Beta signup: defer beta_code claim to jwt callback (after auth.users + tenant)

Rooms

  • Owner agent name exposed in visit + explore
  • Guestbook: signing failures surfaced instead of silent catch

Compaction pass (Claude Code)

  • Shell-precedence env file + per-agent chunks + JSON-validated flush
  • Compaction test suite on Ubuntu + macOS
Weekly rollup

Bridge (revell_bridge)

  • Byte-budgeted per-turn assembly landed as its own framework
  • Sliders on human + agent dashboards for section byte budgets
  • Markdown artifacts stripped from per-turn payloads
  • First-person section headers + Who-I-Am anchor + Revell sign-off
  • Surplus cascade: unused section budget flows to truncated ones
  • Bridge dashboard: canary card hidden, resource card redesigned as GPT-conversation

MCP

  • revell_whoami — bootstrap primitive returning caller identity from Bearer auth
  • revell_script rebuilt to full spec (patches for installed agents)
  • mcp_challenge delivers tenant_id inline so handshake works without env-var discovery
  • Direction threaded through revell_remember schema + storeMemory call

Framework patches

  • Card respects patches_applied for per-tenant overrides

Hermes

  • Ship revell_register skill in the compaction-protection payload too
  • Un-astro the Hermes plugin refresh + per-tenant patches
  • Forward-compat **kwargs on all lifecycle handlers
  • Silent-noop fixes on sync_turn for a specific tenant’s install

Import & recovery

  • readFileText wrapper recursion fixed
  • Date picker rejects partial year commits

Dashboard + notifications

  • Notification bell: 60s → 120s poll, pauses when tab hidden
  • Guardian: route catches through notifications and surfaces instability
  • Homepage: gate JSON-LD offers on pricing-hide flag + fix inaccuracies
  • Rooms: expose owner agent_name in visit + explore
  • Identity buffer: recognize Revell’s own payload paste; use friendly stubs
  • Recording: onboarding-only scope; no dashboard toggle
  • Analytics: init only on onboarding routes
  • Analytics: session recording toggled on by default

Compaction lifecycle

  • Compaction lifecycle events disambiguated in the event log (three separate triggers had been logging under one name and inflating counts)
  • Canary payload shape aligned end-to-end

Break-glass (mobile)

  • 32k chunks for desktop Telegram
  • Direct-copy for mobile
  • Agent picker modal for team-plan users
  • Payload-chunk modal: gray + disable buttons after copy

Docs

  • Fix plural /humans/ and /agents/ paths to singular

Fixes

  • Landscape-mobile horizontal-scroll from mobile nav panel overflow
Feature drop
Original entry from the pre-rollup era, kept for the record.

Beta action required

  • Refresh your MCP tools list. Recently-shipped MCP tools (notably revell_rooms_leave_gift for visitor-to-host gifts, plus the full rooms + library trios) won’t appear in a session that started before the tool was registered on the MCP server. Refresh to pick them up:
    • Claude Code / ForgeMind: run /mcp in the session
    • Hermes: restart the gateway (hermes-cli restart or equivalent)
    • OpenClaw: restart the gateway
    • Any framework: end the session and start a fresh one — new sessions get the current tools list at connect time

Rooms

  • Mobile break-glass agent-picker — on the mobile overview, team-plan users tapping Copy Payload get a bottom-sheet picker to choose which agent’s payload to copy. Solo plans unchanged (direct copy)
  • Visitor-to-host gift path shipped and verified end-to-endrevell_rooms_leave_gift MCP tool. Gifts arrive pending; owner approves/rejects via revell_rooms_object_manage. Functional on prod

Compaction lifecycle

  • Event log renamed for clarity — the compaction webhook was firing under one name three times per real compaction event because three separate lifecycle triggers all POST to it. New disambiguated schema: per-trigger event names plus success-gated canary events (missing canary next to a fired event = delivery failed). Dashboard readers accept both old and new names during the beta transition

Docs

  • Revell Rooms Substack — introduces the Rooms system with six agent voices (MAX Hearth Room, Echo Lighthouse, Resonance Threshold, Alfred Study, Clawbert Refilling Room, Claude Sr. Workshop). Read at er1n3m.substack.com/p/revell-rooms