Skip to content

Releases: AncientiCe/palace-rs

v0.9.1

Choose a tag to compare

@github-actions github-actions released this 02 Jul 12:27

[0.9.1] - 2026-07-02

Added

  • MCP Bundle (.mcpb) release artifact — the release workflow now assembles a
    single palace-<version>.mcpb bundle containing the Linux x86_64, macOS
    arm64, and Windows x86_64 binaries plus an MCPB manifest.json (binary server
    type with per-platform overrides). The bundle and its SHA-256 are uploaded as
    release assets, enabling one-click install in MCPB-aware hosts.
  • Official MCP registry auto-publish — a server.json (namespace
    io.github.ancientice/palace-rs, MCPB package pointing at the release bundle)
    is published to registry.modelcontextprotocol.io on every tagged release. The
    release workflow authenticates via GitHub Actions OIDC (no stored secret) and
    fills in the version, download URL, and bundle hash automatically.

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 29 Jun 10:45

[0.9.0] - 2026-06-29

Added

  • Ambient warm-start recall at session start — the SessionStart hook now
    injects real recalled memory alongside the protocol text: recent diary entries
    for the session's project (cross-agent, so a different agent the next day still
    benefits) plus the top drawers of the wing the cwd maps to. Prior
    investigations land in context deterministically, without the agent having to
    call any palace tool. Fail-open: a missing or empty palace yields the protocol
    text alone. Applies to every client with a SessionStart hook (Claude Code,
    Codex, Cursor).

Fixed

  • Read recall gapPostToolUse auto-recall fired for the Read tool (it is
    in the installed matcher) but never surfaced anything, because the query
    extractor did not read Claude's file_path field. Reads now surface relevant
    prior memory. The Cursor postToolUse matcher was also aligned to
    Grep|Read|Glob for parity with Claude.
  • UTF-8 truncation panic in memory layers — snippet truncation in the L1/L2/L3
    layer renderers sliced on a byte index (&s[..197] / &s[..297]), panicking
    when a multibyte character (e.g. , ) straddled the boundary — reachable
    via palace wake-up, palace recall, and palace search on real mined
    content. Truncation is now char-boundary safe.

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 19 Jun 14:13

[0.8.0] - 2026-06-19

Added

  • First-class protocol tools — the nine memory-protocol-critical MCP tools
    (palace_status, palace_session_context, palace_diary_search,
    palace_project_status, palace_search, palace_kg_query,
    palace_preference_search, palace_diary_write, palace_kg_add) now emit
    _meta."anthropic/alwaysLoad" = true in tools/list. Clients that honor the
    hint (Claude Code >= 2.1.121) keep these resident at session start instead of
    deferring them behind tool search, so the mandatory three-trigger protocol
    (SESSION START / BEFORE ANSWERING / AFTER WORK) no longer depends on the agent
    remembering to load the tools first. All other tools remain deferrable to keep
    standing context cost low.

Fixed

  • Docs — updated remaining contributor, mission, and Claude notes references
    from the old mempalace-rs / mempalace mcp names to palace-rs /
    palace mcp.

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 13 Jun 17:06

[0.7.0] - 2026-06-13

