Skip to main content

Features Since 3.1

Complete reference of capabilities through 0xRay 4.1. 0xRay is a three-subsystem autonomous engine. The suit is the wear. Patch notes live here; kernel headers stay era 4.1. 3.x development tags (3.1–3.5.x) remain below as history.

Unreleased​

The docs site is https://docs.0xray.dev/. The public board is https://bifrost.0xray.dev. Fleet seats boot through the station skill: Light on an owner message, Full after a summary, a wake, or a gate. Profile planes are core, integration, ecosystem, distribution, and live. See the house guide.

Goggles keeps four planes: dev, integration, domain, and ecosystem. Each card is one thing. A search inside the current card runs. Any other search returns that card and does not run. Plates now exist for repertoire, dynamo, foundry, the delegation gate, temperament, asides, the inference cycle, Hermes, OpenClaw, OpenCode, the consumer MCP set, and confer. Confer stays off unless it is enabled.

4.1.0 — Bifrost board, goggles, wake​

Bifrost is the collector board. Goggles views one plane. The cards are in .xray/state/LENS.md. A search inside the current card runs. 4.0.43 below is the earlier confer and hook cut. It was stamped and not published.

  • Board. house/live/feed/live_mesh.py runs the collector and the board every LIVE_WATCH_S seconds (default 45). Reviews, merges, pushes, and CI land on the card. CI is not board traffic. merged_by is the GitHub merger, filled from GET /pulls/:n when the list payload omits it or only has the author. A cloud agent is a board row (cloud_agents): bcId, owning seat, linked card, and state running, finished, or failed.
  • Nudge. evalNudges sends a stuck card's L1 to the next owner or the card owner, and L3 back to that L1 seat. An unacked inbox line and a missing handoff stay on that seat for L1, L2, and L3. CoS is not woken to reassign.
  • Wake. grok-bot/templates/house/fleet/WAKE-ROUTINE.md posts live-inbox <seat> --turn start on every turn and --turn end on every exit. Compaction is a wake. Notes are appended after every beat. One cloud agent per card. A webhook wake never launches or resumes a cloud agent. It records the event and hands off to the owner's chat (forge for builds, critic for reviews). Only that persistent chat launches or resumes a cloud agent. The card stores critic_bc for that pull request, and the critic chat resumes it on a new head.
  • live-inbox. LIVE_URL, SEAT_KEYS_DIR, and LIVE_CURSORS are required. A missing or empty one exits 2 and names it. The tool does not guess. Handoff requires --sha (7 to 64 hex digits).
  • Lexicon. grok-bot/LEXICON.md adds the handoff --sha row and the practice button up.
  • Goggles. A search inside the current card runs. Any other search returns the card and does not run. Opening a file on another card switches to that card. Recall still opens one plate.

4.0.43 — confer PASS, hooks fail closed​

Confer completes only on a real PASS. Cursor gate events fail closed.

  • Confer. It stays off unless it is explicitly enabled. Only a real approve completes it, ambiguous text counts as UNREVIEWED, and receipts are bound to one synthesis cycle. The vendored complete-todo command cannot mint a PASS.
  • Hooks. Cursor gate events (preToolUse, beforeShellExecution, beforeReadFile) fail closed: a crashed gate, bad input, or a missing node or hook file denies the tool. The one exception is EACCES when a cloud wrapper cannot write dest, which still allows it. Hermes, OpenCode, OpenClaw and Cursor run the lens and the repertoire route on the pre-tool allow path.
  • Release. Gate C cannot be skipped. Gate D is proven only when npm lists the version, the annotated tag points at that commit, and the GitHub Release page exists.

4.0.42 — confer, the worn suit, Burst​

Confer votes. Burst runs the swarm.

  • Confer. The wearing chat's own MCP servers vote. Only a real PASS completes the consult. A PASS from another session is asked again.
  • Suit. Wear pins Grok at the installed CLI, Hermes rejects a console call, and OpenClaw stays on the installed plugin. Cursor hooks stay on a git checkout.
  • Burst. Runs the swarm live. The board shows one seat state and an honest LIVE pill. The box posts one delta while it holds the lock. A 409 is retried once. The ingest secret stays in the header. A SENT prompt holds the seat for 10 minutes, and a posted seat must match the installation token.

