Skip to content

ShadeCore v1.4.1 — Logging, Validation, and Stability Pass

Latest

Choose a tag to compare

@cskonopka cskonopka released this 26 Dec 20:02
· 6 commits to main since this release
b51bbe3

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

  1. 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
  1. 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
  1. 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
  1. 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)

  1. 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