Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: daydreamlive/scope
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.1.7
Choose a base ref
...
head repository: daydreamlive/scope
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.1.8
Choose a head ref
  • 19 commits
  • 69 files changed
  • 12 contributors

Commits on Mar 10, 2026

  1. ci: speed up PR deploys by decoupling from standard image build (#649)

    * ci: speed up PR deploys by decoupling from standard image build
    
    Extract shared docker build logic into a reusable workflow
    (docker-build-image.yml) to eliminate duplication.
    
    - build-cloud and build-standard now call the same reusable workflow
    - deploy-pr only waits for build-cloud (~3min vs ~12min)
    - Standard image still builds in parallel for releases
    
    Before: deploy-pr waited ~12 min (both images)
    After: deploy-pr waits ~3 min (cloud only)
    Signed-off-by: livepeer-robot <[email protected]>
    
    * fix: set permissions at workflow level for reusable workflow
    
    Reusable workflows inherit GITHUB_TOKEN permissions from the caller
    workflow, not from their own job-level permissions block.
    
    Move permissions to workflow level so the reusable workflow can
    request packages:write for pushing Docker images.
    
    Signed-off-by: livepeer-robot <[email protected]>
    
    * preserve comments
    
    Signed-off-by: Max Holland <[email protected]>
    
    ---------
    
    Signed-off-by: livepeer-robot <[email protected]>
    Signed-off-by: Max Holland <[email protected]>
    Co-authored-by: livepeer-robot <[email protected]>
    Co-authored-by: Max Holland <[email protected]>
    3 people authored Mar 10, 2026
    Configuration menu
    Copy the full SHA
    5d1800b View commit details
    Browse the repository at this point in the history
  2. prefix logs with connection ID

    Signed-off-by: Max Holland <[email protected]>
    mjh1 committed Mar 10, 2026
    Configuration menu
    Copy the full SHA
    c831e8d View commit details
    Browse the repository at this point in the history
  3. Merge branch 'main' into mh/connection-id-logs

    Signed-off-by: Max Holland <[email protected]>
    mjh1 committed Mar 10, 2026
    Configuration menu
    Copy the full SHA
    732f947 View commit details
    Browse the repository at this point in the history
  4. Merge pull request #648 from daydreamlive/mh/connection-id-logs

    Prefix logs with remote inference connection ID
    emranemran authored Mar 10, 2026
    Configuration menu
    Copy the full SHA
    4cba0a9 View commit details
    Browse the repository at this point in the history
  5. feat: improve cloud button discoverability and header icon visibility

    Change disconnected state text from "Disconnected" to "Enable Remote
    Inference" so new users understand the feature is available. Bump opacity
    on all three header icons (cloud, plugins, settings) for better visibility.
    Update e2e test selector to match new title.
    
    Signed-off-by: emranemran <[email protected]>
    emranemran committed Mar 10, 2026
    Configuration menu
    Copy the full SHA
    9f7cb3b View commit details
    Browse the repository at this point in the history

Commits on Mar 11, 2026

  1. Merge pull request #654 from daydreamlive/emran/cloud-ux-improvement

    feat: improve cloud button discoverability and header icon visibility
    emranemran authored Mar 11, 2026
    Configuration menu
    Copy the full SHA
    6969d38 View commit details
    Browse the repository at this point in the history
  2. Use daydream API to check if plugin is allowed (#646)

    * Use daydream API to check if plugin is allowed
    
    Signed-off-by: Max Holland <[email protected]>
    
    * address review comment, return 503 on daydream API error
    
    Signed-off-by: Max Holland <[email protected]>
    
    ---------
    
    Signed-off-by: Max Holland <[email protected]>
    mjh1 authored Mar 11, 2026
    Configuration menu
    Copy the full SHA
    6fbf39e View commit details
    Browse the repository at this point in the history
  3. fix: invalidate plugin cache when (un)installing (#666)

    This means we can avoid waiting for a restart when we clear up plugins on remote inference disconnect
    
    Signed-off-by: Max Holland <[email protected]>
    mjh1 authored Mar 11, 2026
    Configuration menu
    Copy the full SHA
    5f6ee61 View commit details
    Browse the repository at this point in the history

Commits on Mar 12, 2026

  1. Configuration menu
    Copy the full SHA
    58a6faa View commit details
    Browse the repository at this point in the history
  2. Fix displaying new loading text (#659)

    Signed-off-by: Max Holland <[email protected]>
    mjh1 authored Mar 12, 2026
    Configuration menu
    Copy the full SHA
    853a23a View commit details
    Browse the repository at this point in the history
  3. Make Settings dialog box size match Plugins (#661)

    Signed-off-by: Thom Shutt <[email protected]>
    thomshutt authored Mar 12, 2026
    Configuration menu
    Copy the full SHA
    fc905d8 View commit details
    Browse the repository at this point in the history
  4. Add MCP server for AI-assisted pipeline control (#660)

    * Add MCP server for AI-assisted pipeline control
    
    Expose Scope's API as MCP (Model Context Protocol) tools so AI assistants
    can programmatically manage pipelines, control parameters, capture frames,
    and interact with a running Scope instance over stdio.
    
    Backend:
    - Add mcp_server.py: thin MCP-over-stdio client that proxies to the Scope
      HTTP API, with tools for pipeline lifecycle, parameter control, frame
      capture, session metrics, recording, LoRA/plugin management, and more
    - Add REST endpoints for headless sessions (start/stop stream, get/set
      parameters, capture frame, session metrics, unload pipeline, recording)
    - Add HeadlessSession to WebRTCManager for sessions without a browser
    - Add broadcast_notification() for pushing parameter changes to frontends
    - Add VideoProcessingTrack.get_last_frame() public accessor
    - Defer logging setup to run_server() so the MCP subprocess does not
      create a competing log file that shadows the server's logs
    - Add --mcp CLI flag and optional `mcp` dependency group
    
    Frontend:
    - Add onParametersUpdated callback to useUnifiedWebRTC for external
      parameter updates (REST API, MCP, OSC)
    - Extract applyBackendParamsToSettings in StreamPage so both local sends
      and external pushes share the same settings-sync path
    
    Signed-off-by: RyanOnTheInside <[email protected]>
    
    * review fixes
    
    Signed-off-by: RyanOnTheInside <[email protected]>
    
    * base64 fix
    
    Signed-off-by: RyanOnTheInside <[email protected]>
    
    * Remove recording and unload_pipeline MCP tools
    
    These endpoints are not needed for MCP workflows - removes start_recording,
    stop_recording, and unload_pipeline tools along with their references in
    instructions and docstrings.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * Rename session_router to mcp_router and simplify session endpoints
    
    Replaces session_id path parameters with implicit active-session lookup
    for stop, recording start/stop endpoints, aligning the REST API with
    MCP server usage patterns.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * Simplify headless session to single-session model and remove unused endpoints
    
    Remove recording and pipeline unload endpoints from MCP router, and
    refactor WebRTCManager from a multi-session dict to a single headless
    session slot since only one headless session is supported at a time.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Rafal Leszko <[email protected]>
    
    * Extract HeadlessSession from webrtc.py into its own module
    
    HeadlessSession has no WebRTC dependencies — it runs FrameProcessor
    directly. Moving it to headless_session.py clarifies the separation
    between WebRTC and MCP-only session management.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Rafal Leszko <[email protected]>
    
    * Rename headless_session.py to headless.py
    
    Consistent with sibling module naming (webrtc.py, recording.py).
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Rafal Leszko <[email protected]>
    
    * add v2v mode
    
    Signed-off-by: RyanOnTheInside <[email protected]>
    
    ---------
    
    Signed-off-by: RyanOnTheInside <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    Signed-off-by: Rafal Leszko <[email protected]>
    Co-authored-by: Rafał Leszko <[email protected]>
    Co-authored-by: Claude Opus 4.6 <[email protected]>
    3 people authored Mar 12, 2026
    Configuration menu
    Copy the full SHA
    ec4fedd View commit details
    Browse the repository at this point in the history

Commits on Mar 13, 2026

  1. feat: mcp followup (#677)

    * deps and desc
    
    Signed-off-by: RyanOnTheInside <[email protected]>
    
    * port flexibility, ocp
    
    now you tell claude which port to connect on, eg: "connect to scope on port 8009". params are dynamic.
    
    Signed-off-by: RyanOnTheInside <[email protected]>
    
    * Move mcp from optional extra to core dependency
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    ---------
    
    Signed-off-by: RyanOnTheInside <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    Co-authored-by: Rafał Leszko <[email protected]>
    Co-authored-by: Claude Opus 4.6 <[email protected]>
    3 people authored Mar 13, 2026
    Configuration menu
    Copy the full SHA
    8d0f105 View commit details
    Browse the repository at this point in the history
  2. Add graph mode backend (#664)

    * Add graph mode backend: graph executor, schema, state, and pipeline changes
    
    Introduce server-side graph execution infrastructure including graph schema
    definitions, graph executor for processing node graphs, and graph state
    management. Update pipeline manager, frame processor, and pipeline processor
    to support graph-based execution. Add graph inputs/outputs to pipeline schemas.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * Refactor and harden graph mode backend
    
    Squashed follow-up fixes and improvements:
    - Fix graph executor pipeline lookup to use node ID instead of pipeline ID
    - Fix review issues in pipeline processor and frame processor
    - Validate graph edge ports and clean up _load_events on unload
    - Acquire input_queue_lock when resizing graph queues
    - Remove pipeline throttler and add graph validation
    - Move VACE input video routing from runtime to graph construction
    - Remove redundant video-only normalization from pipeline_processor
    - Reject duplicate stream edges targeting the same input port
    - Fix unknown node_id falling back to broadcast in update_parameters
    - Simplify graph_executor.py build_graph wiring
    - Remove unused graph_state.py module
    - Remove old pipeline chaining remnants
    - Move build_linear_graph from frame_processor.py to graph_schema.py
    - Fix queue resize
    - Refactor pipeline reconciliation logic for readability and add unit tests
    - Fix ruff B905 lint error: add strict=True to zip() call
    
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * Fix extra params filtering to use output queues instead of hardcoded key
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    ---------
    
    Signed-off-by: Rafał Leszko <[email protected]>
    Co-authored-by: Claude Opus 4.6 <[email protected]>
    leszko and claude authored Mar 13, 2026
    Configuration menu
    Copy the full SHA
    a1c65e3 View commit details
    Browse the repository at this point in the history
  3. Remove 'extra_params' log (#678)

    Signed-off-by: Rafał Leszko <[email protected]>
    leszko authored Mar 13, 2026
    Configuration menu
    Copy the full SHA
    8526d8f View commit details
    Browse the repository at this point in the history

Commits on Mar 17, 2026

  1. DMX Art-Net input support (#657)

    * DMX input
    
    Signed-off-by: Thom Shutt <[email protected]>
    
    * Code review fixes
    
    Signed-off-by: Thom Shutt <[email protected]>
    
    * Revert logging changes
    
    Signed-off-by: Thom Shutt <[email protected]>
    
    * fix(settings): dedupe DMX param options by key in select dropdown
    
    Prevent same param from multiple pipelines appearing multiple times
    (e.g. 'zoomzoomzoom' in trigger) by tracking seen keys when grouping.
    
    Signed-off-by: Rafał Leszko <[email protected]>
    Made-with: Cursor
    
    * fix(settings): mark form dirty on logging toggle and guard port apply on listening state
    
    handleToggleLogging now sets dirty so the logging change is persistable.
    handleApplyPort checks updated.listening before clearing dirty/toasting
    success; shows an error toast if the server didn't start listening.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * fix(dmx): validate port range, normalize mappings, and fix channel indexing
    
    Adds preferred_port bounds check, normalizes mappings through
    mappings_to_dict before saving, and corrects off-by-one in unmapped
    channel logging to use 1-based indexing.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * feat(dmx): make DMX input opt-in (disabled by default)
    
    DMX server was always started and the frontend always opened an SSE
    connection, even when users don't use Art-Net. Now DMX is disabled by
    default and can be enabled via a toggle in Settings > DMX. The server
    only binds the UDP port and the frontend only opens the SSE stream
    when DMX is explicitly enabled.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * feat(dmx): add debug logging for incoming Art-Net packets
    
    Log the first UDP packet unconditionally to confirm connectivity, and
    log every packet (with source address) when verbose logging is enabled.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * fix(dmx): enforce consistent 1-based channel indexing and port validation
    
    Use Pydantic Field(ge=1024, le=65535) on all DMX port fields instead of
    ad-hoc manual checks. Align frontend channel inputs to 1-512 to match
    the server 1-based convention. Remove misleading dirty flag from the
    logging toggle since it already persists server-side.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * Switch to debug logs
    
    ---------
    
    Signed-off-by: Thom Shutt <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    Co-authored-by: Rafał Leszko <[email protected]>
    Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
    3 people authored Mar 17, 2026
    Configuration menu
    Copy the full SHA
    7ac6935 View commit details
    Browse the repository at this point in the history
  2. fix: remove FPS-based throttling from input source receiver loop (#701)

    The input source loop throttled frame reception based on pipeline FPS,
    creating a feedback loop: sleep(1/FPS) + receive_latency caused the
    effective input rate to always undershoot the target, driving FPS
    downward. For sources with non-trivial receive overhead (NDI, Syphon)
    this spiraled to ~5.6fps (v0.1.6) or ~2.8fps (v0.1.7). The v0.1.7
    regression was caused by the batch-level FPS tracking (66e8d31) being
    more stable — the old per-frame jitter partially counteracted the
    spiral via temporary FPS overshoots.
    
    Now the loop receives as fast as the source provides, matching the
    WebRTC camera input path. Backpressure is handled by put_nowait()
    dropping frames when the queue is full.
    
    Signed-off-by: Rafał Leszko <[email protected]>
    Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
    leszko and claude authored Mar 17, 2026
    Configuration menu
    Copy the full SHA
    33478e2 View commit details
    Browse the repository at this point in the history
  3. Tempo Sync Modulation - No Pipelines (#703)

    * Tempo sync api with bpm, beat_phase, bar_position, beat_count, and is_playing.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Small refactor.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Tempo sync api with bpm, beat_phase, bar_position, beat_count, and is_playing.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Small refactor.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * feat: beatsync with timed params
    
    Signed-off-by: RyanOnTheInside <[email protected]>
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Modulation engine and pipeline.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Development and experimentation of pipeline modulation with prompts, steps and others.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Linting.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Missing tempo sync panel.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Signing, merges, repair from bad rebase.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Small fix.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Fix small rebase issue.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Update to tempo sync document.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Code cleanup and refactor.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Linting/formatting.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Better handling.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Add libasound2 to Dockerfiles
    
    * Update doc and CLAUDE.md
    
    * Fix tempo sync docs: use uv sync --extra and remove libasound2 from Dockerfiles
    
    MIDI requires local hardware access so libasound2 is not useful in containers.
    Also corrects uv sync --group to --extra across docs.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Rafal Leszko <[email protected]>
    
    * Revert unnecessary DownloadDialog prop changes from tempo sync PR
    
    Remove isCloudMode and onOpenLoRAsSettings props that were added to
    DownloadDialog solely to suppress TypeScript errors in StreamPage,
    but were never actually used by the component.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * Fix quantize detection missing non-primitive discrete params
    
    transition (object) and denoising_step_list (array) were not caught by
    the typeof === "boolean" / "string" checks, so they bypassed beat
    quantization. Use a DISCRETE_PARAM_KEYS allowlist for key-based
    detection of known discrete parameters.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * Revert unintended package-lock.json changes
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * Extract tempo sync endpoints into dedicated router
    
    Moves the 5 tempo endpoints from app.py into tempo_router.py,
    following the same APIRouter pattern as mcp_router.py.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * Remove redundant mcp optional dependency group
    
    mcp>=1.0.0 is already in core dependencies, so the optional-dependencies
    entry was unnecessary.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * Improve TempoSource/TempoSync robustness and consistency
    
    Make TempoSource an ABC with abstract methods, add _enabled_lock for
    thread-safe access, prune dead notification senders, unify install hints
    to use `uv sync --extra`, and clean up redundant .get() fallbacks.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * Update uv.lock
    
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * Refactor tempo sync logic in PipelineProcessor
    
    Extract beat boundary calculation to a standalone get_beat_boundary()
    in tempo_sync.py and consolidate inline beat state handling into a
    dedicated _apply_tempo_sync() method.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * Fix review issues: lock consistency, encapsulation, logging, and lint warnings
    
    - Use `self.enabled` property (with lock) in `get_status()` instead of bare `self._enabled`
    - Add `PipelineProcessor.set_beat_cache_reset_rate()` to encapsulate private attribute access
    - Downgrade noisy per-frame "Extra params" log from info to debug
    - Convert f-string logger calls to %-style lazy formatting across tempo sync modules
    - Fix ESLint exhaustive-deps warnings in StreamPage prompt cycle effect
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * Removal of demo pipelines.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * Fix to clamping of of modulation result, cache state invalidation.
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    
    * fix: restore OSC SSE subscription and dmx_server global declaration
    
    The OSC SSE EventSource subscription was accidentally deleted when the
    tempo sync useEffect was added, breaking OSC parameter control. The
    dmx_server variable was also dropped from the global declaration in
    lifespan(), causing get_dmx_server() to always return None.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * fix: seed overflow, step list descending invariant, and tempo sync lock race
    
    - Use 2**31-1 as upper bound for random seed to stay within signed 32-bit range
    - Add forward pass in modulate_step_list to fix strictly descending invariant
      when values are clamped to hi; fall back to clamped original if range is
      too narrow for distinct values
    - Unify _source_lock and _enabled_lock into a single _state_lock in TempoSync
      so enable/disable/get_beat_state see consistent _source + _enabled state
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * fix: guard mido import and fix scheduler quantize_mode race condition
    
    Wrap `import mido` in try/except like the Link adapter does, preventing
    ImportError when the module is imported without mido installed. Also move
    _quantize_mode and _lookahead_ms reads/writes under the scheduler lock
    to eliminate a TOCTOU race where the mode could change between the
    initial check and delay computation.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * fix: make left sidebar sections scroll together as one unit
    
    Move overflow scrolling from InputAndControlsPanel to the parent
    container so Tempo Sync and Outputs scroll with Input & Controls
    instead of pushing it off-screen.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * feat: include Ableton Link in Electron app builds
    
    Add --extra link to uv sync in all three platform setup paths so
    aalink is installed automatically in the desktop app.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    * fix: include --extra link in uv run so aalink survives implicit sync
    
    uv run performs its own sync before executing, which can remove aalink
    installed during setup. Pass --extra link to uv run as well.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    
    ---------
    
    Signed-off-by: BuffMcBigHuge <[email protected]>
    Signed-off-by: RyanOnTheInside <[email protected]>
    Signed-off-by: Rafał Leszko <[email protected]>
    Signed-off-by: Rafal Leszko <[email protected]>
    Co-authored-by: RyanOnTheInside <[email protected]>
    Co-authored-by: Rafal Leszko <[email protected]>
    Co-authored-by: Claude Opus 4.6 <[email protected]>
    4 people authored Mar 17, 2026
    Configuration menu
    Copy the full SHA
    01a173c View commit details
    Browse the repository at this point in the history
  4. chore: bump version to 0.1.8 (#705)

    Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: leszko <[email protected]>
    github-actions[bot] and leszko authored Mar 17, 2026
    Configuration menu
    Copy the full SHA
    2aac541 View commit details
    Browse the repository at this point in the history
Loading