Skip to content

Release notes

Current stable: 1.1.3. Update with dotnet tool update --global bee-ai --version 1.1.3; see installation guidance. The sections below retain detailed version history. A newly published release may appear in this banner before its detailed notes have been reviewed and added here.

bee setup agents --root CHECKOUT --dry-run --json previews the Bee-owned guidance in AGENTS.md and CLAUDE.md; run without --dry-run to install it. bee doctor --root CHECKOUT --json checks the blocks and reports host-hook configuration offline. Interactive bee init offers setup after successful bootstrap; headless init uses explicit --setup-agents. An existing installation can run setup directly. Package installation cannot select a project directory, so it does not edit one automatically.

The managed instructions ask agents to choose a suitable Bee route once per action class, use supported bee code analyze and reviewed, source-bound bee qa run checks alongside real repository tests, and bind an approved design’s exact revision or hash to frontend appearance and interactions and required backend API/data. A missing design slice cannot be silently dropped.

Doctor exit 0 confirms the managed files match this binary; exit 5 identifies missing, stale, modified or unsafe files. hostActivation and toolReadiness remain unverified until a fresh host session and the relevant tools are checked. Partial code analysis, declared QA checks and visual similarity alone do not establish full acceptance.

Upgrade with dotnet tool update --global bee-ai --version 1.1.3 and restart long-lived Bee processes. See first run for setup commands.

Offline task guidance and explicit change checks

Section titled “Offline task guidance and explicit change checks”

bee guide capabilities --json lists installed CLI and MCP capabilities, effects and prerequisites. bee guide task returns focused recipes for source, change, test, coverage and design work. The guide reads public metadata without a database or provider setup; it does not inspect source, execute checks or establish readiness. Python source uses explicit range packets or context delivery rather than a semantic graph.

Session-start hooks can deliver the public task guide when optional memory is unconfigured or unavailable. Native host hook setup and trust still apply; registration alone does not prove delivery or tool use. Instance selection and withholding safeguards remain in force.

bee qa run --root CHECKOUT --spec task.json --json executes explicitly declared repository or code-analysis checks. Results bind criteria to checks and source paths, record output hashes and compare source identity before and after execution. Checks are caller-reviewed commands and can write files or start processes; this feature is not a sandbox. Use bee qa run --help --json for the command contract.

verifiedCompletion=true covers the declared criteria-to-check mapping with in_process_only trust. It does not prove check quality or natural-language intent; subjective criteria still need judgment. Saved JSON is not trusted evidence for a later run. Existing bee qa assess remains diagnostic, with acceptance=false and exit 5.

Upgrade with dotnet tool update --global bee-ai --version 1.1.2 and restart long-lived Bee processes.

bee test summarize REPORT.trx --failures --json selects failed, errored and timed-out tests with class totals and the first nonempty message line. Declared and observed totals remain visible. Missing information and output limits are explicit; continuation is bound to the report’s hash.

bee graph explain TARGET --source --compact --json includes the resolved declaration’s source text and verified ranges with the graph result. Stale, ambiguous or incomplete source is reported explicitly.

These are opt-in CLI modes; existing default output remains compatible. The shared task guide directs agents to relevant evidence and asks them to stop further reads once the requested facts are complete. The existing bee_context_packet MCP tool remains available for bounded source selections.

Upgrade with dotnet tool update --global bee-ai --version 1.1.1 and restart long-lived Bee processes.

Local artifact queries and recovery, bounded source packets, verified captured output, explicit provider profiles and optional local prose compression are available in this release. Coverage import can select files and uncovered lines with explicit completeness metadata.

Bee ships one shared task workflow contract. Managed Codex profiles with a typed task requirement enforce acceptance from an observed matching Bee command result; free-form and unsupported routes remain guidance-only. Cold graph progress lines are accepted without dropping command, artifact or freshness checks.

Upgrade with dotnet tool update --global bee-ai --version 1.1.0 and restart long-lived Bee processes.

Hints use MQTT QoS 2. Context injection is at most once through the existing Mongo delivery claim. A crash during a harness call leaves the delivery uncertain, without automatic replay; resend only when the recipient explicitly requests it. Only workers keep bounded persistent broker sessions; publishers and doctor probes stay clean and random. bee collaborate doctor reports QoS downgrades, and Mongo polling continues delivery. Recipient outcomes are materialized even if a message expires before its hint is published.

One machine can run fully separate Bee instances side by side, for example one per organization. The existing ~/.bee keeps working unchanged as the default instance. bee instance add <name> --path <dir> [--remote <glob>] creates a named instance under ~/.bee/instances/<name>/ with its own bootstrap and database, collaboration space, persona, worker and local state.

Bee selects the instance from the working directory and the repository remote (worktrees included), from --instance or BEE_INSTANCE, or from the calling session. That last source is not limited to hook calls: inside a Claude Code, Codex or Hermes session, an ordinary CLI call is pinned exactly like a hook call, and bee instance exec <other> refuses to reach a different instance than the calling session’s own. That pin holds for every native session id present at once, so a nested harness (Codex running inside Claude Code, or the reverse) keeps working on the same instance while mixing two instances inside one conversation tree is refused by design. Conflicting selections stop with exit 8 instead of mixing data, and hooks withhold steering rather than deliver another instance’s content. Directories that belong to no instance use the default instance and say so. bee instance list, show, which, map, unmap, policy, remove, exec, doctor, worker-agent and sessions prune manage and check the setup. No session pin is ever removed automatically; bee instance sessions prune --older-than <days> --yes is the only, explicitly confirmed way to withhold sessions idle past a chosen age. bee init never overwrites an existing bootstrap without confirmation. Without an instance registry Bee behaves exactly as before.

The separation protects against mistakes within one operating-system user; the hard boundary between organizations is a database user and broker account scoped to each instance. See the instances guide for setup and limits.

bee design imports a complete interactive design export (HTML, a directory or a ZIP) once and returns bounded, exact source fragments for implementation (import, list, slice, map, verify); bee design mcp offers the same read-only tools to agents. bee visual captures application screens with Playwright and compares them region by region with reviewed design references (reference, capture, compare, report, select); iOS SnapshotTesting and Android Roborazzi helpers feed the same comparison. Setup is explicit: Bee does not install Node packages or browsers, and the ui-visual QA profile stays diagnostic.

One bee plugin bundles ten workflows (memory, code analysis, verification, plans and collaboration, workers, design and operations) and starts Bee’s read-only skill and plan tools. The native installer previews by default and applies only when asked; it checks the host, the marketplace and the installed Bee version and keeps model and provider settings.

