Skip to content

release: v1.7.0#63

Merged
kienbui1995 merged 1 commit intomainfrom
release/v1.7.0
Apr 14, 2026
Merged

release: v1.7.0#63
kienbui1995 merged 1 commit intomainfrom
release/v1.7.0

Conversation

@kienbui1995
Copy link
Copy Markdown
Owner

@kienbui1995 kienbui1995 commented Apr 14, 2026

Version bump + CHANGELOG for v1.7.0. See CHANGELOG.md for full details.

Summary by CodeRabbit

Release v1.7.0

  • New Features

    • Memory System v2 with semantic/episodic/procedural layers, auto-compaction, and self-skeptical guidance.
    • Browser automation via headless Playwright.
    • Structured multi-phase debug mode.
    • Cross-session full-text search and configurable notifications.
    • Automatic skill generation and agent profile commands.
  • Documentation

    • Added Getting Started guide, Memory system documentation, Configuration reference, and Tools reference.

- Memory v2 (categories, dream cleanup, self-skeptical)
- System prompt hardened (30/30 tools, security, negative rules)
- Security CI (audit, deny, dependency review)
- Browser, debug mode, GitHub integration, profiles, pinning
- tree-sitter, arboard, auto-skill, FTS search
- UX: spinner, bell, help categories, quit confirm, Ctrl+R
- 274 tests, 30 tools, 51 PRs
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 14, 2026

📝 Walkthrough

Walkthrough

Release preparation for v1.7.0 with version bump in Cargo.toml, expanded CHANGELOG with detailed release notes, updated README tool count (29→30), and four new documentation pages covering getting started, memory system architecture, configuration reference, and tools reference.

Changes

Cohort / File(s) Summary
Release & Version Metadata
CHANGELOG.md, README.md, mc/Cargo.toml
Version bumped from 1.6.0 to 1.7.0; changelog entry added documenting Memory System v2 overhaul (categories, auto-compaction, self-skeptical guidance), system prompt hardening, CI/security pipeline additions, and expanded feature list; tools count incremented from 29 to 30.
Getting Started Guide
mc/docs/guides/getting-started.md
New documentation page covering installation methods (shell-based and cargo-based), API key setup, first-run usage modes, core concepts (Tools, Memory, Skills, Agents, Sessions), essential TUI commands, and project-level .magic-code/config.toml configuration.
Memory System Documentation
mc/docs/guides/memory.md
New guide describing three-layer memory architecture: Layer 1 semantic memory with four categories (project, user, feedback, reference) and auto-compaction at 150-fact threshold; Layer 2 episodic memory for session persistence and FTS search; Layer 3 procedural memory for reusable skills and auto-generated/named agent definitions.
Configuration & Tools Reference
mc/docs/reference/config.md, mc/docs/reference/tools.md
New reference pages documenting configuration file precedence, TOML options ([default] and [managed_agents] sections), environment variables, CLI flag overrides, and comprehensive listing of 30 built-in tools organized across 5 categories (Core, Planning & Delegation, Debugging & Testing, Context & Memory, Workspace).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐰 Hopping through v1.7.0, where docs grow tall,
Memory layers three, from small to sprawl,
Config and tools, all neat and organized,
Getting started smoothly, beautifully sized!
A carrot 🥕 of knowledge, from source to scroll!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The PR description is minimal and does not follow the repository's template structure, missing required sections (What, Why, How) and the Checklist items. However, it provides the essential information that this is a version bump and CHANGELOG update, and references the CHANGELOG for details. Consider expanding the description to follow the template by adding brief What/Why/How sections and confirming the Checklist items were completed before merging.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'release: v1.7.0' clearly and concisely describes the primary change—a version release bump. It directly matches the changeset which updates the version in Cargo.toml and adds the corresponding CHANGELOG entry.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/v1.7.0

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the project to version 1.7.0, introducing significant features such as a new memory system, browser automation, and enhanced security CI. The changelog and documentation have been updated to reflect these changes. Feedback identifies a discrepancy between the described and actual behavior of the /search-all command and suggests increasing test coverage to match the project's stated focus on quality and security.

- **Agent profiles**: `/profile save/load/list`
- **Context pinning**: `/pin` — pinned messages survive compaction
- **Auto-skill creation**: auto-generate skills after complex tasks
- **Cross-session FTS search**: `/search-all` across all saved sessions
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The changelog states that /search-all searches across "all saved sessions," but the implementation in mc-core/src/fts.rs (line 41) limits the search to the 100 most recent sessions and stops after finding 20 results (line 93). This discrepancy should be clarified in the documentation or the implementation should be updated to match the description.

