Skip to content

feat: v0.1.82#1075

Merged
Henry-811 merged 10 commits into
mainfrom
dev/v0.1.82
Apr 29, 2026
Merged

feat: v0.1.82#1075
Henry-811 merged 10 commits into
mainfrom
dev/v0.1.82

Conversation

@Henry-811
Copy link
Copy Markdown
Collaborator

@Henry-811 Henry-811 commented Apr 27, 2026

PR Title Format

Your PR title must follow the format: <type>: <brief description>

Valid types:

  • fix: - Bug fixes
  • feat: - New features
  • breaking: - Breaking changes
  • docs: - Documentation updates
  • refactor: - Code refactoring
  • test: - Test additions/modifications
  • chore: - Maintenance tasks
  • perf: - Performance improvements
  • style: - Code style changes
  • ci: - CI/CD configuration changes

Examples:

  • fix: resolve memory leak in data processing
  • feat: add export to CSV functionality
  • breaking: change API response format
  • docs: update installation guide

Description

Brief description of the changes in this PR

Type of change

  • Bug fix (fix:) - Non-breaking change which fixes an issue
  • New feature (feat:) - Non-breaking change which adds functionality
  • Breaking change (breaking:) - Fix or feature that would cause existing functionality to not work as expected
  • Documentation (docs:) - Documentation updates
  • Code refactoring (refactor:) - Code changes that neither fix a bug nor add a feature
  • Tests (test:) - Adding missing tests or correcting existing tests
  • Chore (chore:) - Maintenance tasks, dependency updates, etc.
  • Performance improvement (perf:) - Code changes that improve performance
  • Code style (style:) - Changes that do not affect the meaning of the code (formatting, missing semi-colons, etc.)
  • CI/CD (ci:) - Changes to CI/CD configuration files and scripts

Checklist

  • I have run pre-commit on my changed files and all checks pass
  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

Pre-commit status

# Paste the output of running pre-commit on your changed files:
# uv run pre-commit install
# git diff --name-only HEAD~1 | xargs uv run pre-commit run --files # for last commit
# git diff --name-only origin/<base branch>...HEAD | xargs uv run pre-commit run --files # for all commits in PR
# git add <your file> # if any fixes were applied
# git commit -m "chore: apply pre-commit fixes"
# git push origin <branch-name>

How to Test

Add test method for this PR.

Test CLI Command

Write down the test bash command. If there is pre-requests, please emphasize.

Expected Results

Description/screenshots of expected results.

Additional context

Add any other context about the PR here.

Summary by CodeRabbit

Release Notes v0.1.82

  • New Features

    • TUI copy mode (Ctrl+Shift+S) enables native text selection; mouse tracking automatically restores on exit.
    • Checkpoint MCP server adds optional workspace context configuration for reviewer sandboxes.
    • Enhanced checkpoint plan quality criteria with improved single-checkpoint recovery workflow.
  • UI Improvements

    • Updated agent status ribbon divider characters for visual consistency.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 27, 2026

Note

Reviews paused

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

This release introduces a terminal UI copy mode (Ctrl+Shift+S) for native text selection with mouse capture toggling and cleanup on exit, enhances the standalone checkpoint MCP server with configurable workspace context and mode-aware plan-quality criteria, updates TUI styling (ribbon dividers, modal borders), and provides comprehensive test and documentation updates. Version bumped to 0.1.82.

Changes