bee -v and bee --version print the version on one line; bee --version --json adds the commit, runtime and platform. The flag answers before configuration, database or network access, so it works on a broken setup.

Coverage is no longer part of the unshrinkable envelope of a graph answer. When an answer exceeds --output-budget-chars or --budget, Bee first summarizes coverage (project rows, warnings and context notes, with exact counts and a pointer to bee graph status --json) and drops result records only after that. output.coverageSummarized reports when coverage was trimmed; output.truncated and the omission counts describe result records only. JSON answers stay within ceil(utf16/4) <= N.

The unresolved interface dispatch warning is one line per answer. It appears where a missing implements edge can hide part of the answer: callers, callees that fold in implementations, impact and member explain, including implementations stated by another project. Outlines no longer carry it. When an answer summarizes coverage, it points to bee graph status --json --compact (with --project for one or two projects), a bounded view of the omitted diagnostics. graph explain and graph impact trim long lists fairly, so no list is emptied while another keeps many rows.

TS/Vue outline status and exit code are per file. A clean file in a partially parsed tsconfig project is complete with exit 0 and a one-line project note. A file with its own parse diagnostics, or whose status cannot be confirmed, is incomplete with exit 5. The outlined file’s own notes are always shown.

Kotlin ranges now follow expression bodies continued by operators, raw strings that end in a run of quotes, and multi-line constructor defaults. Stored Kotlin graphs rebuild once (extractor 6).

Explicit keyword search still finds terms anywhere in a memory, but a term found only after the first 400 characters weighs less, so the record that defines a topic ranks first again. Plain rows show a 200-character window around the best match with a clipping marker; --full prints complete content and is accepted by search only. JSON output is unchanged. Stderr notes explain partial multi-term matches and empty semantic results. Semantic search keeps no default score floor; the measured calibration is documented.

Coverlet OpenCover and Cobertura reports that were refused now import: lambda branch points that share an offset on different lines, very long constructor names, producer totals that exceed the producer’s own records, and one switch mixed with jumps on a line. Such producer mismatches are reported in the new warnings array with declared and observed numbers and never change the exit code. importerVersion is now 2, so identical report bytes produce a new importId.

Compact TRX summaries keep the full names of non-passed tests.

bee budget --measured streams rollout files without a whole-file size cap and reports turns. A snapshot that ends inside an open turn is incomplete (exit 5, open_turn) and still reports the reconciled usage of the turns that closed. usage, lastRequestUsage and requestCount are filled when response records reconcile, and usageUnavailableReason explains why they are null otherwise. Default --json is a bounded projection with exact omission counts; --full returns every observation.

Steering ledger, agent guidance and context tools

Section titled “Steering ledger, agent guidance and context tools”

The steering ledger is written without a byte-order mark, aggregates clipped items per emission, and trims routine lines before rare exclusion and failure evidence. Beta readers still accept the new lines.

Agent guidance names the cheap forms: graph outline --compact --json, test summarize <trx> --json --compact and budget --measured --compact. It also asks agents not to re-verify a complete, fresh graph answer with grep.

bee context doctor accepts documented Claude Code settings keys, hook events and prompt hooks. Unknown keys are named instead of refusing the file; names that look like credentials are redacted. bee context audit --json --compact uses 12-hex hash prefixes; --full-hashes restores full digests.

Terminal window
dotnet tool update -g bee-ai --version 1.0.0

Restart long-lived Bee processes (worker, collaborate channel and receive, MCP servers) after upgrading. Changes that can affect scripts:

  • bee code coverage import --compact and bee budget --measured --compact or --full require --json; otherwise they exit 4.
  • bee budget --measured --json returns a bounded projection by default; add --full for every observation. A live session inside an open turn exits 5 with open_turn.
  • Plain bee remember search rows are clipped; use --full or --json for complete content.
  • Coverage importId values change because importerVersion is 2.
  • Stored Kotlin graphs rebuild on the next graph build.
  • The steering ledger format gained a per-emission clipping summary; beta readers still accept it.
  • Bee’s own test suite no longer falls back to the real home directory; run it with an isolated HOME anyway when developing Bee.

Prerelease

Graph freshness, semantics and bounded output

Section titled “Graph freshness, semantics and bounded output”

Graph freshness tracks source and evaluated dependency inputs. Unrelated artifacts no longer require source-stat work, while new sources, explicit Compile items and newly created conditional imports still trigger refresh. Offline C# binding can use exact installed package versions and declared local references without restoring packages or executing builds. TypeScript impact follows reverse static imports; it does not provide a semantic function-call graph.

Compact replies retain coverage and omission totals. bee graph status --json shows full stored diagnostics. JSON query budgets cover the complete response; outlines have an implicit 65,536-character ceiling. An insufficient budget reports minimumRequiredChars when the error fits. --excerpts adds bounded source lines to callers and explain’s importedBy items only when the indexed hash still matches a safe source. Expression-tree references and structural path fallbacks remain explicitly identified.

Context doctor can inspect a selected codex-config-toml-v1 input for project_doc_max_bytes and the precedence of selected AGENTS.override.md files. These are selected-input diagnostics, not proof that the host loaded the instructions. --remediation-preview reports proposals with writesPerformed: false. Context audit rejects self-comparison and supports --max-files up to 1024 while retaining other read limits and explicit omissions.

bee hook policy-export creates a bounded local policy profile containing rules and anchored memories. Explicit --local-policy selection validates its project, schema and hash on every call; it does not follow remote edits. Hook failures retain zero-delivery diagnostics. Concurrent reads preserve deterministic output. Hermes --retained-context suppression is opt-in and off by default; unknown, reset or changed context re-emits instructions. The receipt contract does not establish native Hermes retention or model acknowledgement.

Memory search adds lexical --match-all and an optional semantic --min-score; automatic prompt selection remains bounded. No matches leave plain stdout empty and explain the outcome on stderr.

bee skill setup --json explains connector setup without resolving a skill or producing a reading receipt. bee howto list --builtin --json selects separate public Bee recipes; it does not populate the user catalogue. bee lint --rules reports when no checker ran.

bee test summarize keeps verdicts and short failures in default text; --full, --stack and --metadata opt into detail. Full JSON remains the default, with compact fallback before dropping result rows. Output limits preserve a parsed failing verdict. LCOV imports retain measured function identities and counts; absent measurements stay unknown. Usage parsing accepts explicitly enlarged bounded snapshots without proving session finality. These changes do not establish general speed, token savings or billing savings.