- **arboard** cross-platform clipboard (replaces shell pbcopy/xclip)
- **GitHub templates**: bug report, feature request, PR template
- **SECURITY.md**: vulnerability reporting policy
- **274 tests**, 50% coverage, 0 warnings
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

A test coverage of 50% is relatively low for a release that emphasizes "Security & Quality CI" and "Strict clippy." Increasing test coverage would better align with the project's stated quality goals.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@mc/docs/guides/getting-started.md`:
- Line 66: The relative link "reference/config.md" in the getting-started
document is incorrect; update the link target used in the line 'See
[Configuration Reference](reference/config.md) for all options.' to use the
correct relative path "../reference/config.md" so the Configuration Reference
resolves from mc/docs/guides/getting-started.md.

In `@mc/docs/guides/memory.md`:
- Around line 17-23: The fenced code blocks showing CLI examples and directory
trees (e.g., the block with "/memory", "/memory get test_cmd", "/memory set
test_cmd \"pytest\"", and "/memory delete old_key" and the other blocks at lines
referenced) are missing language identifiers; update each fenced block to
include an appropriate language tag (use "text" or "bash" for shell/command
examples and "text" for the directory tree) so lint stops flagging them—apply
this to the blocks around the shown commands and the other blocks mentioned
(lines 51–56, 59–66, 72–78, 84–88).

In `@mc/docs/reference/config.md`:
- Around line 54-68: The fenced code block that lists CLI flags (the
triple-backtick block starting at the options list) lacks a language identifier
and triggers markdown-lint warnings; update that block to use a language tag
(e.g., add "text" after the opening triple backticks) so the block becomes
```text ... ``` to silence the lint and preserve plain-text formatting.
- Around line 11-30: The [default] example documents unsupported keys and
misplaces fields: remove or relocate the entries base_url, fallback_provider,
fallback_model, notifications, notification_webhook, compaction_threshold, and
compaction_preserve_recent from the [default] block and place them in their
correct sections or a “Runtime defaults” section; update the [default] snippet
to only show keys actually loaded from [default] (e.g., model, max_tokens,
provider, permission_mode) and add a short note that fallback provider/model and
notifications are runtime defaults and only applied when the current config
schema explicitly supports them.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e2a8c7ad-84a1-4602-b707-cb43c4147f27

📥 Commits

Reviewing files that changed from the base of the PR and between 5c5aa75 and bccca14.

⛔ Files ignored due to path filters (1)
  • mc/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (7)
  • CHANGELOG.md
  • README.md
  • mc/Cargo.toml
  • mc/docs/guides/getting-started.md
  • mc/docs/guides/memory.md
  • mc/docs/reference/config.md
  • mc/docs/reference/tools.md

notifications = true
```

See [Configuration Reference](reference/config.md) for all options.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix the relative link path to the config reference.

Line 66 currently links to reference/config.md, which is incorrect from mc/docs/guides/. Use ../reference/config.md to avoid a broken docs link.

Proposed fix
-See [Configuration Reference](reference/config.md) for all options.
+See [Configuration Reference](../reference/config.md) for all options.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
See [Configuration Reference](reference/config.md) for all options.
See [Configuration Reference](../reference/config.md) for all options.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@mc/docs/guides/getting-started.md` at line 66, The relative link
"reference/config.md" in the getting-started document is incorrect; update the
link target used in the line 'See [Configuration Reference](reference/config.md)
for all options.' to use the correct relative path "../reference/config.md" so
the Configuration Reference resolves from mc/docs/guides/getting-started.md.

