Skip to content

Release v3.6.2#77

Merged
69gg merged 6 commits into
mainfrom
bugfix/bugs-10
Jun 22, 2026
Merged

Release v3.6.2#77
69gg merged 6 commits into
mainfrom
bugfix/bugs-10

Conversation

@69gg

@69gg 69gg commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add v3.6.2 changelog notes for forward-message UID handling, meme follow-up prompt behavior, and coordinator cleanup.
  • Include the existing 3.6.2 version bump commit in the release branch.

Tests

  • uv run pytest tests/test_changelog.py tests/test_changelog_tool.py tests/test_changelog_command.py
  • pre-commit via git commit: ruff format --check, ruff check, mypy

Summary by CodeRabbit

Release Notes v3.6.2

  • New Features

    • Enhanced merged forward message retrieval with pagination support (offset, limit parameters).
    • Added support for new forward message UID format in tools.
    • Improved nested forward message handling.
  • Bug Fixes

    • Fixed merged forward attachments and content handling issues.
  • Documentation

    • Updated forward message usage guidance and examples.
    • Clarified emoji/meme response strategy: text replies first, then optional emoji in subsequent turns.

69gg and others added 6 commits June 22, 2026 09:09
Co-authored-by: GPT-5 Codex <noreply@openai.com>
Co-authored-by: GPT-5 Codex <noreply@openai.com>
Co-authored-by: GPT-5 Codex <noreply@openai.com>
Co-authored-by: GPT-5 Codex <noreply@openai.com>
Co-authored-by: GPT-5 Codex <noreply@openai.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: b68b06a4-1dc1-41d4-bde0-e95ae14b8188

📥 Commits

Reviewing files that changed from the base of the PR and between 5c9fa5e and ae7945b.