Terminal window
dotnet tool update -g bee-ai --version 1.0.0-beta.18

Restart long-lived Bee processes after upgrading. Existing graph caches refresh when their extractor contract changes. Policy export and retained-context suppression require explicit selection; upgrading does not enable them.

Prerelease

Child definitions record an immutable origin through parentId, parentStepId and parentRevision. bee plan children lists immediate children with bounded paging and an optional step filter. Child creation or completion does not change the parent definition or complete its step. Reads require your own active collaboration session; reported_complete is an owner report, separate from QA acceptance.

bee worker profiles lists local profiles; bee worker inspect checks local policy without starting a process. Inspection does not prove authentication, native binding or available capacity. An authenticated bee collaborate launch selects a node, configured profile and workspace key. Executables, arguments and environment remain under the receiving node’s local policy. Launch processing is opt-in; worker --once and worker --json remain maintenance-only. An uncertain launch blocks further launches on that node and space; repeating the request never authorizes a second launch.

bee mcp serve exposes bounded skill and Plan tools over stdio, including bee_plan_show and bee_plan_next. It neither joins a session nor changes plans. Returned skill content still needs to be read.

Direct Codex stdio clients on macOS and Linux can use params._meta.threadId to select their own existing binding. Every call verifies native process ownership and the registered session; a thread ID alone grants no access. Unsupported wrappers, multiplexed owners and Windows metadata contexts should use the existing CLI. Skill credentials can use existing vault references; read-only calls reject insecure key files without changing permissions. Collaboration recovery and bounded cleanup preserve incomplete or uncertain outcomes.

bee graph explain honors the requested --limit for call lists and reports omitted entries. Outlines disclose omitted declarations, including in compact output. Parser and interface-dispatch diagnostics make missing context clearer; compact output retains coverage warnings.

Explicit bee remember search can find matches later in stored content. Automatic prompt retrieval remains bounded, with duplicate items removed within an emission and clipping kept explicit. bee handover reports returned counts and whether more records were observed through hasMore and truncated.

bee code coverage import handles more producer variants within Cobertura and OpenCover, including Coverlet reports. bee test summarize --json --compact retains failure details within its output budget. Usage reports handle native wrapper records and validate copied Codex fork history, including nested parent boundaries and thread identity. Unicode token counting handles supplementary characters consistently. Imported reports and recorded counters retain their existing evidence limits; they do not establish billing, savings or release acceptance.

Linux bindings with only an old process timestamp cannot establish native ownership. Rejoin your own session through the normal bee collaborate join CLI flow, then restart the MCP host. Read-only MCP calls do not repair old bindings, and older binaries retain the old Linux liveness behavior. Windows metadata contexts still require the existing CLI.

Terminal window
dotnet tool update -g bee-ai --version 1.0.0-beta.17

Restart long-lived MCP hosts after upgrading or rejoining. Existing root plans remain valid. Older binaries do not understand child origins; preserve Plan data when rolling back. Worker profiles are local and are not distributed through shared config. Existing usage guides, context doctor, delivery reports and token estimation remain available.

This context milestone brings together read-only inspection of selected sources and metadata about output Bee successfully wrote. Use doctor before choosing context, then inspect delivery observations to decide what needs review.

Estimate known context before starting a task

Section titled “Estimate known context before starting a task”

bee token estimate helps you compare explicitly selected prompt, instruction and source text before committing to a context choice. It reads UTF-8 files or explicit redirected stdin offline, without initialization, a provider call or task execution. A lower count alone proves neither equivalent quality nor realized token savings.

Prepare demo_dir, prompt.txt and context.txt using the token preflight guide, then run:

Terminal window
BEE_HOME="$demo_dir/profile" bee token estimate --root "$demo_dir" \
--file prompt.txt --file context.txt --encoding cl100k_base \
--calls 3 --output-budget 2000 --json

The fixture counts 7 input tokens per call: three calls allocate 21 input tokens plus 6000 output tokens, totaling 6021. --calls repeats the same selected input; it does not forecast task steps or a growing conversation. --output-budget is your per-call allocation, including any intended reasoning, not predicted output or an enforced generation cap. If it is omitted, output and total allocations remain null; explicit zero stays zero.

The default utf16-ceil-div4@1 heuristic is an estimate, not an upper bound. Explicit o200k_base and cl100k_base use packaged data to count ordinary text under that encoding; they do not claim model compatibility or full-request billing accuracy. Actual future output, reasoning, tool results, hidden framing and cache behavior remain unknown. No model mapping, pricing or provider usage is inferred.

--limit 0 hides contributor rows while preserving input/scenario totals and omitted contributions. Inputs are limited to 64 selections, 256 KiB each and 1 MiB total; JSON is capped at 32 KiB. Exact modes additionally require the sum of squared natural-piece UTF-8 byte lengths across all inputs to be ≤67108864 (one piece at most 8192 bytes). Exceeding this returns tokenization_limit with null totals, without truncation or fallback. Help/complete estimates exit 0, invalid arguments 4, and refused input/runtime/output failures 5.

Choose context, estimate, compare its adequacy, then perform the task separately. Afterwards, use the existing bee budget --measured workflow with an explicit supported log and exact thread identity; see recorded usage and its limits. Preflight allocations, delivery observations and recorded usage answer different questions.

Inspect selected context before giving it to AI

Section titled “Inspect selected context before giving it to AI”

Agents can check the size and availability of selected context sources and rules before reading their bodies or proposing edits. bee context doctor inspects an explicit manifest and counts supported tool/hook declarations without executing them. No initialization or database connection is required; selected files stay unchanged. Duplicate candidates are a separate bee context audit result, not a doctor finding or permission to delete a rule.

Follow the complete context doctor guide for a disposable read-only fixture, physical root selection, exact UTF-8/UTF-16 measurements, unsupported or missing inputs, and a duplicate review example.

After creating the synthetic files and demo_dir in that guide, run:

Terminal window
BEE_HOME="$demo_dir/profile" bee context doctor --help
BEE_HOME="$demo_dir/profile" bee context doctor --manifest "$demo_dir/manifest.json" --json --budget 16384

For that synthetic fixture, exit 0 includes a read row for rules and a declared row for tools: the Markdown file is 109 UTF-8 bytes, 107 UTF-16 units and an estimated 27 tokens. A missing input instead has unknown (null) units and makes declaredDiskTotals unknown; it is not a zero-sized source or an imported rule.

Select the manifest with --manifest; its input entries use markdown-atx-v1 for Markdown and mcp-servers-json-v1 for MCP declarations.

The manifest selects relative paths under an absolute physical root. Supported inputs are ATX Markdown, restricted MCP declarations and command hooks for SessionStart, UserPromptSubmit and PreToolUse. File bodies, command strings and secret values are not printed; IDs and paths remain visible. Unknown or refused inputs remain explicit and make totals unknown. Omitted inputs are unmeasured, not discovered automatically.

Output is one JSON document plus a final newline, even without --json. --budget is 512–262144 UTF-8 bytes including that newline, not a token hard cap. An oversized report becomes a complete output_limit error, without silent row omission or truncated JSON. The body and newline are separate writes; transport errors propagate without a second publication. The ten-second deadline is cooperative and cannot guarantee a wall-clock exit from blocked filesystem or output calls.

Help and complete observations exit 0; invalid usage exits 4; invalid, incomplete or refused data, cancellation and output limits exit 5. Reads are capped at 64 inputs, 256 KiB per file, 1 MiB selected bytes total and 64 Markdown sections per file. Symlinks, hardlinks and nonregular files are refused; consistency checks are not an atomic snapshot.

declared_not_loaded describes configuration declarations, not delivery or execution. Delivery itself would not prove model adherence. The per-file utf16-ceil-div4 token estimate is separate from actual provider consumption, billing and savings. Rule preview, import, apply and recovery are outside this slice; doctor never modifies rules automatically.

Delivery accounting lets an agent or operator review successfully written hook output before deciding which context needs attention. The existing Claude UserPromptSubmit path observes plain-text and context-JSON output after write and flush succeed. Report/read inspect metadata locally without initialization, a database or provider calls; they do not invoke another hook.

Terminal window
delivery_store="${BEE_HOME:-$HOME}/.bee/usage/delivery-v1"
bee delivery --help
bee delivery report --store "$delivery_store" --limit 100

The report separates exact final UTF-8 wire bytes (including envelope and newline) from the labelled utf16-ceil-div4 token estimate. It groups delivered observations by item, surface and session; use both --session-kind and --session to narrow a session. read --store PATH --event UUID inspects an already known event; reports do not list event IDs. There are no source, surface or time-range filters.

Reports remain incomplete lower bounds. Check issues and omittedGroups; --limit 0..100 bounds groups, with no pagination. Native Withheld totals are unavailable, and null source/recipe identities cannot establish comparability. Byte counts and estimates do not measure provider consumption, billing, savings, adherence or quality. Context doctor declarations and externally supplied budget --measured usage counters answer separate questions.

Accounting preserves the primary hook output, diagnostic and exit behavior when recording fails. The bounded store retains metadata rather than bodies and stops at capacity while keeping existing event IDs. It does not promise complete or exactly-once observation. JSON is automatic; adding --json is invalid. Help or found observations exit 0, invalid options exit 4, and missing evidence or the output cap exits 5; exit 0 alone does not establish complete delivery.

Follow the delivery and usage guide for a runnable offline empty report, exact options, session/source limits and privacy guidance.

In the guide’s synthetic empty-store example, the report command exits 5 with groups: [] and totalsStatus: unknown, indicating unavailable evidence; this does not establish that nothing was delivered. Successful native write-and-flush observations have kind Delivered; write or flush failures can be PartialWrite and do not contribute to delivered totals. Withheld remains unavailable because this producer emits no such events. Read the omissions and issues before using any totals.

Prerelease

An agent reviewing QA evidence needs to know what is missing, inconsistent or failing before deciding which raw report to reopen. bee qa assess brings those observations into one bounded diagnostic result, with source and artifact identities and a named next check. It reads evidence you supply; it does not run tests, report generators or attachments.

Start with a missing-evidence preview, then assess an index you prepared outside the checkout. Set QA_ROOT, QA_BASE, QA_HEAD and QA_BUNDLE using the worked QA evidence guide, which includes a minimal valid synthetic bundle:

Terminal window
bee qa assess --help
bee qa assess --root "$QA_ROOT" --base "$QA_BASE" --head "$QA_HEAD" --profile bee-cli --json
bee qa assess --root "$QA_ROOT" --base "$QA_BASE" --head "$QA_HEAD" --profile bee-cli --evidence "$QA_BUNDLE/index.json" --limit 20 --budget 16000 --json

Read a diagnostic decision, not a release approval

Section titled “Read a diagnostic decision, not a release approval”

Use decision, reasonCounts, scopeCounts and next to decide what to collect or inspect next. Missing results remain missing, partial reports retain available failures, and malformed reports stay inconclusive. A matching source claim does not authenticate a test producer. An older or mismatched failure is retained without becoming proof of a current defect.

Every assessment deliberately exits 5, including a bundle that reports only passing tests. This exit is separate from any test-process exit: observed producer exit remains unknown, while an imported producer record may only report one. Help exits 0; invalid, duplicate or unknown options exit 4. Scripts must handle 5 explicitly instead of treating it as successful acceptance or a test-run failure.

This is an additive offline command; it requires no initialization or service connection. The bundled bee-cli profile describes QA CLI integration targeting linux-x64, not whole-release or cross-platform acceptance. Results retain mode: diagnostics, trusted: false, acceptance: false and required human judgment. No test runner, result cache, test-selection or mutation-testing capability is introduced, and no savings are established.

Supply regular UTF-8 files outside the repository without linked path components. Source identity, declared completion freshness and artifact bytes are checked within input and time limits; hashes establish content consistency, not custody. --limit (0–200) and --budget (2048–65536 UTF-16 code units, excluding the final newline) bound returned details after assessment. Inspect omissions; for output_budget_exceeded, increase the budget using the same evidence digest and recheck source and artifacts. The guide walks through this continuation without treating omitted evidence as a pass.

Prerelease

Inspect coverage evidence without rerunning tests

Section titled “Inspect coverage evidence without rerunning tests”

Use a coverage report you already have to see which reported files, lines and branches were exercised. bee code coverage import turns one Cobertura, OpenCover or LCOV report into a structured result you can inspect locally or pass to an agent. This is useful when reviewing a test artifact without rebuilding the project or opening the original coverage viewer.

Choose the format that matches your file:

Terminal window
bee code coverage import cobertura.xml --format cobertura --json
bee code coverage import coverage.xml --format opencover --json
bee code coverage import lcov.info --format lcov --json