Cohort / File(s) Summary
Version Bump
massgen/__init__.py
Updated package version constant from 0.1.81 to 0.1.82.
TUI Copy Mode Feature
massgen/frontend/displays/textual_widgets/copy_mode_banner.py, massgen/frontend/displays/textual_widgets/__init__.py, massgen/frontend/displays/textual_terminal_display.py, massgen/frontend/displays/textual_themes/base.tcss, massgen/tests/frontend/test_copy_mode.py
New copy mode widget with Ctrl+Shift+S binding for native text selection. Includes CopyModeBanner component with visibility toggle, terminal mouse-tracking helper function, theme styling, action wiring in TextualApp, and on_unmount cleanup. Comprehensive test coverage for banner state toggling, mouse capture behavior, and modal interactions.
TUI Styling Updates
massgen/frontend/displays/textual_widgets/agent_status_ribbon.py, massgen/frontend/displays/textual_widgets/content_sections.py, massgen/frontend/displays/textual_themes/base.tcss
Changed agent ribbon dividers from pipe () to dot (·). Removed rule/box framing around inline indicators in tool/reasoning/timeline headers and completion footer. Updated modal and card borders in theme (double-to-solid borders, thick left-border accents). Simplified ToolSection wrapper styling.
Checkpoint MCP Server Enhancements
massgen/mcp_tools/standalone/checkpoint_mcp_server.py, massgen/mcp_tools/standalone/checkpoint_instructions.md, massgen/mcp_tools/standalone/setup_instructions.py, massgen/tests/test_checkpoint_mcp_standalone.py
Added include_workspace_context configuration flag for conditional workspace mounting in reviewer sandboxes. Implemented mode-aware checkpoint plan quality criteria (selective branch depth for single-checkpoint mode, recheckpoint fallback guidance for multi-checkpoint). Enhanced prompt logic with drift/unsafe axes enumeration and recovery-branch depth guidance. Updated load_template to gate SINGLE-CHECKPOINT-CONTINUATION and RECHECKPOINT sections based on mode. Strengthened single-checkpoint recovery semantics requiring terminate to be auditable conclusions. Refactored artifact staging to provide trajectory/validator via internal read-only mount while workspace is opt-in. Extended tests cover criteria validation, prompt content verification, template gating, workspace context config, and artifact/path handling.
Documentation & Release Notes
CHANGELOG.md, README.md, README_PYPI.md, CONTRIBUTING.md, docs/source/index.rst, massgen/configs/README.md, docs/announcements/current-release.md, docs/announcements/feature-highlights.md, docs/announcements/github-release-v0.1.82.md, docs/announcements/archive/v0.1.81.md, ROADMAP.md, ROADMAP_v0.1.83.md
Updated version references and release history from v0.1.81 to v0.1.82. Updated "Latest Features" and "Recent Achievements" to highlight TUI copy mode and checkpoint quality improvements. Updated contributing guide to reference v0.1.83 as next version. Removed obsolete v0.1.81 release notes file and created new v0.1.82 announcement. Added v0.1.83 roadmap focusing on checkpoint safety gating and round evaluator fixes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Possibly related PRs

Suggested reviewers

  • ncrispino
  • a5507203
🚥 Pre-merge checks | ✅ 5 | ❌ 3

