Repository navigation
Fix Claude project paths, scanner edge reads, and app state bugs - #11
Merged
Merged
Conversation
Core: - Encode Claude project folders like Claude Code does: every non-[A-Za-z0-9] UTF-16 unit becomes "-". Paths with spaces, underscores, ~, @ or non-ASCII were written to folders `claude --resume` never looks in. - Decode transcript edge chunks leniently so a 256 KB cut inside a multibyte character no longer drops the whole prefix/tail, and only drop the first tail line when the read started mid-file. - Replace mirrors with a single rename(2) instead of remove + move. - Give the sqlite3 CLI a busy timeout and drain stdout before waiting. - Skip developer/system events in the OpenCode renderer (matches Claude). - Carry OpenCode tool `error` text as the tool result. - Treat the bookends notice as injected context; widen OpenCode message counter padding so IDs keep sorting past 999 messages. - Remove the data race in ModelCatalog's timed fetch. CLI: reject unparsable --mode/--target/--lookback-days/--max-sessions. App: - Stop failed on-device titles from blocking all later sessions. - Drop conversion results for an abandoned continue flow. - Re-run a refresh requested while a scan is in flight. - Fall back to the default model when the field is cleared. - Route refresh errors through setStatus. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… picker - A refresh requested during a scan or conversion stays queued until it can actually run; prepareResume now runs it when it finishes. - Track which picker started a conversion. Closing that picker (Cancel/Back, or the hotkey panel closing) abandons it; opening another picker no longer wipes a review the menu-bar picker has ready. - CLI flags given without a value now error instead of using defaults. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Download this PR buildSigned and notarized macOS preview for commit |
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.
Summary
A bug sweep across core, CLI, and app. The two most user-visible fixes come first.
Core
[A-Za-z0-9]character (per UTF-16 unit) into-, but we only replaced/and.. Sessions converted from a cwd with a space, underscore,~,@, or non-ASCII character were written to a folderclaude --resumenever reads. Real~/.claude/projectsentries confirm the rule (Application Support→Application-Support).String(data:encoding:)return nil, so the whole prefix or tail chunk was dropped. The picker then lost the title, snippet, models, and cwd. The tail read also always dropped its first line, even when it had read the file from the start.rename(2)instead of remove + move.sqlite3busy timeout. Added.timeout 3000so writes to Codex's openstate_5.sqlitedon't fail immediately. Stdout is now drained before waiting.state.erroris now carried over as the tool result.ModelCatalog's timed fetch fixed (this was the compiler warning).CLI
--mode,--target,--lookback-days, and--max-sessionsnow error instead of silently using defaults.App
"".setStatus.Testing
AgentSyncCLI e2epasses, and a scratch harness that repeats the new tests' assertions passes.swift testcould not be built locally because the SwiftUI and Testing macro plugins are missing, so CI is the first full compile of the app changes and the first run of the test suite.Not addressed
🤖 Generated with Claude Code


Confidence Score: 5/5
The PR appears safe to merge; no new actionable issue was found.Summary
Fixes Claude project folders, scanner edge reads, conversion cancellation, and queued refreshes.
The three earlier, unnumbered threads are addressed in the current code. No new actionable issues were found.
Reviews (3) · Last reviewed commit: "Merge branch 'main' into claude/general-..." · Reviewed by Greptile