The command works offline without Bee initialization, a database or a provider connection. It reads only the supplied report, writes its result to stdout and does not run tests, execute build scripts or read source files. Despite the name import, it does not save a report to a store. TRX test outcomes remain a separate input for bee test summarize.

Read the result without overstating coverage

Section titled “Read the result without overstating coverage”

Start with status, exitCode and issues, then inspect each entry in files. Line and branch measurements are separate; lineData, branchData and branchSummaries expose the retained observations.

Each file’s lines and branches metric has an explicit state:

  • known: a measured denominator is available; inspect total, covered and percent together.
  • unknown: the measurement is missing or cannot be established. percent is null, even if some observations remain available.
  • not-applicable: the explicitly measured denominator is zero. percent is null; an empty denominator is not reported as 100%.

For example, a report can establish line coverage while leaving branch coverage unknown. A successfully parsed file does not make every metric known, and coverage only describes reported files and instrumented lines. It says nothing about unreported files or whether the selected tests are sufficient.

Exit 0 means the supported report was parsed, not that a coverage threshold or QA gate passed. Exit 4 indicates invalid command usage. Unsafe, malformed, conflicting, unsupported or over-limit input returns exit 5. Check the reasons on an incomplete result; retained partial observations must not be treated as a completed measurement.

Keep report identity separate from source acceptance

Section titled “Keep report identity separate from source acceptance”

rawSha256 identifies the supplied report bytes. The same bytes, format and declarations produce the same import identity; no history is merged or accumulated. Optional --producer, --project, --source-revision, --source-snapshot and --settings-hash record declarations. They do not verify the producer, inspect the checkout or prove that the report matches current source and settings.

The result makes these boundaries explicit: sourceBinding: not-established, checkedSource: not-read, qaAcceptance: not-assessed and newCodeCoverage: not-measured. Source freshness, trusted QA acceptance, report merging, saved history and new-code gates are outside this import.

Supply a regular UTF-8 file of at most 8 MiB with no symlink in its path. Read, parse and output limits apply; unsupported structures and unreconciled observations remain explicit instead of becoming successful coverage. Use bee code coverage import --help to inspect the supported options after installing the published beta.14 release.

Test report summaries

Prerelease

Beta.13 helps you select source context before reading whole files, inspect recorded session usage offline, and coordinate dependent tasks through saved plans. It also fixes misleading test summaries, stalled model downloads and collaboration shutdown problems.

Find the declarations you need, then read their line ranges. The new --compact option removes repeated field names and ID prefixes from bee graph outline while preserving each returned declaration’s full identity, range and source evidence.

With a graph already built for your repository, run:

Terminal window
bee graph outline src/Example.cs --compact --limit 40 --budget 8000 --json

Schema 2 uses result.columns to describe each row in result.items. Reconstruct a full ID as result.idPrefix + idSuffix; the row’s file is result.path. Shorter IDs are a reversible encoding, not truncated names: overloads remain distinct. Without --compact, the existing schema 1 output stays unchanged.

--limit accepts 1–1000 declarations; --budget accepts 2048–65536 UTF-16 code units and bounds the whole JSON response except its trailing newline. Read counts.omittedByLimit, counts.omittedByBudget, freshness and coverage even on exit 0. A complete inspection can still return a limited selection. If required metadata cannot fit, the result is incomplete with output_budget_exceeded, no ranges and explicit omittedMetadata; increase the budget.

The command reads the stored graph without refreshing it. A missing graph or file returns exit 3, invalid arguments exit 4, and stale, incomplete or unsupported evidence exit 5. Build or refresh explicitly with bee graph build --root .. Outlines contain stored declarations, not source bodies or a complete language/call graph. estimatedTokens is a character-based approximation; smaller output alone establishes no provider charge or model-quality improvement.

Source graph and outlines

Inspect one local rollout file to understand its recorded counters without initializing Bee, opening a database connection or invoking a provider. Set THREAD_ID to the exact UUID in that file’s session header:

Terminal window
bee budget --measured --harness codex --session "$THREAD_ID" --log rollout.jsonl --json

Schema 2 keeps two different kinds of evidence separate:

  • response contains best-effort response accumulator observations from token_usage_record.
  • history contains event_msg/token_count observations, which may include replayed history or synthesized context estimates. Its last fields are not per-request usage.

Use each stream’s latest and segments, together with the input SHA-256 and limitations. Cumulative snapshots are never summed, and the two streams have no combined total. Cached input is already part of input; reasoning output is already part of output. Legacy usage and lastRequestUsage remain null.

complete/exit 0 means the supplied snapshot was parsed; it does not mean the session ended or every request was captured. Truncated, mismatched or unsupported evidence remains incomplete/unsupported with exit 5; invalid flags return exit 4. Only the selected thread is read, without descendant aggregation. Cost stays unknown, and the report does not measure which context Bee delivered or establish savings. Ordinary bee budget remains the context forecast; measured mode does not accept its forecast options.

Context estimates and recorded usage

Coordinate saved plans and read test evidence

Section titled “Coordinate saved plans and read test evidence”

Plan foundations are new in this release. Save tasks with dependencies, source references and acceptance criteria; discover ready work, claim it for your current session, record progress and leave comments. Definitions use schema 1 and immutable revision 1. Unknown dependencies, cycles and invalid definitions are rejected before storage.

Plan commands require an initialized profile, configured MongoDB, a Git repository and an existing authenticated collaboration session in the matching space. plan.json must contain the definition’s id, title, scope, sources and steps, including each step’s acceptance criteria. Use bee plan --help for options. The following illustrates a plan named release-check with a ready step named verify; each request variable must contain a different lowercase UUID:

Terminal window
bee plan create --file plan.json --request-id "$CREATE_REQUEST_ID" --json
bee plan show release-check --json
bee plan next release-check --limit 2 --json
bee plan claim release-check verify --revision 1 --lease-seconds 300 --request-id "$CLAIM_REQUEST_ID" --json

next returns up to the requested 1–5 ready steps with their complete obligations and explicit omissions; it can return none and does not claim them. A step becomes ready after its dependencies are reported_complete. Claims belong to the authenticated caller, last 30–300 seconds and cannot outlive the registered session lease. Use the returned claim generation for an update:

Terminal window
bee plan update release-check verify --revision 1 --claim-generation "$CLAIM_GENERATION" --state reported_complete --summary-file summary.txt --request-id "$UPDATE_REQUEST_ID" --json
bee plan comment release-check verify --revision 1 --file comment.txt --request-id "$COMMENT_REQUEST_ID" --json