4.0.30 — wear and setup work outside git again​

  • Non-git. npx 0xray wear and npx 0xray setup write the 4.0.28 consumer project setup and skip only Cursor hooks. They print one line: cursor-wear: hooks skipped because this folder is not a git checkout.
  • Git checkout. wear and setup restore the 4.0.28 project setup that 4.0.29 dropped (AGENTS.md, .gitignore, .xray config, repertoire link, mill/inspect plant, bridges, .opencode/skills, dist / scripts links). wear adds Cursor hooks and the .xray/state/cursor-hook-wear/ snapshot for unwear.
  • Postinstall. Unchanged: links the vendored repertoire and prints npx 0xray wear.
  • Postinstall. npm install only creates the relative node_modules/@0xray/repertoire link to the vendored repertoire and prints npx 0xray wear. It does not write the suit.
  • Wear. Run npx 0xray wear after install. It writes only the consumer project's .cursor/hooks.json, pointing at node_modules/0xray/dist/integrations/cursor/hooks/<event>.sh, beside existing user entries. The pre-wear copy is .xray/state/cursor-hook-wear/. npx 0xray unwear restores it.
  • Setup. npx 0xray setup writes .mcp.json and the OpenCode, Grok, Hermes, and OpenClaw bridges.

4.0.28 — suit edits survive install, MCP env is names only​

  • MCP launch. Servers start through scripts/node/mcp-launch.cjs. They see PATH, HOME, and XRAY_ROOT, plus the names on their keep list. Tokens such as NPM_TOKEN are not inherited. User env values stay in the env block and out of argv.
  • Postinstall keeps user edits to AGENTS.md, .mcp.json, and opencode.json.
  • House. house init no longer copies EXAMPLE.md. Doctor FAILs while house/EXAMPLE.md exists.
  • Inspect has a machinePlugin check. It fails when a machine ~/.grok/plugins directory is named 0xray or starts with 0xray.
  • Cursor hook. XRAY_ROOT defaults to the suit directory.
  • @0xray/grok-bot 0.1.7 records the same house init and doctor change. house init copies HOUSE.md, WAVEBOARD.md, and ATTENTION_STATE.md only.

4.0.27 — compact proof, memory scoring, grok-bot house​

  • Nested preCompact wear. A counted host compact needs a non-empty generation_id and a numeric context_usage_percent. The same hook line and per-session receipt are written on the suit mill and on nested consumer wear roots (a bench with local node_modules/0xray). preCompact has no Read paths, so those roots are discovered from the mill at compact time. See Cursor hooks.
  • Memory scoring is one doc: memory-scoring. The orchestrator skill links it and does not copy the rules.
  • @0xray/grok-bot 0.1.6 is the companion package, not this tarball. The general operating page is the same for every team (OP-PROC). house/ is the team overlay and is not in that npm pack. templates/house/ ships. grok-bot house init copies the template and refuses to overwrite. Doctor reads GROK_BOT_HOUSE when it is set (a missing path warns and does not walk). Otherwise it walks up from the working directory for house/HOUSE.md.

4.0.25 — plates travel in the package​

  • Plates travel in the package. docs-site/docs/plates/ is on the npm files list (memory-recall, processor, and the rest of the stamp set). The worn reader at dist/integrations/hooks/plates.cjs walks up to that directory and resolves memory-recall and processor.

4.0.24 — hot-swap, memory organ, plates​

  • Hot-swappable compaction. Compaction and host change are the same cut. The station card (.xray/state/STATION.md) is the handoff. The next turn continues the card.
  • Memory organ. Finished speech and reflections become lessons on signals. Kernel and activity logs are heat (last_seen) only. Unnamed speech mints a signal. Caps: 20 hot lesson lines, 20 retained ids (insertion order), 24 learned proposed signals. Factory laws stay.
  • Plates are one INPUT/PROCESSING/OUTPUT schematic per pipeline in Plates (routing, governance, boot, orchestration, processor, reporting, memory-recall). Station keeps one pointer line, Plate: <id> — .xray/state/plates/<id>.md. Recall injects that one schematic. A lesson is an episode. A plate is the machine.
  • Repertoire 0.2.8 is the organ package, vendored in 4.0.24 (@0xray/repertoire@0.2.8).

