ConsoleDock v2.0.0
Highlights
- Hardened stdout/stderr capture preparation, shutdown, and failed-start cleanup without losing the previous stopped session.
- Bounded capture-reader temporary-object lifetime and preserved Unicode during UTF-8 framing and stored-message truncation.
- Hardened sensitive-key continuation tracking across multiple tiny fragments and rejected stale redactor results after a session restart.
- Stopped hidden UIKit pages from processing live updates, preserved paused/filter/navigation state, and removed redundant context and report generation.
- Coalesced bundled display refreshes at up to 20 per second without throttling capture; reused compiled built-in redaction patterns.
- Distributed source-first through Swift Package Manager, with no new dependencies or product-scope expansion.
Upgrading From 1.x
This major release changes public concurrency behavior; API names and signatures are unchanged.
- Entry and diagnostic notifications are asynchronous, coalesced main-queue invalidations. Read the latest snapshot in observers. Do not count notifications as entries or rely on synchronous delivery before a logging call returns.
- Swift
Configuration.redactorand Objective-CCDKConfiguration.redactionBlockrun outside the store lock and may be called concurrently. Keep custom hooks fast and thread-safe.
The bundled UIKit panel already follows these rules. If you use only the standard panel and no custom redactor, no integration code changes are required. Update your Swift Package dependency requirement to allow version 2.0.0.
Boundaries
- Not a full replacement for Xcode Console.
- Does not promise complete Swift Logger, os_log, or Apple unified logging capture.
- No default persistence, upload, network inspector, CocoaPods, or XCFramework distribution.
- Raw passthrough remains unchanged. A stalled original output receiver can backpressure capture or shutdown; ConsoleDock does not silently discard passthrough data.
Validation
- Release Validation workflow passed: https://github.com/xuhuanstudio/ConsoleDock/actions/runs/36984155126
- Local release validation passed with 222 unit tests, seven isolated capture probes, a 100,000-line bounded-retention stress check, package/sample builds, DocC, and extracted source-archive build/tests.
- Swift and Objective-C sample UI smoke tests gate the tag's Release Validation workflow; local iPhone/iPad UI tests and six screenshots were also checked for this implementation.