⛔ Files ignored due to path filters (5)
  • apps/undefined-chat/package-lock.json is excluded by !**/package-lock.json
  • apps/undefined-chat/src-tauri/Cargo.lock is excluded by !**/*.lock
  • apps/undefined-console/package-lock.json is excluded by !**/package-lock.json
  • apps/undefined-console/src-tauri/Cargo.lock is excluded by !**/*.lock
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (39)
  • CHANGELOG.md
  • README.md
  • apps/undefined-chat/package.json
  • apps/undefined-chat/src-tauri/Cargo.toml
  • apps/undefined-chat/src-tauri/tauri.conf.json
  • apps/undefined-console/package.json
  • apps/undefined-console/src-tauri/Cargo.toml
  • apps/undefined-console/src-tauri/tauri.conf.json
  • docs/configuration.md
  • docs/development.md
  • docs/memes.md
  • docs/message-batching.md
  • docs/multi-model.md
  • docs/pipelines.md
  • docs/python-api.md
  • docs/usage.md
  • pyproject.toml
  • res/prompts/undefined.xml
  • res/prompts/undefined_nagaagent.xml
  • src/Undefined/__init__.py
  • src/Undefined/attachments/models.py
  • src/Undefined/attachments/registry.py
  • src/Undefined/attachments/segments.py
  • src/Undefined/handlers/message_flow.py
  • src/Undefined/handlers/poke.py
  • src/Undefined/services/ai_coordinator.py
  • src/Undefined/services/coordinator/group.py
  • src/Undefined/services/coordinator/private.py
  • src/Undefined/skills/toolsets/messages/get_forward_msg/config.json
  • src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py
  • src/Undefined/utils/xml.py
  • tests/test_ai_coordinator_queue_routing.py
  • tests/test_attachments.py
  • tests/test_coordinator_level.py
  • tests/test_get_forward_msg_tool.py
  • tests/test_handlers_repeat.py
  • tests/test_message_batcher_integration.py
  • tests/test_system_prompt_constraints.py
  • tests/test_xml_utils.py
💤 Files with no reviewable changes (1)
  • src/Undefined/services/ai_coordinator.py

📝 Walkthrough

Walkthrough

Version 3.6.2 introduces first-class forward-message UID handling: a new register_forward_reference method in AttachmentRegistry, forward_refs tracking in RegisteredMessageAttachments, and a fully rewritten get_forward_msg tool with pagination and XML output. MessageHandler gains a recursive forward meme scanning pipeline and threads prompt_refs/ai_content_base through private and group reply paths. The legacy AICoordinator shim module is removed. System prompts and coordinator footers are updated to enforce text-before-meme ordering. Version fields and docs are synchronized to 3.6.2.

Changes

v3.6.2: Forward UID Semantics, get_forward_msg Overhaul, Coordinator Removal, Meme Ordering

Layer / File(s) Summary
Forward attachment data contract
src/Undefined/attachments/models.py, src/Undefined/attachments/registry.py
Adds forward_refs: list[dict[str, str]] field to RegisteredMessageAttachments, extracts _uid_prefix_for_media_type helper, and introduces register_forward_reference as a new async public API that validates, SHA-256–digests, deduplicates, and persists forward records with kind="forward".
Segments: forward as first-class media type
src/Undefined/attachments/segments.py
Adds forward to media labels and kind normalization; introduces forward_ref_to_tag; makes attachment_refs_to_xml skip and return empty for forward-only inputs; adds register_forward_refs/expand_forward_attachments flags to register_message_attachments that route forward records into a separate forward_refs result list.
XML utils: preserve <forward .../> inline tags
src/Undefined/utils/xml.py
Replaces the single-tag attachment regex with a combined attachment|forward pattern and extends escape_xml_text_preserving_attachment_tags to maintain separate UID allowlists for attachments vs. forwards.
get_forward_msg tool: schema + handler rewrite
src/Undefined/skills/toolsets/messages/get_forward_msg/config.json, src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py
Expands the tool schema with offset, limit, max_depth fields. Rewrites execute with helpers for clamped parsing, timestamp formatting, node normalization, scope/registry resolution, and segment registration; paginates nodes; generates XML <message> output with <attachment .../> and <forward-ref ...> entries and a page-note.
MessageHandler: forward prompt refs and meme scan pipeline
src/Undefined/handlers/message_flow.py
Adds depth/node scan limits, _extract_forward_id_from_segment, updates _collect_message_attachments to register forward refs without expansion, introduces _schedule_forward_meme_scan/_scan_forward_memes_for_ingest for recursive image ingestion from forward trees, and wires prompt_refs/ai_content_base through private and group reply paths.
AICoordinator removal and import migration
src/Undefined/services/ai_coordinator.py, src/Undefined/handlers/poke.py
Deletes the 1092-line ai_coordinator.py shim and updates remaining import sites to Undefined.services.coordinator.
Meme/text ordering rules in prompts and coordinator footers
src/Undefined/services/coordinator/group.py, src/Undefined/services/coordinator/private.py, res/prompts/undefined.xml, res/prompts/undefined_nagaagent.xml
Rewrites _GROUP_STRATEGY_FOOTER and _PRIVATE_STRATEGY_FOOTER to require text-first then optional meme-later; revises system prompts to restrict early meme search to pure-sticker replies, tighten optional_triggers, add observations identifier format requirements, and broaden the intent-audit window.
Tests: forward attachments, XML, tool, handler, coordinator
tests/test_attachments.py, tests/test_xml_utils.py, tests/test_get_forward_msg_tool.py, tests/test_handlers_repeat.py, tests/test_ai_coordinator_queue_routing.py, tests/test_coordinator_level.py, tests/test_message_batcher_integration.py, tests/test_system_prompt_constraints.py
Adds coverage for forward UID registration, XML forward-tag preservation, get_forward_msg pagination with registered UIDs and raw IDs, group forward event handling, forward meme scan ingestion, legacy module removal assertion, max_tokens coercion, and updated coordinator import paths.
Version bump to 3.6.2 and documentation updates
pyproject.toml, src/Undefined/__init__.py, apps/undefined-chat/..., apps/undefined-console/..., CHANGELOG.md, README.md, docs/*
Bumps version fields in all manifests and the Python package; updates CHANGELOG, README, and docs for forward UID semantics, coordinator path change, get_forward_msg pagination, meme ordering rules, and pipeline behavior.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

🐇 Hops through forwards, layer by layer,
forward_uid tags floating through the air,
Text goes first, then memes—strictly in turn,
Old ai_coordinator? Gone, no return!
Paginated nodes in XML delight,
v3.6.2 — everything feels right! 🌸

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 29.51% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely identifies the main objective of the PR: preparing and releasing version 3.6.2.
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.

✏️ 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 bugfix/bugs-10

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

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

@69gg 69gg merged commit 4bb9edb into main Jun 22, 2026
4 checks passed
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