Skip to content

Clarc v2.5.3

Choose a tag to compare

@dttxorg dttxorg released this 05 Jun 05:31
· 11 commits to main since this release

Clarc 2.5.3

Bug fixes (32 high-severity)

Data loss / crash

  • H-01: streamingTail force-unwrap crash in handlePartialEvent
  • H-02: applyCompaction now persists compacted history to disk
  • H-07: MainView selectedProject force-unwrap replaced with safe binding
  • H-08: SlashCommandManagerView command! force-unwrap replaced with optional binding
  • H-09: TerminalProcess marked @mainactor (Swift 6 concurrency + race fix)
  • H-10: NSAlert replaced with SwiftUI .alert (URL field now gets focus)
  • H-11: InspectorMemoPanel MemoContext now uses @bindable for toolbar re-render

Security

  • H-14: find long-form flags (--delete / --exec / --fprint / ...) now blocked
  • H-15: git global flags (--no-pager / -C / -c) skipped when locating subcommand
  • H-19: bash_allowlist decode failure now backs up to .corrupted-.json
  • H-21: GitHub pinned keys now include RSA
  • H-22: forkSession regex no longer rewrites nested sessionId
  • H-28: parseGitHubOwnerRepo uses URL parsing, rejects evil.com/?ref=github.com/...
  • H-31: FileManager.urls(...).first! replaced with guard let
  • H-32: NWListener .cancelled state now calls cancel()

Resource / lifecycle

  • H-12, H-13: Timer.publish leak fixed in 3 view files (now Task + sleep loop)
  • H-16: ClaudeService spawn failure closes all pipe FDs
  • H-17: claude.cleanup() and permission.stop() now called from applicationWillTerminate
  • H-23: sniffCache has 1000-entry LRU cap
  • H-25: PickerExposer now tail-merges CLI appends during rename window
  • H-26: PickerExposer single atomic rename (no more double-rename)
  • H-27: GitHelper drains stderr in background Task (no more 64KB pipe deadlock)

State machine

  • H-03: selectProject persists per-session model/effort/permissionMode to sidecar
  • H-04: releaseOutgoingSession rejects placeholder ids
  • H-05: SessionMetaStore.save cache now updates AFTER disk write succeeds
  • H-06: placeholder pending- cleanup in selectProject / startNewChat / restart
  • H-18: ClaudeService.cancel SIGKILL is cancellable, verifies pid is still ours
  • H-24: forkSession Date matching uses ms-rounded + uuid tiebreaker
  • H-29: JSONPathParser error offsets no longer always 0
  • H-30: SettingsView hard-coded labels moved to String(localized:)

Download

Clarc-2.5.3.dmg(11.4MB, unsigned)

v2.5.2 → v2.5.3 改动

仅 bug 修复;turn-block 折叠、context compaction 等功能不变。