Repository navigation
Miffan 4.3.2 - #50
Merged
Merged
Miffan 4.3.2#50
Conversation
Every approval now shares one card frame: the request as a sentence, its values as fields, the raw call behind "details", allow and decline, a short "carrying on" state, and a hint that replying works too. Downloads, files, commands, MCP steps, calendar events and extension changes get their own fields; several plain requests in one reply get "allow all"; eligible steps can be allowed for good and taken back in permission history. Calendar events can be moved before they are added and show as event cards after. Settled records open readable details with undo and redo for versioned changes. Professional mode uses the same cards instead of bare icons. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Compare and merge assistant fields and memory items touched by each call. Ignore preserved permission fields, drop groups with no net reversible change, and recheck touched values against the latest head before restore. Retain whole-snapshot history restores and explicit restore revisions. Update existing RevisionTest cases that encoded the old chain rule: - toolCallUndoAndRedoCoverMultipleWritesAndSubjectsAndObserveLaterChanges now allows redo after adding an unrelated memory item. - supersededBatchDoesNotUndoAnySubjectAndInterleavedChangesAreNotUndoable now uses a conflicting item edit and drops the obsolete interleaving assertion (renamed supersededBatchDoesNotUndoAnySubject). - undoAndRedoRecordStateEvenWhenMultipleWritesHaveNoNetChange now expects exclusion (renamed toolCallGroupsWithNoNetChangeAreExcluded). Cover later settings writes, conflicting renames and memory edits, multi-subject validation, restore origins, head changes after validation, missing fields versus JSON null, and memory additions and deletions. Validate with both required Gradle commands: - ./gradlew :app:testDebugUnitTest --tests 'me.ayuilos.miffan.data.revision.*' (25 tests, zero failures or errors). - ./gradlew :app:testDebugUnitTest (full app unit suite passes).
Easy mode showed a pending ask_user through the professional chain-of-thought step. Both modes now show one question at a time with tappable options, a free-text answer and a reply-in-chat hint. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The record title was built without the call's output, so a successful extensions_apply_changes read as failed, and its sheet showed raw JSON. Pass the output to the title and reuse the card's change list in the sheet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Japanese, Korean and Russian for the approval-card, calendar, extension, record, standing-approval and question strings; Traditional Chinese for the screenless computer-use strings. Drop the now unused ask_user submit label and the MissingTranslation ignores of translated keys. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Share the private ToolCallGroup state and merge logic with timeline notices and single-revision undo. Preserve unrelated assistant fields, current permissions, and untouched memory items while rejecting conflicting or permission-only changes. Keep history restore semantics unchanged. Add regression coverage for notice eligibility, single-revision undo, restore origins, missing parents, and full-snapshot history restore. Clarify the repeated-undo comment in memoryChangesAreRecordedWithSourcesAndCanBeUndone; no existing test assertions needed adjustment. Validation: ./gradlew :app:testDebugUnitTest (1176 tests passed, including 32 RevisionTest cases).
Answers chosen on a question card survived only while the chat stayed open; keep them per call for the app's lifetime and drop them once sent. Approval history rows recorded before readable summaries said "Use calendar_create"; name the action when the row is shown. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Carry recent selected messages across segments while summaries are pending. Keep the newest idle segment eligible for topic classification for twelve hours, and close it when a confident new topic starts. Include the latest exchange in topic labels and wait for initial segment loading before routing. Use English speaker labels throughout the routing and continuity prompts. Validation: 71 thread unit tests passed; :app:compileDebugKotlin passed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep up to twelve recent messages of two thousand characters each from five other segments, alongside five earlier summaries. Preserve the 24-hour window and update the message, truncation and query limit tests. Validation: 71 thread unit tests passed; :app:compileDebugKotlin passed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A 200-token summary drops the details a later segment needs to pick the conversation back up; continuity matters more than the extra tokens. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The search pill on the Chats tab now rises to the top with a fade over the page, and results fill the space below it; cancel or back returns it to where it was. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each thread segment now records why it started (automatic split, long idle, the owner changing topic, or the first message after the welcome screen), and the timeline places a boundary before automatically started topics. The first message after an unopened welcome always starts a fresh topic. A topic can be merged into an earlier one, regenerating a single-exchange reply with the full history, and the merge can be undone until the next message. Changing topic now waits for the next message. Topic colors stay stable while older pages load. Database 38 -> 39 adds topic_start. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A line marks each automatically started topic, with an action to continue the last topic; when several earlier topics fit, a sheet asks which one. After a merge the line offers undo until the next message. The welcome divider offers to continue the last chat once the first message after it started a topic of its own, and that first message starts fresh unless the history was opened. Change topic moves into the composer's + menu and shows a pending line that can be undone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Changing topic now lives in the chat's + menu, next to where the next message is written. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pass reviewedHistory from the thread ViewModel to the router and skip the hard idle split after history was reviewed. Preserve classifier fallbacks, stale-topic closure, and explicit send priorities. Cover idle continuation, new topics, classifier failure and uncertainty, unchanged routing rules, and service parameter forwarding. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ayuilos
enabled auto-merge
October 18, 2026 17:27
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
发布 Miffan 4.3.2(versionCode 178035)。更新日志见 docs/releases/4.3.2.md。
补丁版:权限请求改为易读卡片(全部允许、以后直接做、日程可调时间、记录可撤销重做)、问题卡片、扩展记录显示修复、ColorOS 无可写日历时自动建本地日历、消息页搜索原地展开,以及 IM 话题连续性改进和话题纠正(分隔线、接回/撤销、「+」菜单换话题、查看历史后续聊)。数据库升级到 v39。
🤖 Generated with Claude Code