Overview
This release focuses on stability, observability, and developer experience.
No core rendering, shader, or output behavior has changed.
v1.4.1 establishes a solid foundation for debugging, auditing, and future
feature work (bundling, multipass, UI layers).
Key Changes
- Unified Logging System
-
All internal logs now use a consistent format:
YYYY-MM-DD HH:MM:SS.mmm [TAG][thread] message
-
Millisecond-resolution timestamps
-
Thread names included for concurrency clarity
-
Consistent behavior across macOS and Windows
This makes logs suitable for:
- debugging complex runtime issues
- sharing logs with other developers
- long-running sessions and audits
- External Process Logging (FFmpeg)
- FFmpeg stdout/stderr is now routed through ShadeCore logging
- Output is timestamped and tagged (e.g. FFMPEG_STREAM, FFMPEG_RECORD)
- Prevents unstructured subprocess output from breaking log clarity
- Run IDs and Session IDs
- Each application launch generates a unique run_id
- Recording sessions generate unique session IDs
These identifiers help:
- correlate logs with captures
- track multi-hour sessions
- support user bug reports more effectively
- Config & Profile Validation (Friendly Errors)
Validation is now performed for:
- params.json
- recording.json + recording profiles
When an issue is detected:
- A [CONFIG] log entry is emitted
- The exact JSON path is shown
- A clear explanation is provided
- Hints list valid alternatives when applicable
Example:
[CONFIG] recording.json:/active_profile: active_profile 'foo' not found
(hint: available: 1080p, 720p_fast_preview)
Validation summaries are always logged, even when configs are clean:
[CONFIG] validation: params.json OK (0 issues)
- Internal Cleanup (No Behavior Changes)
- Logging utilities consolidated and clarified
- Unsafe blocks aligned with actual unsafe call boundaries
- Internal consistency improvements
IMPORTANT:
No shader behavior, rendering logic, MIDI routing, OSC handling,
or output routing behavior was changed.
What Did NOT Change
- No rendering pipeline changes
- No shader execution changes
- No output routing changes
- No config schema changes
- No new runtime dependencies
This release is safe as a drop-in update from v1.4.0.
Recommended User Actions
- No configuration changes required
- Existing assets and profiles continue to work
- When reporting issues, include full log output
(timestamps and tags are now reliable)
Developer Notes
- This release establishes a stable observability baseline
- Logging and validation are considered "done" for v1.x
- Future work can safely build on this foundation:
- application bundling
- multipass / feedback pipelines
- UI layers
- documentation and marketing