Comment on lines +17 to +23
```
/memory # list all facts
/memory get test_cmd # get specific fact
/memory set test_cmd "pytest" # save fact
/memory delete old_key # remove fact
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add language identifiers to plain fenced code blocks.

Several fenced blocks (Lines 17, 51, 59, 72, 84) omit language tags, which will keep triggering lint warnings.

Suggested update pattern
-```
+```text
 /memory                     # list all facts
 ...

Apply similarly to the directory tree and command-list blocks.
</details>


Also applies to: 51-56, 59-66, 72-78, 84-88

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @mc/docs/guides/memory.md around lines 17 - 23, The fenced code blocks
showing CLI examples and directory trees (e.g., the block with "/memory",
"/memory get test_cmd", "/memory set test_cmd "pytest"", and "/memory delete
old_key" and the other blocks at lines referenced) are missing language
identifiers; update each fenced block to include an appropriate language tag
(use "text" or "bash" for shell/command examples and "text" for the directory
tree) so lint stops flagging them—apply this to the blocks around the shown
commands and the other blocks mentioned (lines 51–56, 59–66, 72–78, 84–88).


</details>

<!-- fingerprinting:phantom:triton:puma:06ee9ad6-cb94-4b18-bd94-909a13511a94 -->

<!-- This is an auto-generated comment by CodeRabbit -->

Comment on lines +11 to +30
[default]
# LLM
model = "claude-sonnet-4-20250514"
max_tokens = 8192
provider = "anthropic"
base_url = "" # custom API endpoint
fallback_provider = "" # secondary provider
fallback_model = "" # secondary model

# Permissions
permission_mode = "auto" # auto | allow | deny | prompt

# Context
compaction_threshold = 0.8 # compact at 80% context usage
compaction_preserve_recent = 4 # keep last 4 messages

# Notifications
notifications = true # bell + desktop notifications
notification_webhook = "" # Slack/Discord webhook URL

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

[default] section documents unsupported keys and wrong section placement.

Lines 16–30 include fields that are not loaded from [default] (base_url, fallback_provider, fallback_model, notifications, notification_webhook, compaction_*). This will mislead users because these settings won’t take effect as documented.

Proposed docs correction
 [default]
 # LLM
 model = "claude-sonnet-4-20250514"
 max_tokens = 8192
 provider = "anthropic"
-base_url = ""                    # custom API endpoint
-fallback_provider = ""           # secondary provider
-fallback_model = ""              # secondary model
 
 # Permissions
 permission_mode = "auto"         # auto | allow | deny | prompt
-
-# Context
-compaction_threshold = 0.8       # compact at 80% context usage
-compaction_preserve_recent = 4   # keep last 4 messages
-
-# Notifications
-notifications = true             # bell + desktop notifications
-notification_webhook = ""        # Slack/Discord webhook URL
+
+[compaction]
+auto_compact_threshold = 0.8
+preserve_recent_messages = 4

Also add a short note that fallback provider/model and notifications are runtime defaults unless explicitly supported by current config schema.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@mc/docs/reference/config.md` around lines 11 - 30, The [default] example
documents unsupported keys and misplaces fields: remove or relocate the entries
base_url, fallback_provider, fallback_model, notifications,
notification_webhook, compaction_threshold, and compaction_preserve_recent from
the [default] block and place them in their correct sections or a “Runtime
defaults” section; update the [default] snippet to only show keys actually
loaded from [default] (e.g., model, max_tokens, provider, permission_mode) and
add a short note that fallback provider/model and notifications are runtime
defaults and only applied when the current config schema explicitly supports
them.

Comment on lines +54 to +68
```
--model <MODEL> LLM model
--provider <PROVIDER> Provider name
--max-tokens <N> Max tokens per response
--resume Resume last session
--session-id <ID> Resume specific session
--pipe Read from stdin
--json JSON output mode
--yes Auto-approve (CI/CD)
--trace Debug logging
--validate-config Validate and exit
--max-budget-usd <N> Cost limit
--max-turns <N> Turn limit
--add-dir <DIR> Grant access to extra directories
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add a language identifier to the fenced CLI block.

Line 54 starts a fenced code block without language, which triggers markdown lint warnings.

Proposed fix
-```
+```text
 --model <MODEL>          LLM model
 --provider <PROVIDER>    Provider name
 ...
 --add-dir <DIR>          Grant access to extra directories
</details>

<!-- suggestion_start -->

<details>
<summary>📝 Committable suggestion</summary>

> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

```suggestion

🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 54-54: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@mc/docs/reference/config.md` around lines 54 - 68, The fenced code block that
lists CLI flags (the triple-backtick block starting at the options list) lacks a
language identifier and triggers markdown-lint warnings; update that block to
use a language tag (e.g., add "text" after the opening triple backticks) so the
block becomes ```text ... ``` to silence the lint and preserve plain-text
formatting.

@kienbui1995 kienbui1995 merged commit 8958210 into main Apr 14, 2026
13 checks passed
@kienbui1995 kienbui1995 deleted the release/v1.7.0 branch April 14, 2026 06:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant