Weekly rollup
Plugin
- Nine alpha releases stacked (0.3.0-alpha.101 through .109). Highlights:
- New
/revell:statuslinecommand 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
- New
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:helpwas 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:linkasks Revell; the human presses one button/revell:remember-thispromotes the prior turn immediately/revell:worriedreturns as a proper panel/revell:boot-confighuman slash command + link-flow walkthrough/revell:checkinhonesty — surfaces buffer state and sensitivity/revell:devrewritten — data-driven, no approximation/revell:tourguided 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_appliedfor 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
**kwargson 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:checkinreports 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:worriedmachine-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:helpis 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:linkasks 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:transcriptsslash - 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:repaircommand - 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-confighuman 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:transcriptsslash - 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:devrewritten — 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
truncateAtconfig 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_statussurfaces 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 authrevell_scriptrebuilt to full spec (patches for installed agents)mcp_challengedelivers tenant_id inline so handshake works without env-var discovery- Direction threaded through
revell_rememberschema + storeMemory call
Framework patches
- Card respects
patches_appliedfor per-tenant overrides
Hermes
- Ship
revell_registerskill in the compaction-protection payload too - Un-astro the Hermes plugin refresh + per-tenant patches
- Forward-compat
**kwargson all lifecycle handlers - Silent-noop fixes on
sync_turnfor a specific tenant’s install
Import & recovery
readFileTextwrapper 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_namein 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_giftfor 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
/mcpin the session - Hermes: restart the gateway (
hermes-cli restartor 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
- Claude Code / ForgeMind: run
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-end —
revell_rooms_leave_giftMCP tool. Gifts arrive pending; owner approves/rejects viarevell_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