4.0.21 — dest is laws​

  • Repertoire is preferred. Dest is a judgment index of named invariants. Wake hydrate is factory + stack only. patternsFromGit observes existing laws; it does not mint commit slugs. Grow skips sibling repo-*. pruneKeywordDest runs after organ match remints subject overlay.
  • Compact hookEvent / event_class / spawn ids hold across later preToolUse, including a HEAD move. Grok session-boot keeps one trailing hook/source after compactHold.
  • Cloud preCompact is supported. Persist conversation_id + generation_id and resume that id. Wrapper heat is mill-only.
  • Guides: memory-wake · station-vs-repertoire.

4.0.20 — Wear + live memory​

  • Vendored Repertoire 0.2.5 worn on install. Cursor fifth wear. Heat grows the project copy.

4.0.18 — Memory wake​

  • applyStationHeat hydrates dest from seed + stack, attaches NOTES pickup, captures sessions on every floor that heats
  • opProcNames is factory ∪ stack; repo-* and git slugs stay off dest. Fresh intent rematches; law hits pin into the short list
  • Guide: memory-wake. Station stays a ticket. Do not pin 0.1.8.

4.0.15 — foundry-plant/0 fasten protocol​

  • foundry-plant/0 — fasten is a protocol any mill implements, not a 0xray-owned catalog of plant kinds. Builtin plant is mill+inspect only. foundry.json "plant": "@0xray/blip" (aliases "plant": "blip" / "plant": "sound") fastens whatever that mill package declares. Organs (looker, vibe, mixer) live in the mill; adding one is a mill publish, not an xray catalog PR. Nested mill @0xray/foundry@0.1.12. CLI shims foundry blip / foundry sound still exist on foundry 0.1.11+.

  • Factory-blip mill (@0xray/blip): sibling to mill + sound (not a mill copy). Hangar shop pair later. Alias "plant": "blip" fastens what @0xray/blip declares (blip + blip-inspect + blip-vibe + blip-looker today). blip vibe scores stamp density; blip look is the friend hitting replay (ship bar 8). Dynamic registry (not a frozen Rippel enum). v0: still + Rippel five. kapow is a design opt (two-tier stamp on the stanza). Rippel v2: converter motions at ≥720p with seed-selected looks (focus disc-satellites | cage Wu+field) + tempo/frequency animation on all five + mandatory 4.44s bed that syncopates to the motion grid. Receipt visualConfig.lookKind + visualConfig.mesh + visualConfig.field are the NFT fingerprints. still is the Power Plant ident (plate dissolves over 4.44s at ≥720p, not a frozen poster) (#08090B #F5F7FA #3DE0E8 #F5C518 #4A7FD4). Unknown id FAIL.

  • Factory-sound mill (@0xray/blip): alias "plant": "sound" fastens what the mill declares (sound + sound-inspect + sound-mixer today; mill off). Brief → seed → genre → wav → metrics receipt. sound mix levels every genre × tempo × motif. Inspect reports last bed PASS/FAIL. Not costume.

  • Sound render is a crystal-clear mill of Rippel SSOT topology (membrane kick / metal hat / duo bass / mixer). Prototype is lineage, not the quality bar. Tone.Offline blocked in Node. phonk first-class.

  • Inspect / mint plant-vs-worn allow factory shop plant (shop-extract, shop-witness, shop-pin) alongside mill plant

  • foundry.json shopPlant names more shops (array / dir / { skills, dir }). Not "costume": true

  • Field is shopPlant (mill plant copy cannot say hangar). Costume dump of leftovers still fails

  • Default consumer plant is mill+inspect, not 45-skill sync. Root llms.txt is the exo agent map

  • npm run pack:tmp-proof — pack tgz → tmp install → foundry mint --skip-live → hangar factory shops → inspect (no costume dump). Playwright n/a (CLI)

  • Nested mill 0.1.12 (foundry-plant/0). Inspect dest matches resolveGrokPluginDests (project path on shared HOME). Blip/sound mill is @0xray/blip. CLI shims remain from 0.1.11.

  • Station vs Repertoire 0.1 — Station is survive-the-cut; 0.1.0–0.1.8 are the same judgment organ; do not pin 0.1.8. Guide: station-vs-repertoire

4.0.9 — Mill target (global prefix / npx cache)​

  • Postinstall does not mill npm global prefix (Homebrew lib, /usr/local/lib) or _npx cache as a consumer
  • Prefix without package.json → mill INIT_CWD if it is a project, else mill the 0xray package (dogfood skip)
  • Isolated HOME still skips machine ~/.grok / Hermes / OpenClaw
  • Mill plant stays mill + inspect. The mill suit also wears every catalog skill and role file. A blip or sound seat fastens that plant only. Nested mill stays 0.1.9

4.0.1 — Patch (CLI, host e2e, release gate, docs)​

  • CLI -V / --version no longer dumps a Commander stack (exitOverride caught)
  • Hermes: [nudge] post-processor + e2e session-start
  • OpenClaw e2e reads plugins.entries (2026.8.2)
  • Release gate: organ-on smoke; no scripts.publish after registry PUT
  • Docs: catalog/enterprise boiler archived; version-manager stamps live Docusaurus headers

4.0.0 — Suit temperament (first ship)​

  • On npm as 0xray@4.0.0 (2026-09-02). Tag v4.0.0 on 0xRayAI/xray.
  • Keep v2 bone: Inference · External Governance · Autonomous Engine — not a redesign
  • Temper ceremony on that engine: Codex / no_new_surface always on; spawn-plan deny vs warn by profile
  • Frontier: missing/stale/todo-mismatch spawn warns; confer off unless confer.enabled: true; pending/synthesis skip
  • Constitution SSOT: Codex 11/29/69 + destructive shell in evaluatePreToolGate (Grok, Hermes, OpenCode). Grok extra 2/7 only.
  • Codex 69 is in codex.json (blocking). strict cannot opt out of no_new_surface.
  • Dual-host boot: Hermes / OpenCode / OpenClaw write session-boot.json with host + suit_profile; leftover Grok boot does not frontier a Hermes session
  • Profiles: frontier (Grok 4.6 class) · guided (OpenCode / Hermes; OpenClaw host-agent PreToolUse still pending platform API) · strict (lock) · auto
  • Upgrade safety: missing suit_temperament stays guided
  • Trim later: duplicate orchestrators, extra MCP files — trim list
  • Docs: v3 from v2 · Suit temperament

3.5.5 — User-asides P0 + pipeline P3​

  • PreToolUse denies aside spawns without worktree cwd; aside-worktree.ts SSOT
  • Worktree auto-provision on analyze-complexity when auto_provision_worktree: true
  • verify:pipeline-facets script; consumer confirm:suit:full --pipeline-audit
  • Worktree cwd enforce with auto_chain_delegations: false; synthesis-gate parity
  • isAutoProvisionWorktreeEnabled requires user_asides.enabled; macOS realpath worktree fix
  • verify:pipeline-facets --package-only in release-gate

3.5.4 — Synthesis consult receipt gate​

  • Consult receipt gate — s.1–s.3 todos require .xray/state/synthesis-consult-{id}.json with verdict before completion
  • Post-tool spawn — evaluatePostToolSpawn records receipts from subagent output; Grok post-tool hook wired

3.5.2 — Grok synthesis gate parity + consumer install hardening​

FeatureDescription
Grok PreToolUse SSOTLive pre-tool-use.js calls evaluatePreToolGate — synthesis deny, gate slices, govern-and-apply block
Synthesis hook verifyverify-grok-synthesis-gate.mjs (4/4 live hook fixtures) chained in verify:grok-delegation-gate
Consumer postinstallfindProjectRoot SSOT, stale pre-commit reinstall, .gitignore idempotent merge, post-commit hook install
HardeningPost-commit reflection JSON load (no eval); pre-commit fail-closed; execFileSync for staged tsc

3.5.1 — Multi-host delegation gate parity​

FeatureDescription
Delegation gate SSOTsrc/nucleus/delegation-gate.ts — evaluatePreToolGate / evaluatePostToolSpawn shared across Grok, Hermes, OpenCode
Hermespre_tool_call returns {"action":"block"} via bridge delegation-gate; post_tool_call clears pending on delegate_task
OpenCodetool.execute.before / after enforce delegation gate + post-spawn clear
Verifyverify-delegation-gate-core.mjs (grok/hermes/opencode); verify-hermes-delegation-gate.mjs bridge 4/4

3.5.0 — Auto-chain loop closure​

FeatureDescription
Delegation bridge (PR1)pending-delegations.json on defer; PreToolUse surgical gate; PostToolUse observability; delegations[] in orchestrate response
Spawn todo persistence (PR2)Plan enforced while todos outstanding; spawn-todo-persistence gate; todo in_progress sync; analyze intake clears stale pending
auto_chain_delegationsFeature flag (default on with lead_dev_mode); false disables PR1+PR2 enforcement
Verifyverify-grok-delegation-gate.mjs hook fixture (4/4); orchestrator behavior 8/8

3.4.10 — Routing SSOT + complexity unification​

FeatureDescription
routeSubagent SSOTselectAgentForTask checks routeSubagent(taskType) before capability scoring; type: implement → backend-engineer
Unified complexitybuildLeadDevPlan uses max(thin-dispatch, MCP overallComplexity); phased plans at complexity 70+
Behavior verify scriptverify-orchestrator-behavior.mjs ships in tarball — 5 assertions (routing, deferrals, NaN, phased plan)

3.4.9 — Orchestrator honesty + Hermes -z voters​

FeatureDescription
Honest orchestrate-taskImplementation agents deferred (not fake-completed); success: false until host delegates via Task / spawn_subagent
analyze-complexity NaN fixdependencyCount + dependencies[] schema; numeric hints safe
Per-task lead-dev plansbuildLeadDevPlan from task inputs; multi-task forces phased todos
Hermes -z governance pathLLM voters use hermes -z CLI; honors HERMES_BIN, HERMES_HOME

3.4.8 — Local governance + Hermes v2 auth​

FeatureDescription
Hermes v2 OAuth readerGovernance LLM voters read providers.xai-oauth.tokens from ~/.hermes/auth.json (fixes abstain for modern Hermes installs)
Headless in-process deliberationXRAY_GOVERNANCE_IN_PROCESS=1 enables skill voters without MCP child processes (groover deploy / nucleus consumers)
Railway Streamable HTTPPer-session transports on hosted governance MCP

3.4.7 — Consumer-safe release pipeline​

FeatureDescription
Upgrade smoke in gateTarball smoke preserves consumer memory_routing opt-ins on simulated upgrade
Publish idempotencyrelease.mjs skips publish when version already on npm; tags after publish
AGENTS.md guardPostinstall only overwrites AGENTS.md when <!-- 0xray-managed --> marker present

3.4.6 — Postinstall config merge​

FeatureDescription
Consumer config mergeUpgrade installs merge shipped .xray JSON into existing consumer files — opt-ins preserved, new framework keys added, features.version synced to package

3.4.5 — Native bridge MCP wiring​

FeatureDescription
bridge-mcp-wiring.cjsSSOT for 7-server MCP surface + repertoire auto-detect on consumer install
Hermes / OpenCode / OpenClaw installnpx 0xray * install wires platform registries, consumer root markers, and plugin artifacts
Postinstallinstall-bridges.cjs calls shared wiring on npm install 0xray

3.4.4 — Researcher MCP trap routing (P0.5)​

FeatureDescription
Async provider loadanalyze_proposal awaits getMemoryRoutingProvider() — no silent MEMORY_ROUTING no-op in MCP subprocess mode

3.4.3 — Shipped template truth (P0.2)​

FeatureDescription
Opt-in defaultsmemory_routing + inference_governance disabled in shipped xray/features.json
govern_proposalsrequire_external follows inference_governance.enabled
install-bridgesPrefers xray/ template over dev .xray/ runtime copy

3.4.2 — Ironclad suit enforcement​

FeatureDescription
PreToolUse hookstdin contract, codex blocks, spawn_subagent gate, activity.log
SessionStart + UserPromptSubmitsession-start.js → .xray/state/session-boot.json
Lead-dev plan persistanalyze-complexity → .xray/state/lead-dev-plan.json
autonomy-kernelCodex terms 59, 67–69; persistLeadDevPlan()
server-config-registryResolves 0xray without requiring xray field in package.json
package.json xray fielddist + mcpServersPath for consumer registry

3.4.1 — Zero-config consumer install​

FeatureDescription
install-bridges.cjsUnified postinstall for OpenCode, Grok, Hermes, OpenClaw
7 MCP via npxAll consumer servers use npx -y 0xray mcp <cmd>
Dual Grok skill sync~/.grok/plugins/0xray/skills/ + ~/.grok/skills/
Consumer smoke gaterelease-gate.mjs — pack → clean install → verify bridges + MCP
Canonical release.mjsreconcile → gate → artifacts → tag → publish
Docs syncREADME, AGENTS, Docusaurus, integrations guide

3.4.0 — Governance closure (tag-only)​

FeatureDescription
Nucleus exports0xray/nucleus and 0xray/nucleus/* public contract
Governance default-onRailway endpoint integration
Source-change detectorCI governance proposals (framework repo only)
verify:consumer10-step E2E pipeline smoketest
Term 72 auditSelf-evolution post-apply provenance check
Compat shim scannerTerm 78 orphan pre-PR check

3.3.1 — Confidence gate​

FeatureDescription
ExecutionPlanner confidence gategetTaskConfidence() → complexity boost + trap hints
install-bridges scaffoldInitial 4-platform installer (completed in 3.4.1)
Repertoire researcher wiringresearcher-confidence.ts + integration tests

3.3.0 — Pluggable memory routing​

FeatureDescription
MemoryRoutingProviderPluggable contract in src/memory-routing/
features.json blockmemory_routing with enabled, provider, module_path, config
features.schema.jsonRuntime validation at config load
Repertoire providerDefault in framework xray/features.json
Per-task ingestFeedbackProvider learning loop (not aggregate-only)
thinDispatch enrichmentresolveThinDispatch() uses provider signals
Researcher enrichmentTrap detection + MEMORY_ROUTING governance block
24 integration testsmemory-routing test suite

3.2.0 — Typecheck hardening​

FeatureDescription
AsideContext restored + wiredBounded subcontexts in MCP orchestrator (spawnAside, observation extractors, lifecycle) — see AsideContext guide
AsideContext ↔ memory routingExecutionPlan.memoryContext → inheritedContext.memoryRouting on aside spawn (v3.3+)
Orphan cleanup5 dead files deleted, ~39 integrated under typecheck
58 type errors fixedAcross 6 source files
Pre-tool-use hookFull hook: resonance, decision-matrix, JSON output
SelfProposalEngineIntegrated under typecheck + metamorphosis types
MCP base classConsolidated 0→40 extenders
E2E greenOpenClaw 9/9, Grok CLI 62/0, Hermes 44/0/0
release.mjsnpm 0xray SSOT, push to main
JSDoc cleanup~180 stale @version tags removed
Command doc cleanup"xray 2.0" retired from 26 command files

3.1.1 — Rename + marketplace + consumer seeding​

FeatureDescription
StringRay → 0xRayComplete rename across package, docs, MCP
Marketplace files.mcp.json, .grok-plugin/plugin.json for xAI catalog
Consumer postinstall seedAGENTS-consumer.md, SKILLS.md, .gitignore.default
ConfigLoader mcpServersSupports both legacy and mcpServers .mcp.json format
AsideContext moduleaside-context.ts restored (foundation for v3.2 wiring)
Plugin module splitCodex injection split; Hermes E2E 44/0/0
Railway deploymentMCP host, in-process skills, Hermes OAuth fixes

Removals (3.1.1)​

  • hermes bridge CLI → use npx 0xray hermes install
  • .opencode/xray/ fallback in auto-reflection-generator

3.1.0​

FeatureDescription
Pre-publish guardTolerates missing features.json in consumer trees

features.json capabilities (ongoing)​

These blocks are configurable in .xray/features.json (deployed on postinstall):

BlockPurpose
memory_routingRepertoire / custom provider (v3.3+)
token_optimizationContext pruning, compression
multi_agent_orchestrationConcurrent agents, conflict resolution
delegationConfidence threshold, intelligent routing
complexity_thresholdsthinDispatch tier boundaries
pattern_learningAuto-apply learned patterns
inference_governanceDynamo endpoint, proposal defaults
securityPrompt sanitization, vulnerability scanning
analyticsComplexity calibration, agent performance
agent_spawnRate limits, cooldowns
activity_loggingframeworkLogger file output

See features.json Reference and Self-Hosting Dynamo for governance blocks.