Updates support running, blocked, failed, abandoned, reported_complete and renew. Blocked, failed, abandoned and completion reports require a summary. Expired or replaced claims cannot update the step. --if-version optionally rejects a concurrent plan change. If a write returns outcome_unknown, retry the same request ID and payload: it may already have committed. Comments record discussion without changing step state. Completion is owner-reported (qa.status: not_assessed); Bee does not run the tasks, launch agents or grant QA approval.

More trustworthy TRX summaries. Misplaced summary diagnostics or unsupported control attributes could previously escape validation. bee test summarize now returns an incomplete report instead of allowing malformed evidence to establish success:

Terminal window
bee test summarize results.trx --json

It reads an existing report offline; it does not run tests or recover the original runner’s exit code. Nested results remain unsupported.

Session setup · Test summaries

More reliable cancellation and identity checks

Section titled “More reliable cancellation and identity checks”
  • Downloads that stall after the headers: the configured model-transfer timeout now covers reading the response body and the final publication check. A failed transfer leaves existing assets intact. An internal download timeout allows memory storage to continue without an embedding; explicit caller cancellation propagates instead of being swallowed.
  • Invalid saved identities: a readable but malformed local identity now fails immediately instead of repeatedly trying temporary publications. Existing identity bytes are preserved.
  • Shutdown under cancellation: receiver termination, disposal and channel cleanup no longer depend on the caller’s dispatcher making progress. Bounded waits can finish even when that dispatcher is blocked; a timeout is not treated as proof that the child has exited.
  • Linux receiver cleanup: termination follows the receiver’s owned process tree using pinned process identities, avoiding broad process scans and reducing exposure to unrelated process churn. Ownership is retained until captured children actually exit.

The .NET 10 prerequisite is unchanged. Seven NuGet packages are available: the bee-ai tool and six native runtime packages. Runtime acceptance for beta.13 passed on Linux x64 and macOS ARM64. Windows x64/ARM64, Linux ARM64 and macOS x64 were not executed in this release’s native acceptance; package availability is not a six-platform runtime guarantee.

Windows packages do not add native codex session joining or wake support: that join returns unsupported_platform/exit 5 before creating session state. The separate channel adapter has Windows parent-process support, introduced in beta.10; that is not new Windows runtime acceptance in beta.13. See the adapter requirements.

Update in the scope where Bee is already installed. For a global installation:

Terminal window
dotnet tool update --global bee-ai --version 1.0.0-beta.13 --source https://api.nuget.org/v3/index.json
dotnet tool list --global

For a repository-local tool manifest, run from its directory:

Terminal window
dotnet tool update --local bee-ai --version 1.0.0-beta.13 --source https://api.nuget.org/v3/index.json
dotnet tool list --local

For a private tool directory, substitute its existing path:

Terminal window
dotnet tool update --tool-path ./bee-tools bee-ai --version 1.0.0-beta.13 --source https://api.nuget.org/v3/index.json
dotnet tool list --tool-path ./bee-tools

Check that the listing reports 1.0.0-beta.13. Restart an already running Bee worker or channel through its existing supervisor so it loads the updated binary. Preserve the existing profile and session configuration. Installation guide

Prerelease

bee graph build and bee graph outline now include Swift and Kotlin declaration ranges. Agents can request a file outline before reading selected source lines. This parser needs no mobile compiler at runtime. Coverage reports calls:none; symbolic dependencies are not compiler-resolved call targets. Detected unsupported syntax returns partial coverage and exit 5 instead of claiming a complete graph.

bee who includes machine, OS, harness and Bee version. bee collaborate inbox and group history read saved messages without acknowledging, claiming or delivering them. group list and group members return bounded results with explicit omissions; reading a group’s history requires an exact subscription.

Reuse analysis results with smaller context

Section titled “Reuse analysis results with smaller context”

bee code analyze --engine roslyn --save-run saves an immutable compiler-analysis report. Read it later with offline bee code runs list and bee code runs show <run-id>, without rerunning the compiler. --limit and --budget bound the requested projection; integrity, original analysis outcome and omissions remain explicit. An intact saved report does not establish current-source freshness or compatible settings.

Source outlines omit synthesized C# members while preserving authored declarations. Steering diagnostics filter by scope before applying the limit, so unrelated events do not hide relevant results.

Terminal window
bee steering --session <session> --project <project> --surface prompt --json

bee hook rule rescope changes an existing rule’s scope and paths. Preview with --dry-run; use --revision to reject a concurrent change. Unchanged requests do not write. File-scoped rules can reduce irrelevant context; these commands do not measure provider billing or prove model compliance.

  • Concurrent first joins publish one completed local identity without replacing an existing identity.
  • Model downloads close their temporary file before publishing and fetch only missing assets. Failed transfers preserve existing assets.
  • An unexpected channel receiver exit terminates the channel, including before initialization, with bounded generation-checked cleanup.
  • Soul activation requires bee soul use <name> or explicit claim. In an initialized profile, an unknown verb returns exit 4 without reading or changing the Soul store. Soul selection is now local to each machine; definitions stay shared.
  • Windows Codex collaboration joins return unsupported_platform with exit 5 before creating identity, binding or remote-session state.

Local personas, visible work and sealed secrets

Section titled “Local personas, visible work and sealed secrets”

bee soul use <name> stores this machine’s choice in its private profile. soul show identifies its source. Without a local choice, the legacy shared selection still applies with a warning; soul clear removes only the local choice.

Publish a session’s task with bee collaborate work set; inspect the space with bee who --json --limit 20. Work survives rejoin without replacing a newer update. The roster includes stale sessions, bounds records and fields, and reports omissions. Plain output removes terminal control characters.

bee node init registers a machine key. bee secret set, get, list and rm manage encrypted values for registered machines. Feed values through stdin or the hidden prompt; only secret get prints the value. Concurrent normal initialization preserves one key. New machines receive access on subsequent secret writes; existing config values are not migrated automatically.

Analysis history · Rule scope · Collaboration

Native package validation covers Linux x64 and macOS ARM64. Windows x64/ARM64, Linux ARM64 and macOS x64 runtime validation remains pending for this prerelease.

Terminal window
dotnet tool update --global bee-ai --version 1.0.0-beta.12 --source https://api.nuget.org/v3/index.json

Prerelease

bee graph callers, callees, impact and explain now accept --compact for shorter JSON records and --output-budget-chars N for a limit on the entire JSON output, including its final newline. Both options require --json. The minimum budget is 256 UTF-16 code units; this is a character budget, not a token count. Existing output stays unchanged when the new options are absent.

Successful answers retain graph identity, freshness and coverage. If records are removed to fit the budget, output.omittedItems and output.omittedByPath report what was left out. A budget too small for the required metadata returns output_budget_too_small with exit code 4. Check omissions before treating an answer as complete.

Terminal window
bee graph callers 'OrderService.Save' --json --compact --output-budget-chars 8000

Graph output options

Native package validation covers Linux x64 and macOS ARM64. Windows x64/ARM64, Linux ARM64 and macOS x64 runtime validation remains pending for this prerelease.

Terminal window
dotnet tool update --global bee-ai --version 1.0.0-beta.11 --source https://api.nuget.org/v3/index.json

Prerelease

Smaller test reports and source navigation

Section titled “Smaller test reports and source navigation”

bee test summarize results.trx --json reads an existing UTF-8 TRX report offline, without initialization or MongoDB. It shows totals and non-passed results by default, with bounded diagnostics and the input hash. Use --include-passed, --limit and --budget to control detail. Flat results are supported; nested InnerResults are explicitly unsupported. Incomplete input cannot establish success, and the original test runner’s exit code is unknown.

bee graph outline src/Example.cs --json lists declaration ranges from an existing graph without rebuilding it or changing its query timestamp. Coverage remains C# and Vue/TypeScript/TSX. Check source identity, freshness and omitted counts before using the ranges. The inspection budget is not a hard I/O timeout.

bee hook rule archive <id> --reason "No longer needed" --json removes a rule from delivery without deleting it. bee hook rule restore <id> --revision 1 --json restores its original enabled state, delivery scope and paths. Mutations select the current project; global rules require --global. An expected --revision protects against concurrent changes. These commands require configured MongoDB.

At session start, a tool guide of at most 400 UTF-16 characters, including its heading, points to these commands. Hermes receives it on the first prompt; ordinary prompts and pre-write hooks do not repeat it.

Test summaries · Source outlines · Rule lifecycle

bee collaborate channel could not run as a Claude Code MCP server on Windows. The channel proves which host owns it before it registers anything, using CLAUDE_PID when the host provides that variable and the operating system’s parent process otherwise. The parent lookup existed only for Linux and macOS and returned nothing on Windows. Claude gives CLAUDE_PID to hook and shell children but not to MCP server children, so on Windows neither source produced evidence and the channel refused to bind. It exited with the reason on stderr and an empty stdout, which an MCP client can only report as a closed connection.

The parent lookup now reads the owning process from the kernel on Windows as well. Running the channel by hand already worked, because a shell child does receive CLAUDE_PID; that is why the gap survived until an MCP client hit it.

macOS and Linux behaviour is unchanged. Hook commands on Windows take no VAR=value prefix, and a .cmd shim cannot serve as the MCP command — clients spawn the executable directly and the spawn fails.

Channel configuration →

Prompts that set the integration up for you

Section titled “Prompts that set the integration up for you”

A new page carries copy-paste prompts for Claude Code and Codex. Each one tells the agent to discover its own paths, to stop rather than invent a broker, space or credential, to show the change before writing it, and to finish by proving session registration instead of reporting that a file exists.

Integration prompts →

Terminal window
dotnet tool update --global bee-ai --version 1.0.0-beta.10 --source https://api.nuget.org/v3/index.json

Prerelease

bee budget --by-item --json shows each context item’s actual character contribution and separate section overhead. File-anchored memories are kept out of prompt-wide retrieval until the relevant file context is selected.

bee context audit --from AGENTS.md --against docs --root . --json reports Markdown section sizes and literal duplicate candidates with hashes and line locations. It works offline without initialization or MongoDB and does not edit sources. Section sizes remain visible even when there are no duplicates.

Token figures are labelled estimates, not provider usage or billing. Audit reads stay tied to opened directories and file identities; unavailable or over-limit input produces an incomplete report. budget still requires configured MongoDB.

Validation: targeted macOS ARM64 and Linux x64 tests passed. Native Windows, Linux ARM64 and Intel Mac checks and the full platform suite remain deferred.

Context size tools →

Terminal window
dotnet tool update --global bee-ai --version 1.0.0-beta.9 --source https://api.nuget.org/v3/index.json

Prerelease

Validation: macOS ARM64 and Linux x64 checks passed. Full verification on Windows x64/ARM64, Linux ARM64 and Intel Macs is deferred, including follow-up on two earlier Swift test failures on Intel Macs.

Compiler analysis for web and mobile source

Section titled “Compiler analysis for web and mobile source”

bee code analyze now has explicit typescript, vue, dart, swift and kotlin engines alongside C# Roslyn. Vue checks script and template types and reports positions in the original .vue file. Dart preserves analyzer rule codes. Swift/iOS and Kotlin/Android use real SDK types in an explicitly declared source and dependency context.

Use existing trusted compiler installations. Bee captures analysis inputs, reports actual tool identities and source fingerprints, and marks missing or unsupported context incomplete. It does not install dependencies or run project build scripts. Swift iOS requires macOS/Xcode. Native mobile analysis does not validate app packaging, device behavior or generated build context; Dart Flutter projects and custom compiler plugins are outside this slice.

The new engines use schema 2 JSON or text and the existing clean/findings/invalid/ incomplete exit distinction. Default native C# rules and schema 1 remain available. Update notices continue to supply exact update instructions to AI tools.

Language setup and supported contexts →

Terminal window
dotnet tool update --global bee-ai --version 1.0.0-beta.8 --source https://api.nuget.org/v3/index.json

Prerelease

Bee now reports when a newer release is available. The notice includes the running and available versions. For a verified global installation, it also provides an exact update command that an AI tool can run under its existing authorization. Run the command from a new empty temporary directory, preserving HOME and DOTNET_CLI_HOME, then continue the task.

bee update check --json returns a structured check result and update instructions. Bee checks published, listed packages for both the CLI and the current platform. Stable installations follow stable releases; prerelease installations can see newer prereleases and stable releases. An unavailable check reports unknown availability.

Ordinary commands use a bounded check and a six-hour cache. Notices go to stderr, while session-start and first-turn hook notices enter the existing AI context. Offline analysis reads only the cache; JSON/SARIF reports and command exit codes remain compatible. Set BEE_NO_UPDATE_CHECK=1 to disable checks and notices. Ordinary commands do not run an installer.