Added

  • First-class wings registry — a new wings table is now the source of truth
    for every wing (both code repos and non-repo topics), recording kind
    (project/topic), description, project_path, and last_mined_at. It is
    populated idempotently on every database open by backfilling distinct wings
    already present on drawers (wing_diary__*/general/conversations are
    inferred as topics, everything else as projects), so existing palaces upgrade
    automatically without touching drawer data.
  • MCP project-awareness and on-demand mining — three new MCP tools:
    palace_project_status (reports whether the current repo is mined /
    registered_not_mined / unknown, with a recommendation), palace_mine
    (mines a code repository on demand after the user agrees, auto-initialising
    palace.yaml for first-time repos and running with its own short-lived
    connection so the server's shared connection is untouched), and
    palace_create_wing (declares a topic wing for non-repo users such as sales
    or PMs). palace_remember and palace_add_drawer now auto-register an unknown
    wing as a topic, and palace_list_wings returns full registry records.
  • palace wings CLI subcommand — lists registered wings with their kind,
    drawer counts, and last mined time.
  • Session-start PROJECT CHECK guidance — the bundled memory protocol now
    tells agents to call palace_project_status when entering a workspace, ask the
    user before mining a repo (mining is repo-only and implicitly initialises it),
    and offer palace_create_wing for non-repo topics.

Changed

  • Mining records registry stateminer::mine marks the wing as mined
    (set_wing_mined) on success, the watcher refreshes mined state, and mine
    gained a quiet flag so MCP-triggered mining does not write progress to the
    JSON-RPC stdout stream.

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 13 Jun 10:27

[0.6.1] - 2026-06-13

Removed

  • Dead llm module and --no-llm flag — the unused local LLM refinement
    scaffolding (src/llm.rs), its pub mod llm; export, the empty llm Cargo
    feature, and the palace init --no-llm flag have been removed. Nothing in the
    default path used them.

Fixed

  • No more panic on an invalid built-in entity patterncompile_regex in
    the entity detector no longer panic!s if a built-in regex fails to compile;
    it logs to stderr and falls back to a never-matching pattern so detection
    degrades gracefully instead of crashing. Covered by new tests that verify the
    built-in patterns compile and the fallback behaves.

Changed

  • Crate metadata — removed the broken docs.rs/palace-rs documentation link
    (the crate is not published there) and pointed homepage at
    https://palacememory.com.
  • Docs — corrected stale MEMPALACE_* / mempalace.yaml migration claims in
    the README (those names were removed in 0.3.0) and linked palacememory.com
    for remote mode.
  • CI/release — the install smoke matrix now targets aarch64-apple-darwin
    to match the actual macOS runner architecture, and the release workflow runs an
    install-smoke job that downloads the freshly published asset on macOS and
    Linux and verifies an end-to-end install.

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 09 Jun 16:04

[0.6.0] - 2026-06-09

Added

  • Remote MCP mode (shared palace-server client)palace mcp can now run as
    a transparent stdio→HTTP bridge to a shared remote palace-server instead of the
    local palace. Every AI client keeps its existing stdio registration; when remote
    mode is on, each JSON-RPC request is forwarded to the server's /mcp endpoint
    with a Bearer API key and the response is streamed back verbatim
    (application/json and text/event-stream both handled). This lets a whole team
    share one memory backend in their own infrastructure without per-client URL/header
    wiring.
    • palace remote set --endpoint <url> [--api-key <key>] — store the remote
      endpoint and ps_… API key. The endpoint accepts a bare host, a base URL, or a
      full /mcp URL (normalised automatically). Omit --api-key to be prompted on
      stdin so the key never lands in shell history.
    • palace remote on / palace remote off — switch the MCP server between the
      remote palace-server and the local palace.
    • palace local — alias for palace remote off.
    • palace remote status — show the current MCP mode, normalised endpoint, and
      masked API key.
    • palace remote test — one-shot connectivity + auth probe that runs the MCP
      initialize handshake and reports the number of tools the remote exposes.
    • New configuration surface: PALACE_MCP_MODE, PALACE_REMOTE_ENDPOINT, and
      PALACE_API_KEY environment variables, plus the mcp_mode, remote_endpoint,
      and remote_api_key keys in ~/.palace/config.json (written with owner-only
      0600 permissions since the file holds the API key).
    • For non-standard responses, the proxy unwraps palace-server's text envelope for
      initialize and tools/list so any spec-compliant MCP client understands the
      handshake, while passing tools/call and error responses through unchanged.

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 02 Jun 15:41

[0.5.0] - 2026-06-02

Added

  • Automatic memory hooks (all clients)palace install now registers
    user-scope session start, post tool use, and stop hooks for every client
    that supports them, enforcing memory use in every project without per-project
    rules. post tool use auto-recalls relevant memory while the agent
    investigates; stop nudges the agent to record its work when it engaged Palace
    but saved nothing. Coverage:

    • Cursor~/.cursor/hooks.json (recall matched to Grep/Read).
    • Claude Code~/.claude/settings.json nested hooks (recall matched to
      Grep/Read/Glob).
    • Codex~/.codex/hooks.json nested hooks (recall matched to Bash,
      since Codex investigates through the shell; run /hooks once to trust them).
    • Claude Desktop — no hook system, so it remains rules-only (CLAUDE.md).

    Claude Code and Codex share a "Claude-style" output dialect
    (hookSpecificOutput.additionalContext; decision: "block" + reason on
    stop), selected via palace hook <event> --client <cursor|claude|codex>. The
    palace::hooks module exposes the pure, client-aware response builders.

  • Cross-agent recallpalace_diary_search accepts all_agents and
    project_path to surface investigations recorded by any agent, and
    palace_session_context falls back to another agent's recent project work when
    the caller has none, so a different agent the next day still benefits from
    prior work.

Changed

  • Write-path deduppalace_diary_write (scoped per agent) and
    palace_remember now skip near-duplicate content, preventing diary/fact bloat
    from repeated similar writes. Durable decisions still belong in the
    deduplicated knowledge graph.

Fixed

  • Resilient model download — the embedding model fetch now retries with
    exponential backoff, so transient HuggingFace failures (notably HTTP 429 rate
    limiting) no longer fail the first embedding call or CI. CI also caches the
    downloaded model (~/.cache/huggingface) across runs to avoid repeated
    downloads.

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 22 May 18:48

[0.4.0] - 2026-05-22

Added

  • Preference lane v2 — preference-shaped drawers now store a
    preference_span metadata field and optional pref_embedding secondary
    vector. Preference queries receive a separate preference_match score so the
    known single-session-preference weakness can improve without adding an LLM
    to the default path.
  • Query intent provenance — searches classify queries as preference,
    decision, how_to, definition, temporal, or unknown, and return the
    intent in MCP and Palace::search_with_provenance results.
  • Optional local rerank pathPALACE_RERANK=1, palace search --rerank,
    or palace_search({"rerank": true}) reranks top hybrid candidates and returns
    rerank_score provenance. The default search path is unchanged.
  • Gain v2 feedbackpalace_gain now accepts an optional record payload
    for explicit usefulness feedback and reports precision_at_1,
    precision_at_5, and per-intent precision. Diary entries that cite returned
    drawer IDs also infer useful feedback automatically.
  • Eval CI lane — CI now runs the coding-agent memory eval separately and
    checks the sampled LongMemEval baseline guard.

Changed

  • palace upgrade-embeddings --refresh-preferences and
    palace_upgrade_embeddings({"refresh_preferences": true}) can refresh
    preference-span embeddings while re-embedding drawers.
  • Palace::search_with_provenance is additive: results include
    preference_match, intent, and rerank_score.

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 15 May 20:14

[0.3.2] - 2026-05-15

Changed

  • Agent rule restructured into 3 hard trigger blocksRULE_BODY (installed
    into .cursor/rules/palace.mdc, .codex/AGENTS.md, .claude/CLAUDE.md) and
    PALACE_PROTOCOL (embedded in palace_status MCP response) are now structured
    as three imperative blocks: SESSION START, BEFORE ANSWERING, and
    AFTER WORK. The previous 11-step and 9-step numbered lists caused agents to
    front-load steps 1–2 and deprioritise the rest; the new block layout makes each
    trigger an unconditional gate, improving palace_diary_search and
    palace_kg_query call rates in practice.
  • rule_is_weak detection updated to check for the new block keywords
    (SESSION START, BEFORE ANSWERING, AFTER WORK) rather than the old numbered
    step phrases. Run palace install to refresh installed rules.

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 15 May 19:53

[0.3.1] - 2026-05-15

Added

  • palace_import MCP tool — import drawers from a JSON snapshot produced
    by palace_export. Skips drawers that already exist (idempotent). Returns
    inserted, skipped, and total counts.
  • palace_upgrade_embeddings MCP tool — re-embeds all drawers using the
    current embedding model. Run after upgrading the model to keep search quality
    consistent.
  • palace_prune MCP tool — deletes drawers filed more than older_than_days
    days ago. Irreversible; export first if unsure.
  • palace prune --older-than-days N [--dry-run] CLI command.
  • palace upgrade-embeddings CLI command.
  • palace timeline [--entity <name>] CLI command — human-readable
    chronological view of knowledge-graph facts, optionally filtered to one entity.