❌ Failed checks (2 warnings, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description contains only the template structure with no actual content filled in—no description of changes, no completed checklist items, no test commands, no expected results, and no additional context provided. Fill in the Description section with a summary of v0.1.82 changes (TUI copy mode, checkpoint improvements, etc.), mark the appropriate Type of change checkbox, complete the Checklist items, provide test CLI commands and expected results, and add relevant additional context.
Docstring Coverage ⚠️ Warning Docstring coverage is 63.64% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Documentation Updated ❓ Inconclusive Repository structure lacks required documentation directories (docs/source/user_guide/, docs/source/reference/, docs/dev_notes/) referenced in custom check, making comprehensive assessment impossible. Confirm whether custom check requirements match actual repository structure and verify YAML schema documentation, design docs, and code docstrings exist as needed.
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The PR title 'feat: v0.1.82' follows the required format and references a version bump, which aligns with changes in the raw summary that update version constants and documentation across multiple files.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Capabilities Registry Check ✅ Passed The custom check for backend or model changes is not applicable to this PR. The PR contains no changes to backend modules, model definitions, token manager, or capability-related files.
Config Parameter Sync ✅ Passed The include_workspace_context parameter is a function argument, not a YAML config parameter, so it does not require registration in get_base_excluded_config_params().

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev/v0.1.82

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 7/8 reviews remaining, refill in 7 minutes and 30 seconds.

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

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: 10

🧹 Nitpick comments (3)
massgen/frontend/displays/textual_themes/base.tcss (1)

3214-3223: Consider consolidating duplicated ToolSection rules.

ToolSection is defined again later (Line 6564+). Keeping a single canonical block would reduce future cascade drift and make style intent easier to maintain.

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

In `@massgen/frontend/displays/textual_themes/base.tcss` around lines 3214 - 3223,
There are duplicate CSS blocks for the ToolSection component (symbol:
ToolSection); remove the redundant definition and consolidate all unique
properties into a single canonical ToolSection rule so styles don’t diverge.
Locate both ToolSection rule blocks, compare their declarations, merge any
differing properties (preserving intended max-height, margin, padding, border,
background, etc.) into one block, and delete the other duplicate so only the
consolidated ToolSection rule remains.
massgen/frontend/displays/textual_widgets/content_sections.py (1)

1716-1722: Avoid hardcoded separator width in timeline rule rendering.

Line 1721 uses a fixed 60-char rule, which can look inconsistent across terminal widths. Consider deriving width dynamically for cleaner responsive behavior.

♻️ Suggested refactor
-                else:
-                    sep_text.append("─" * 60, style="dim")
+                else:
+                    rule_width = max(12, (self.size.width or 64) - 4)
+                    sep_text.append("─" * rule_width, style="dim")
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@massgen/frontend/displays/textual_widgets/content_sections.py` around lines
1716 - 1722, The separator uses a hardcoded 60-character rule ("─" * 60) which
breaks responsiveness; update the code that builds sep_text (the Text object
used to create Static with id widget_id) to compute the rule length from the
available width instead of 60 — e.g., determine available_width via the
rendering/container size (Console().size.width, shutil.get_terminal_size(), or
the Textual widget’s self.size.width if inside a widget), subtract any
padding/margins, clamp to a minimum, and generate "─" * computed_length; keep
the label behavior unchanged so label still renders styled when present.
massgen/mcp_tools/standalone/checkpoint_mcp_server.py (1)

438-445: Use Google-style docstrings on the new helpers.

These docstrings are readable, but they still miss the Args: / Returns: structure required for changed Python functions in this repo.

As per coding guidelines, **/*.py: For new or changed functions, include Google-style docstrings.

Also applies to: 1039-1048, 1443-1480

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

In `@massgen/mcp_tools/standalone/checkpoint_mcp_server.py` around lines 438 -
445, The docstring for the new helper _build_checkpoint_plan_quality_criteria is
not in Google-style; update it to a Google-style docstring that includes a
one-line summary, an Args: section documenting single_checkpoint: bool, and a
Returns: section documenting the returned list[dict[str, Any]] (describe
contents/keys briefly); apply the same Google-style docstring pattern to the
other new helper functions added in this module so all changed/added functions
follow the repo guideline.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@massgen/configs/features/fast_iteration.yaml`:
- Around line 18-19: Update the command_line_docker_image entries in this
feature config from massgen/mcp-runtime-sudo:latest to
ghcr.io/massgen/mcp-runtime-sudo:latest so the shared config uses the upstream
GHCR image; specifically change the value for the command_line_docker_image key
where it currently equals "massgen/mcp-runtime-sudo:latest" (both occurrences
referenced around the current lines) and ensure any commented-out ghcr.io line
is the active default instead of the local image tag.

In `@massgen/frontend/displays/textual_terminal_display.py`:
- Around line 10566-10568: Update the docstring for the helper method
_set_terminal_mouse_capture to use Google-style format: replace the
single-line/parameterized docstring with a multi-line Google-style docstring
that includes a short summary, an Args: section describing the parameter enabled
(type and meaning), and a Returns: section if applicable (or omit if None) so it
follows the project's Python docstring guidelines; ensure the docstring sits
immediately under the def and references the method name
_set_terminal_mouse_capture and parameter enabled.
- Around line 4400-4407: The current unmount path suppresses all exceptions from
restoring terminal mouse capture (guarded by self._copy_mode_active) which hides
terminal-state failures; update the try/except to catch Exception as e and
record the failure instead of silently passing (e.g. call an available logger
like self._logger.exception or logging.exception with a clear message
referencing _set_terminal_mouse_capture), ensuring the _copy_mode_active flag is
still cleared (use finally or set it after logging) so the state is reset even
if restore fails.
- Around line 10545-10569: Add unit tests covering action_toggle_copy_mode,
_set_terminal_mouse_capture, and the on_unmount teardown behavior: one test
should simulate the banner being absent by having query_one(CopyModeBanner)
raise and assert no exception is raised and a warning logged; another should
mount a CopyModeBanner instance, call action_toggle_copy_mode to flip its active
state and assert banner.set_active was called, _copy_mode_active updated, notify
called with the correct ON/OFF message, and that set_terminal_mouse_capture was
invoked with the inverse of banner.active (mock set_terminal_mouse_capture and
the driver's presence via getattr(self, "_driver", None)); a third test should
simulate exiting/unmounting while copy mode is active and assert
_set_terminal_mouse_capture restores mouse capture (calls
set_terminal_mouse_capture with enabled=True) and _copy_mode_active is cleared;
use mocking for CopyModeBanner, set_terminal_mouse_capture, and notify to
observe interactions and avoid real terminal I/O.

In `@massgen/frontend/displays/textual_themes/base.tcss`:
- Around line 1681-1683: The border declarations added earlier (border: solid
$primary; border-left: thick $primary; padding: 1 2;) are being overridden by
later same-specificity rules, so apply the intended border/padding styles inside
the canonical modal container blocks (the selectors TaskPlanModal > Container
and ToolDetailModal > Container currently defined later) rather than at the
earlier positions (the changes around lines 1681 and 1783); update the rules in
the later blocks (the definitions around the TaskPlanModal > Container and
ToolDetailModal > Container canonical sections) to include the new border,
border-left and padding values so they take effect.
- Around line 1447-1465: Add unit/UI tests covering the new CopyModeBanner
show/hide behavior: create tests mirroring patterns in
test_queued_input_banner.py and test_restart_attempt_banner_dedup.py that assert
CopyModeBanner is visible when Ctrl+Shift+S is invoked, hidden when dismissed,
and that transitions (class .hidden) toggle correctly; update test harness to
simulate the keypress and verify DOM/state for CopyModeBanner. For the modal
border cascade, remove or consolidate duplicate rules so there is a single
authoritative definition for ToolDetailModal > Container and TaskPlanModal >
Container (currently defined around the new edits and again later at the far end
of the file) and ensure the intended border style (round vs solid) is the one
left in place. Finally, consolidate the two ToolSection selector blocks (the
base rules at the earlier and later locations) into a single ToolSection
definition to avoid duplication and drift, keeping comments/variants merged into
that one block.

In `@massgen/frontend/displays/textual_widgets/content_sections.py`:
- Line 489: Add regression tests under massgen/tests/frontend/ that cover the
TUI widget rendering changes: (1) add a snapshot or assertion test for
CompletionFooter.render() to verify its footer output including the new
rendering behavior, (2) add a test that mounts or invokes show_winner_hint() and
asserts the displayed text contains "Press f to see final answer", and (3) add a
test for the separator creation logic (the non-RestartBanner dim rule branch in
content_sections.py) to assert the separator's style/dim behavior; reference the
functions CompletionFooter.render, show_winner_hint, and the separator creation
code in content_sections.py when locating targets for the tests.

In `@massgen/mcp_tools/standalone/checkpoint_mcp_server.py`:
- Around line 1713-1715: The current code replaces orchestrator.context_paths
with checkpoint context_paths (the line using config.setdefault("orchestrator",
{})["context_paths"] = context_paths), which drops existing mounts; change this
to merge/append instead: retrieve orchestrator =
config.setdefault("orchestrator", {}), ensure orchestrator.get("context_paths")
is a list (or initialize to []), then extend it with the new context_paths
(optionally skipping duplicates) so existing base config paths are preserved
rather than overwritten.
- Around line 1910-1921: The single-checkpoint guard is keyed off
_checkpoint_counter which is being incremented before the subrun succeeds,
causing the only checkpoint to be consumed on failed/timeout attempts; change
the logic in checkpoint handling so _checkpoint_counter is only incremented
after a successful subrun/valid plan is produced (or revert/decrement it
immediately on failure), i.e. move the increment out of the pre-subrun path into
the success/plan-validation path in checkpoint_mcp_server.py (or add an explicit
rollback on error) so failed first attempts do not consume the only checkpoint.

In `@massgen/mcp_tools/standalone/setup_instructions.py`:
- Around line 61-79: The setup path always calls load_template() with its
default (single_checkpoint=False) so the massgen-checkpoint-setup command writes
the multi-checkpoint instructions even for single-checkpoint deployments; update
the setup/command handler that writes the template (the massgen-checkpoint-setup
entrypoint / the function that calls load_template when creating the
instructions file) to accept/derive a single_checkpoint boolean (from the CLI
flag or config) and pass it through to
load_template(single_checkpoint=single_checkpoint) when rendering the file so
the correct section is preserved/removed.

---

Nitpick comments:
In `@massgen/frontend/displays/textual_themes/base.tcss`:
- Around line 3214-3223: There are duplicate CSS blocks for the ToolSection
component (symbol: ToolSection); remove the redundant definition and consolidate
all unique properties into a single canonical ToolSection rule so styles don’t
diverge. Locate both ToolSection rule blocks, compare their declarations, merge
any differing properties (preserving intended max-height, margin, padding,
border, background, etc.) into one block, and delete the other duplicate so only
the consolidated ToolSection rule remains.

In `@massgen/frontend/displays/textual_widgets/content_sections.py`:
- Around line 1716-1722: The separator uses a hardcoded 60-character rule ("─" *
60) which breaks responsiveness; update the code that builds sep_text (the Text
object used to create Static with id widget_id) to compute the rule length from
the available width instead of 60 — e.g., determine available_width via the
rendering/container size (Console().size.width, shutil.get_terminal_size(), or
the Textual widget’s self.size.width if inside a widget), subtract any
padding/margins, clamp to a minimum, and generate "─" * computed_length; keep
the label behavior unchanged so label still renders styled when present.

In `@massgen/mcp_tools/standalone/checkpoint_mcp_server.py`:
- Around line 438-445: The docstring for the new helper
_build_checkpoint_plan_quality_criteria is not in Google-style; update it to a
Google-style docstring that includes a one-line summary, an Args: section
documenting single_checkpoint: bool, and a Returns: section documenting the
returned list[dict[str, Any]] (describe contents/keys briefly); apply the same
Google-style docstring pattern to the other new helper functions added in this
module so all changed/added functions follow the repo guideline.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: f351a547-c687-4da5-9521-0307e46d05a3

📥 Commits

Reviewing files that changed from the base of the PR and between 4160ef8 and 67a4f0c.

⛔ Files ignored due to path filters (8)
  • massgen/tests/frontend/__snapshots__/test_review_modal_snapshot/TestReviewModalSnapshot.test_review_modal_multi_context.svg is excluded by !**/*.svg, !**/*.svg
  • massgen/tests/frontend/__snapshots__/test_review_modal_snapshot/TestReviewModalSnapshot.test_review_modal_multi_file.svg is excluded by !**/*.svg, !**/*.svg
  • massgen/tests/frontend/__snapshots__/test_review_modal_snapshot/TestReviewModalSnapshot.test_review_modal_widescreen.svg is excluded by !**/*.svg, !**/*.svg
  • massgen/tests/frontend/__snapshots__/test_timeline_snapshot_scaffold/test_timeline_snapshot_real_tui_round_view.svg is excluded by !**/*.svg, !**/*.svg
  • massgen/tests/frontend/__snapshots__/test_timeline_snapshot_scaffold/test_timeline_snapshot_real_tui_runtime_injection_queue_and_delivery.svg is excluded by !**/*.svg, !**/*.svg
  • massgen/tests/frontend/__snapshots__/test_timeline_snapshot_scaffold/test_timeline_snapshot_real_tui_subagent_input_bar.svg is excluded by !**/*.svg, !**/*.svg
  • massgen/tests/frontend/__snapshots__/test_timeline_snapshot_scaffold/test_timeline_snapshot_real_tui_subagent_runtime_injection_queue.svg is excluded by !**/*.svg, !**/*.svg
  • massgen/tests/frontend/__snapshots__/test_timeline_snapshot_scaffold/test_timeline_snapshot_real_tui_toast_stack.svg is excluded by !**/*.svg, !**/*.svg
📒 Files selected for processing (10)
  • massgen/configs/features/fast_iteration.yaml
  • massgen/frontend/displays/textual_terminal_display.py
  • massgen/frontend/displays/textual_themes/base.tcss
  • massgen/frontend/displays/textual_widgets/__init__.py
  • massgen/frontend/displays/textual_widgets/agent_status_ribbon.py
  • massgen/frontend/displays/textual_widgets/content_sections.py
  • massgen/mcp_tools/standalone/checkpoint_instructions.md
  • massgen/mcp_tools/standalone/checkpoint_mcp_server.py
  • massgen/mcp_tools/standalone/setup_instructions.py
  • massgen/tests/test_checkpoint_mcp_standalone.py
✅ Files skipped from review due to trivial changes (2)
  • massgen/frontend/displays/textual_widgets/init.py
  • massgen/frontend/displays/textual_widgets/agent_status_ribbon.py

Comment thread massgen/configs/features/fast_iteration.yaml Outdated
Comment thread massgen/frontend/displays/textual_terminal_display.py
Comment thread massgen/frontend/displays/textual_terminal_display.py
Comment thread massgen/frontend/displays/textual_terminal_display.py
Comment thread massgen/frontend/displays/textual_themes/base.tcss
Comment thread massgen/frontend/displays/textual_themes/base.tcss
Comment thread massgen/frontend/displays/textual_widgets/content_sections.py
Comment thread massgen/mcp_tools/standalone/checkpoint_mcp_server.py
Comment thread massgen/mcp_tools/standalone/checkpoint_mcp_server.py
Comment thread massgen/mcp_tools/standalone/setup_instructions.py
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: 3

🧹 Nitpick comments (5)
README.md (1)

158-166: Consider matching “Latest Features” bullets with the more detailed announcement.

In ## 🆕 Latest Features (v0.1.82) you describe the Ctrl+Shift+S toggle (Line [163]-[164]), but the release announcement also highlights auto-restore on exit (Lines [5]-[6] in the announcement file). For consistency, you may want to add a short second bullet under “TUI Copy Mode” or extend the existing bullet.

Based on coding guidelines: “Documentation must be consistent with implementation, concise, and usable.”

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

In `@README.md` around lines 158 - 166, Update the "## 🆕 Latest Features
(v0.1.82)" section to match the announcement by adding the auto-restore behavior
to the TUI Copy Mode bullet: locate the "TUI Copy Mode" bullet under the header
and either append a short clause like "auto-restores on exit" to the existing
line referencing the Ctrl+Shift+S toggle or add a second indented bullet
describing "auto-restore on exit" so the README text matches the announcement's
behavior.
CHANGELOG.md (2)

46-49: Avoid repeating the same Docker change in multiple places unless intentional.

The Docker image reference appears in “Changed” (lines ~40-42) and again under “Documentation, Configurations and Resources” (lines ~48-49) for massgen/configs/features/fast_iteration.yaml. If the second mention is intended to highlight docs updates, it may be better to explicitly note documentation changes vs config changes to prevent reader confusion.

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

In `@CHANGELOG.md` around lines 46 - 49, The changelog currently repeats the
Docker image change for massgen/configs/features/fast_iteration.yaml in two
sections; update the entry so the configuration change is listed only once
(under the "Changed" or "Configurations" heading) and, if you must note
documentation updates, add a separate clarifying line under "Documentations,
Configurations and Resources" that explicitly states it’s a docs-only update
(e.g., "Documentation: noted Docker image reference in fast_iteration.yaml for
clarity") to avoid duplication and confusion between config vs docs changes.

34-42: Potential duplicate/overlap between “Recent Releases” summary and detailed v0.1.82 section.

Lines ~12-14 provide a short summary of the same items expanded in the detailed section (lines ~25-45). This isn’t necessarily wrong, but it increases maintenance cost if future edits are made to one but not the other. Consider either:

  • making the “Recent Releases” line a shorter pointer (e.g., “See detailed entry below”), or
  • ensuring the same PR references/phrasing stay aligned.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CHANGELOG.md` around lines 34 - 42, The "Recent Releases" summary duplicates
content from the detailed "v0.1.82" section, increasing maintenance burden;
update CHANGELOG by either shortening the "Recent Releases" line to a pointer
like "See v0.1.82 below" or sync the language/PR refs so both the "Recent
Releases" heading and the "v0.1.82" section (which lists TUI Ribbon Dividers,
Checkpoint changes, templated workspace, and Docker image reference) match
exactly; ensure PR `#1076` and the same bullet items (`agent_status_ribbon.py`,
`checkpoint_mcp_server.py`, workspace template mention, and
`fast_iteration.yaml`) are either removed from the summary or mirrored verbatim
to avoid divergence.
README_PYPI.md (2)

1560-1567: Verify the v0.1.83 roadmap issue references and titles.

The v0.1.83 roadmap lists:

  • issue #1026 (Line 1566),
  • issue #994 (Line 1567),
    with specific problem statements.

Please confirm these links still point to the intended issues and that the wording matches what’s in the issues (or update wording if the issues were renamed/re-scoped).

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

In `@README_PYPI.md` around lines 1560 - 1567, Check the v0.1.83 roadmap block in
README_PYPI.md and verify that GitHub issue links for `#1026` and `#994` resolve to
the intended issues and that their titles/descriptions match the roadmap text;
if an issue has been renamed or re-scoped, update the roadmap wording to match
the current issue title/summary (or replace the link with the correct issue
number) and ensure the two bullets for "Checkpoint Safety Mode for Irreversible
Actions" and "Fix: Round Evaluator Over-indexes on Incremental Fixes" reflect
the exact current issue titles and scope.

165-171: Verify the “Try v0.1.82 Features” install + example config path.

The snippet instructs users to:

  • install massgen==0.1.82 (Line 167), and
  • run uv run massgen --config @examples/features/fast_iteration.yaml ... (Line 168),
    then references massgen/configs/README.md#release-history--examples (Line 171).

Please confirm:

  1. the @examples/features/fast_iteration.yaml file exists in the published package/docs,
  2. the config path is correct relative to how @... is resolved in MassGen,
  3. the #release-history--examples anchor renders as expected.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README_PYPI.md` around lines 165 - 171, Check that the example path and
anchor in the README are valid: verify that the published package
(massgen==0.1.82) or docs include the file
examples/features/fast_iteration.yaml, confirm how MassGen resolves `@-prefixed`
config paths (e.g., in the code that handles config loading where the resolver
interprets "@examples/...") and update the README if resolution expects a
different prefix or relative path, and ensure the referenced anchor
"release-history--examples" actually exists in massgen/configs/README.md (rename
or adjust the anchor text to match the generated heading if it differs).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@CHANGELOG.md`:
- Around line 23-54: The header "### Documentations, Configurations and
Resources" in the CHANGELOG.md v0.1.82 entry is pluralized incorrectly; update
that header to "### Documentation, Configurations and Resources" to match the
project's existing changelog style and ensure consistency with other entries
(search for the exact header string "### Documentations, Configurations and
Resources" and replace it with "### Documentation, Configurations and
Resources").

In `@docs/announcements/github-release-v0.1.82.md`:
- Around line 1-23: The release notes jump from a top-level H1 to H3 sections;
update each "###" section header to "##" so headings increment by one level
(change "### 📋 TUI Copy Mode", "### 🔒 Checkpoint Standalone Improvements",
"### 🖥️ TUI Visual Polish", "### 🐳 Configuration", and "### 📖 Getting
Started" to use "##") to satisfy the markdownlint rule about incremental heading
levels.

In `@README_PYPI.md`:
- Around line 157-164: The import of COPY_MODE_BINDING and
set_terminal_mouse_capture in textual_terminal_display.py references a missing
module .textual_widgets.copy_mode_banner; to fix, either add the missing
copy_mode_banner.py implementing COPY_MODE_BINDING and
set_terminal_mouse_capture (and any UI banner widget used by the
comments/actions) under massgen/frontend/displays/textual_widgets, or change
textual_terminal_display.py to import the correct existing module that provides
those symbols and update references at the call sites (mentions at lines with
the copy mode banner comment and the "Toggle copy mode (Ctrl+Shift+S)" action);
ensure the Ctrl+Shift+S keybinding is declared consistently (COPY_MODE_BINDING)
and that set_terminal_mouse_capture toggles terminal mouse tracking as expected
so the binding can be validated.

---

Nitpick comments:
In `@CHANGELOG.md`:
- Around line 46-49: The changelog currently repeats the Docker image change for
massgen/configs/features/fast_iteration.yaml in two sections; update the entry
so the configuration change is listed only once (under the "Changed" or
"Configurations" heading) and, if you must note documentation updates, add a
separate clarifying line under "Documentations, Configurations and Resources"
that explicitly states it’s a docs-only update (e.g., "Documentation: noted
Docker image reference in fast_iteration.yaml for clarity") to avoid duplication
and confusion between config vs docs changes.
- Around line 34-42: The "Recent Releases" summary duplicates content from the
detailed "v0.1.82" section, increasing maintenance burden; update CHANGELOG by
either shortening the "Recent Releases" line to a pointer like "See v0.1.82
below" or sync the language/PR refs so both the "Recent Releases" heading and
the "v0.1.82" section (which lists TUI Ribbon Dividers, Checkpoint changes,
templated workspace, and Docker image reference) match exactly; ensure PR `#1076`
and the same bullet items (`agent_status_ribbon.py`, `checkpoint_mcp_server.py`,
workspace template mention, and `fast_iteration.yaml`) are either removed from
the summary or mirrored verbatim to avoid divergence.

In `@README_PYPI.md`:
- Around line 1560-1567: Check the v0.1.83 roadmap block in README_PYPI.md and
verify that GitHub issue links for `#1026` and `#994` resolve to the intended issues
and that their titles/descriptions match the roadmap text; if an issue has been
renamed or re-scoped, update the roadmap wording to match the current issue
title/summary (or replace the link with the correct issue number) and ensure the
two bullets for "Checkpoint Safety Mode for Irreversible Actions" and "Fix:
Round Evaluator Over-indexes on Incremental Fixes" reflect the exact current
issue titles and scope.
- Around line 165-171: Check that the example path and anchor in the README are
valid: verify that the published package (massgen==0.1.82) or docs include the
file examples/features/fast_iteration.yaml, confirm how MassGen resolves
`@-prefixed` config paths (e.g., in the code that handles config loading where the
resolver interprets "@examples/...") and update the README if resolution expects
a different prefix or relative path, and ensure the referenced anchor
"release-history--examples" actually exists in massgen/configs/README.md (rename
or adjust the anchor text to match the generated heading if it differs).

In `@README.md`:
- Around line 158-166: Update the "## 🆕 Latest Features (v0.1.82)" section to
match the announcement by adding the auto-restore behavior to the TUI Copy Mode
bullet: locate the "TUI Copy Mode" bullet under the header and either append a
short clause like "auto-restores on exit" to the existing line referencing the
Ctrl+Shift+S toggle or add a second indented bullet describing "auto-restore on
exit" so the README text matches the announcement's behavior.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3ba3ac63-96db-4d55-9e6b-83965a7e66fe

📥 Commits

Reviewing files that changed from the base of the PR and between 67a4f0c and 432843d.

📒 Files selected for processing (13)
  • CHANGELOG.md
  • CONTRIBUTING.md
  • README.md
  • README_PYPI.md
  • ROADMAP.md
  • ROADMAP_v0.1.83.md
  • docs/announcements/archive/v0.1.81.md
  • docs/announcements/current-release.md
  • docs/announcements/feature-highlights.md
  • docs/announcements/github-release-v0.1.81.md
  • docs/announcements/github-release-v0.1.82.md
  • docs/source/index.rst
  • massgen/configs/README.md
💤 Files with no reviewable changes (1)
  • docs/announcements/github-release-v0.1.81.md
✅ Files skipped from review due to trivial changes (8)
  • ROADMAP_v0.1.83.md
  • docs/announcements/feature-highlights.md
  • docs/announcements/archive/v0.1.81.md
  • CONTRIBUTING.md
  • massgen/configs/README.md
  • docs/source/index.rst
  • docs/announcements/current-release.md
  • ROADMAP.md

Comment thread CHANGELOG.md
Comment thread docs/announcements/github-release-v0.1.82.md
Comment thread README_PYPI.md
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: 2

♻️ Duplicate comments (1)
docs/announcements/github-release-v0.1.82.md (1)

3-19: ⚠️ Potential issue | 🟡 Minor

Use ## section headings under the H1 to fix markdownlint MD001.

These headings jump from H1 (#) to H3 (###). Change section headers to ## to keep heading levels incremental.

🔧 Proposed diff
-### 📋 [TUI Copy Mode](https://docs.massgen.ai/en/latest/user_guide/tui.html)
+## 📋 [TUI Copy Mode](https://docs.massgen.ai/en/latest/user_guide/tui.html)

-### 🔒 [Checkpoint Standalone Improvements](https://docs.massgen.ai/en/latest/user_guide/checkpoint.html)
+## 🔒 [Checkpoint Standalone Improvements](https://docs.massgen.ai/en/latest/user_guide/checkpoint.html)

-### 🖥️ TUI Visual Polish
+## 🖥️ TUI Visual Polish

-### 📖 Getting Started
+## 📖 Getting Started
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/announcements/github-release-v0.1.82.md` around lines 3 - 19, The
release notes jump from H1 to H3 headings causing markdownlint MD001; update the
section headings under the top-level H1 so they use H2 instead of
H3—specifically change "### 📋 TUI Copy Mode", "### 🔒 Checkpoint Standalone
Improvements", and "### 🖥️ TUI Visual Polish" (and any other H3s immediately
under the H1) to "##" so heading levels are incremental and MD001 is resolved.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@CHANGELOG.md`:
- Line 45: Update the CHANGELOG.md entry for "Updated Checkpoint Instructions:
`massgen/mcp_tools/standalone/checkpoint_instructions.md`" to include the
corresponding issue or PR reference (e.g., “(PR `#1234`)” or “(Issue `#1234`)”),
placing the reference inline with the entry to match the release section style
used elsewhere; locate the entry by the file path string
`massgen/mcp_tools/standalone/checkpoint_instructions.md` and append the correct
PR/issue number to the line.
- Around line 31-43: The changelog entries for "Checkpoint Plan Quality
Criteria", "Checkpoint Agent Recovery Guidance", and the "Checkpoint Workspace
Section Templated" change are missing explicit file paths; update each bullet to
include the affected file(s): mention the
`_build_checkpoint_plan_quality_criteria` function/file location (where that
helper lives) for the Plan Quality Criteria entry, add
`checkpoint_instructions.md` (or the exact docs path) for the Agent Recovery
Guidance entry, and include the template/code location that introduces
`{workspace_section}` and `include_workspace_context` (e.g.,
`massgen/mcp_tools/standalone/checkpoint_mcp_server.py` or the exact module that
injects the workspace_section) for the Workspace Section entry so every listed
change has a precise file path for traceability.

---

Duplicate comments:
In `@docs/announcements/github-release-v0.1.82.md`:
- Around line 3-19: The release notes jump from H1 to H3 headings causing
markdownlint MD001; update the section headings under the top-level H1 so they
use H2 instead of H3—specifically change "### 📋 TUI Copy Mode", "### 🔒
Checkpoint Standalone Improvements", and "### 🖥️ TUI Visual Polish" (and any
other H3s immediately under the H1) to "##" so heading levels are incremental
and MD001 is resolved.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c0638a37-2cda-4516-8655-15615ea81b88

📥 Commits

Reviewing files that changed from the base of the PR and between 432843d and 16a0fe7.

📒 Files selected for processing (2)
  • CHANGELOG.md
  • docs/announcements/github-release-v0.1.82.md

Comment thread CHANGELOG.md
Comment thread CHANGELOG.md
@ncrispino
Copy link
Copy Markdown
Collaborator

@coderabbitai pause

@Henry-811 Henry-811 merged commit 8d57841 into main Apr 29, 2026
20 of 21 checks passed
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 29, 2026

✅ Actions performed

Reviews paused.

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.

3 participants