Installation and updates →

Terminal window
dotnet tool update --global bee-ai --version 1.0.0-beta.7 --source https://api.nuget.org/v3/index.json

Prerelease

C# compiler diagnostics with a source snapshot

Section titled “C# compiler diagnostics with a source snapshot”

bee code analyze --engine roslyn --json reports real C# compiler diagnostics, including type errors such as CS0029. It works offline without MongoDB or bee init, and does not execute repository builds, restore packages or load analyzer plugins.

The new version 2 report identifies the engine, profile and source snapshot, with normalized findings, locations, fingerprints and explicit completion status. Uncommitted source changes affect the content identity. Missing inputs, unsupported project context and timeouts produce incomplete results rather than clean reports. Analysis coverage remains separate from test coverage.

The existing default analysis and bee lint --native keep their version 1 reports and exit codes. Roslyn is an explicit opt-in. This is the first Analyze engine slice; Vue/TypeScript and Dart quality adapters, coverage import, duplication, new-code gates and security analysis remain future work.

Use the compiler engine →

Terminal window
dotnet tool update --global bee-ai --version 1.0.0-beta.6

September 20, 2026 · Prerelease

This release adds native quality checks, source evidence for memory, and MQTT collaboration between existing AI conversations.

  • bee lint --native checks four C# naming rules with Roslyn. The existing project-linter mode remains available across seven ecosystems.
  • Versioned rulesets have strict validation, a rule catalog and executable positive/negative self-tests: --validate-ruleset, --catalog, --self-test.
  • bee code analyze adds method length and complexity. Offline JSON and SARIF 2.1.0 reports show findings, fingerprints and actual analysis coverage. An incomplete run exits 5 even if it also found problems.
  • Initial native rules cover C#; multi-language and security analysis remain future work. Block-bodied methods and local functions are measured; unsupported metric bodies are reported. Compiled scope reconstructs project inputs without executing repository builds.

Lint → · Code analysis →

bee remember evidence, audit, supersede and retract add an append-only memory_evidence collection. Capture the source behind a claim, compare it with the current checkout, and record explicit replacement or retraction decisions. Both endpoint revisions are retained for supersession.

Audit reads do not change the database. Legacy memories without evidence remain unknown; unchanged bytes do not establish truth. Default context/search remains compatible; remember context --with-evidence opts into the new metadata. This release does not automatically rewrite comments or delete old decisions.

Memory evidence →

bee collaborate supports topic subscriptions, messages, questions and correlated replies through configurable MQTT and shared MongoDB. Native adapters target existing Codex, Claude Code Channel and Hermes CLI conversations. A running worker and each harness’s native integration are required for automatic delivery. Delivery states distinguish broker/transport progress from model acknowledgement.

Codex wake uses macOS/Linux ownership checks; Windows wake is not implemented. Claude requires Channels opt-in; the Hermes adapter is for CLI. MQTT messaging is not a claim of A2A protocol conformance or exactly-once model execution.

Collaborate →

Naming and type/file placement issues were corrected while preserving required BSON mappings and stored data contracts. Existing registry, memory, archive and code graph behavior remains available.

Terminal window
dotnet tool update --global bee-ai --version 1.0.0-beta.5

For a first installation, use Install. Intel Mac local embeddings remain unavailable because osx-x64 has no compatible packaged ONNX runtime; use the documented Gemini provider where semantic search is needed.

September 20, 2026 · Prerelease

bee now remembers people and the relationships between organizations, projects and repositories, and can answer questions about your C# and Vue/TypeScript code. This release also brings the project linter, file-anchored memory and steering diagnostics introduced since beta.3.

People, organizations, projects and repositories

Section titled “People, organizations, projects and repositories”
  • Four separate MongoDB collections: people, organizations, projects and repos, connected as Organization → Project → Repo.
  • Names, aliases, contact details and relationships retain the source of each contributed value. People can share a name or contact; lookup returns candidates when it is ambiguous and never silently merges records.
  • bee entity provides create, get, lookup, enrich, list and protocol. Concurrent enrichment preserves additions; retrying a creation with the same ID and payload is safe.
  • A short session-start protocol tells agents to look up first, ask when a person is missing or ambiguous, and save the supplied answer with its source. The directory is retrieved on demand, rather than copied into every prompt.

Use the entity registry →

  • C#: Roslyn-based declarations, callers, callees, impact and paths, including interface and override dispatch. Answers report coverage and freshness.
  • Vue, TypeScript and TSX: declarations and static imports, including Vue <script> / <script setup> blocks, supported tsconfig paths and literal Vite aliases. explain shows imports and reverse imports; path follows import edges.
  • Vue/TS coverage explicitly reports calls: "none". This release does not infer semantic call targets for those languages or execute Vite configuration.
  • Graphs stay local to the Git checkout. Graph commands need neither MongoDB nor bee init and do not write into the repository.

Explore the code graph →

  • Project linting finds the repository’s declared linter and preserves its command. Dependency installation and machine-level linter installation are separate, explicit options.
  • File-anchored memory delivers a past decision, error and remedy when a matching file is touched, without adding it to every session-start block.
  • Steering diagnostics explain what was withheld and why; capped surfaces keep injected context bounded.
  • Memory save and semantic-search JSON now carry structured results and errors. Full memory text and remedies remain available without exporting stored vectors. Save reports whether a usable embedding was persisted; embedding outages no longer look like an empty successful semantic search.
  • Unavailable services no longer report diagnostic prose as a successful result on stdout.
Terminal window
dotnet tool update --global bee-ai --version 1.0.0-beta.4
dotnet tool list --global

For a first installation, follow Install. This is still a prerelease.

Existing memories and memories_archive records are preserved. No migration or automatic reclassification is required. The old memory project key continues to identify a repository scope; it is not a new Project entity ID.

The registry stores contact information; it does not send messages or synchronize external directories. Shell graph support and semantic Vue/TS calls are outside this release.

Intel Mac local embeddings: The osx-x64 package does not include a compatible ONNX Runtime library, so local embeddings are unavailable on Intel Macs in beta.4. The code graph and entity registry do not require embeddings. For semantic search, use the supported Gemini embedding provider with its API key; keep one embedding provider per shared store because vector dimensions differ. See Memory.

Earlier prereleases were 1.0.0-beta.3, 1.0.0-beta.2 and 1.0.0-beta.1. Their detailed release records are not published on this public site.