github 3ll3d00d/beqdesigner 2.2.0-alpha.24

pre-release3 hours ago
  • 100cacd7 - Record contract 1.5 as released on beqforge's side (0.2.9)
  • f4c5e1f7 - Bump markdown from 3.11 to 3.11.1 (#532)
  • 975670cc - Bump aiohttp from 3.14.3 to 3.14.4 (#530)
  • 0673781a - Fix the Windows test failures: an art-cache path checked with '/', and the job history read mid-write
  • 1b05eca4 - Record beqforge's side of contract 1.5 as built on its branch
  • f6b9935b - Load the review page on demand, so the app's bundle stays under Vite's warning (web parity)
  • cf49b934 - Show a title's projects and whether they were edited since the design (web parity)
  • 48d67696 - Read a title's audio streams from its file when the library lists none, in the browser too (web parity)
  • 9b92c79e - Select every title a filter matches, up to the 500 a revise takes (web parity)
  • b0151158 - Wait 5 s for the web tests' asynchronous checks, so a loaded parallel run does not fail them
  • 718ccf6f - Pick a band to ignore by dragging on the chart, shaded while asked (web parity)
  • 006dafc0 - Filter titles on adjustments and design runs (web parity)
  • 2106da56 - Publish every pipeline image as :alpha too, so a pull moves a container on
  • 8f4a862d - Smooth by averaging power over each point's fractional octave, not by integrating bands
  • ad0eb95f - TODO: web parity built on beqdesigner's side; beqforge's 1.5 left
  • 2b083b19 - Edit a design's filters in the browser, saved as a new design run (WP8)
  • 804699c7 - Keep every design run of a title, and redesign with adjustments from the browser (WP7)
  • 7890ebe5 - Contract 1.5 on the caller's side: adjustments sent, answered, kept and replayed (WP6)
  • db9066ba - Compare a title with its published BEQs, read on demand from the catalogue (WP3)
  • 7b0f36dc - Take a mono title designed from its one channel as current, not stale
  • dd4f0d55 - Draw a title's spectrogram and publication heatmap in the browser (WP2)
  • d56d8ef7 - Label a log frequency axis at 1-2-5, and style the new inputs and buttons (found in a real browser)
  • 6962a821 - Revise titles and choose their audio stream in the browser (WP5)
  • ed376619 - Edit a title's metadata, TMDB and artwork in the browser (WP4)
  • ea6b1080 - Make the review chart a workbench: limits, log axis, smoothing, all designs, responses, normalising, zoom (WP1)
  • fa8e0f8f - Keep every Titles filter change made before the page redraws
  • 4b8459f2 - Move the title page's metadata, catalogue-match and spectrum logic under pipeline/library (WP0)
  • ea1bbc13 - Contract 1.5: design adjustments and their outcomes (agreed, not built)
  • 323a1f2c - Plan web parity: design adjustments, kept variants, on-demand catalogue, binary spectrogram
  • 38b9dbcc - Plan web parity: design requests as a protocol, not an exception (WP6)
  • 67febacd - Plan web app parity: editing, visualisation, BEQ comparison and guided redesign (WP)
  • e5979f1e - Record the mono decision and its evidence (L5)
  • f775fa07 - Send a mono title's one channel as its decomposition in the library route
  • b877ad57 - Pass over a stream JRiver plays when it has fewer channels than the richest (F8)
  • acc8d5d0 - Contract 1.4: a design version names one algorithm, not one answer across hardware
  • b4f24ecb - Contract 1.4: the design identity, now built on both sides
  • f86d91bb - Select the titles a designer upgrade could change, and redesign them in one job (L3)
  • aadd949d - Say what a redesign would be made with, and warn when designers differ (L3)
  • 046d2e3d - Keep the design identity a designer says with each queue entry (L3, contract 1.4)
  • 9d488e4c - Design version: take beqforge's refinements (version 0, defaults left out, tolerance, settings detail)
  • 18bf168d - Agree a design version so a designer upgrade's effect can be selected (L3)
  • bc5d9353 - Extract what the library run could not: late audio, custom layouts, encrypted rips (L2)
  • c5798a2e - Plan the gaps left by the first full library run (TODO L1-L6)
  • 124bcc6f - Keep and show how well each design fits its target (contract 1.3)
  • 3f5e7582 - Contract 1.3 rule 6: residual_rms_db and residual_within_tolerance come together
  • 1de6fb9e - Designer contract 1.3: how well a candidate's filters match their target
  • 6abae81f - Filter the titles list on whether the designer declined
  • df0577f9 - Put the catalogue's author list beside year and content type
  • fec4b11c - Show device profiles and optimise for them in the filter edit dialog
  • e1853809 - Keep beqforge's divide-by-zero warnings out of an optimisation with a high-pass
  • ca4c1e9e - Filter the catalogue browser by any of its authors, not five fixed ones
  • a43d4def - Optimise a filter for device profiles, in freq/Q/gain, from the Devices menu
  • 758abbc0 - Let one redesign job send back up to 500 titles and design them in one run
  • 6811f62c - Send each designer endpoint as many designs as its /health says it runs
  • 219d8934 - Show the filter as a device stores it: its rate and coefficient precision
  • 717b46d2 - Say what the status strip counts are waiting for, not the bare stage
  • dfb7b5fd - Serve a designer from several endpoints, each used while it is up
  • e5fc6999 - Take the default stream's language from the first lossless stream
  • 2e7c1480 - Give the stages cancel test's worker 30 s to finish, not 5
  • f34c9103 - Pull the image's base images from Docker Hub, logged in
  • d096a9ba - Extract a title's richest audio stream by default, not its first
  • 053aeeb5 - Let the history test's poll pass over a jobs.json being replaced on Windows
  • c276b0ac - Sort the titles table from its headings and filter it from a row under them
  • 03847e1a - Show the review page's metadata as one line under the title, genres by name, commentary full width
  • 2c5d6bad - Walk the JRiver browse path before listing, so a restarted server lists its titles
  • 275dcdfc - Write the test build's commit to its VERSION file
  • 7b996496 - Wait for the saved history, not the job's state, before reading it
  • aa0aa16a - Leave a linked framework to the check of the one it links to
  • 20066c7a - Give the macOS app its real version
  • 4293c0e0 - Zip the macOS app with its symlinks, and check the bundle before shipping it
  • 61741387 - Bump fastapi from 0.142.2 to 0.143.0 (#526)
  • 8812b7de - Bump pydantic from 2.13.5 to 2.14.1 (#527)
  • d8434109 - Revert "Send a mono title's one channel as its decomposition in the library route"
  • 093c6d60 - Send a mono title's one channel as its decomposition in the library route
  • d5aa8371 - Lock the index with a lock folder where a share refuses byte-range locks
  • 978df2f4 - Let the discovery index live apart from the work directory (run.index_dir)
  • 508efd5b - Say when the index folder refuses file locks rather than blaming another program
  • 9b629271 - Wait for background work before Python finalises, so closing cannot hang
  • 3f816a7c - Take the index write lock before a scan writes anything
  • f553beff - Show scan status in one panel: the scan shown, when it ran, and what a scan is doing now
  • b85353d7 - Say plainly why a source could not be listed and why a scan failed
  • b72bf1be - Fill in a shared profile's JRiver password when the work list scans or runs
  • 147a6d07 - Discover the default library profile when no path is saved
  • d8e6e08b - Align application identity and library profile configuration paths
  • da04db97 - Report incomplete JRiver credentials before allocating a client
  • e82be55d - Support explicit per-title redesign from web review
  • f7db426e - Add scan and rescan actions to web status and titles
  • e35ec9f8 - Bump numpy from 2.5.3 to 2.5.4 (#529)
  • 1a6f41d2 - Bump @tanstack/react-query from 5.104.1 to 5.104.2 in /src/main/web (#528)
  • 7dc3faf1 - Pin the compose example's designer to beqforge 0.2.1
  • 7fb452a9 - Send a mono source's one channel to the designer as FC
  • 3829ff9e - Record a project's wavs relative to it (${PROJECT_DIR}/mono.wav) and resolve that on the desktop
  • 9779d9cd - Find a project's wavs beside it when the path it records is not there, so a project the service wrote opens with its signals
  • 05f2f4a3 - Turn a schedule of listed titles off once a run leaves none of them to do, and say why (API 1.4.0)
  • 2cd3042f - Draw the web review chart linear from 1 to 160 Hz, like the desktop's charts, not log over everything measured
  • 3fe59f05 - Document the browser app and archive its plan (W6)
  • 37b7cd52 - Give a design 15 minutes by default, not 5: beqforge took 379 s over one film, and the requests queued behind it timed out too
  • fcb603da - Add the browser app's Titles and Review screens (W5)
  • b4b42655 - Add the browser app's Status and Jobs screens (W4)
  • 1e7d1602 - Scaffold the pipeline service's browser app and serve it at /ui (W3)
  • e578b5f3 - Let a person decide a title over the pipeline service's HTTP interface (W2, API 1.3.0)
  • 91951b0e - Note uPlot's planned 1.7 release in the web review plan
  • 4ba35cf5 - Pin the web review app's libraries to current releases: React 19, TypeScript 6.0.3 (7 breaks the type generators), Node 24
  • 4e0ef5cd - Move the review decision rules and chart curves into the Qt-free pipeline (W1)
  • e5d23faa - Plan a web review app for the pipeline service (design, not built: W1-W6)
  • ed506a86 - Pull the image's base images from ECR Public, as Docker Hub refuses GitHub's shared runners with 429
  • 2ddd708e - Document run.disks and the higher extraction limit for users
  • 1efd5a54 - Allow up to 16 extractions at once, one per disk of a pool; design stays at 4
  • 97af009b - Read each disk of a JBOD pool one title at a time when extracting (run.disks)
  • 14c19a30 - Give each job event type its own fields and words, so the event stream is readable by machines and people
  • 6dcc6974 - Keep a title's ffmpeg progress every 5 seconds, once, so it no longer floods the job's events
  • 7630dc3b - Check the title header fits one line, not that the nav row is shorter than two
  • bcd2238b - Never let the runner's free disk space decide whether the library tests pass
  • c8ef1691 - Build the image's docs assets natively, as node dies of SIGILL under QEMU arm64
  • 4653d379 - Keep Blu-ray titles working without ffprobe, and test releases as CI does
  • 6f0d6163 - Write the E2 acceptance runbook
  • 340c3068 - Archive C1: the first release image is published for amd64 and arm64
  • 3316ef96 - Never read a held lease as free while its heartbeat rewrites it on Windows
  • 3ec6b5d3 - Take the version from the tag only
  • cf10365e - Describe the release work in the architecture reference
  • 9d23d65f - Bring the release plan up to date with what is built
  • 8533ad57 - Rescan when the work list is opened more than 12 hours after the last scan
  • 09696bc8 - Bump docker/setup-buildx-action from 3 to 4
  • 1efe60be - Bump docker/login-action from 3 to 4
  • 084a33cc - Bump fastapi from 0.141.1 to 0.142.2
  • 762028a3 - Make the hand-off test wait on what it means, not on thread order
  • 51965ad2 - Choose a Blu-ray's playlist as the library plays it, and read its streams from the feature
  • 4ec02349 - Record main green on every platform for R7 and C1
  • 29965c29 - Find posters in MC's cover-art folder through a path mapping
  • 56ea53dc - Fix what the first CI run of the release work found
  • c3057914 - Extract the audio stream JRiver plays, and keep stream choices across rescans
  • dd402273 - Say whether TMDB is looked up, how fast a run goes and how to start a catalogue
  • 6283cbfc - Let a desktop review a work directory the container wrote, and say how
  • 909224f2 - Compress a published title's multichannel audio and stop a run before the disk fills
  • fb9ab527 - Record which designer and build designed each entry
  • dfad1c49 - Send the playback chain to the designer and show the reviewer what was sent
  • 6afd37f1 - Say which stream a run extracts and what it found
  • 0fc810b0 - Read a title's audio streams from its file when the source lists none
  • 8e12647e - Design a title whose audio is current without an extract stage
  • 62723d6a - List each audio stream with its rate, bitrate, language and title
  • b8a13a54 - Replay a real JRiver server's responses, and keep same-named browse nodes apart
  • 14676aab - Archive R3: the pinned designer image is published
  • 50ebb1c8 - Pin the compose example's designer to beqforge-designer 0.2.0
  • 7bc1812c - Give a queued design request time to wait behind the others
  • d24e08c5 - Run the designer beside the pipeline service in the compose example
  • 5f5a5460 - Skip scheduled runs while the designer does not answer, and report it
  • 38cc415d - Report unavailable dependencies without remembering them as title failures
  • d1e42df1 - Read the publish aggregate test's JSON as UTF-8 on every platform
  • 1b586e1f - Plan the initial release milestone for unattended Docker catalogue runs
  • d35429e3 - Bump docker/build-push-action from 6 to 7 (#520)
  • b3257523 - Display selected proposed filters in the title candidate pane
  • a11ac812 - Move project opening into a single top-bar dropdown
  • f1b2648c - Unify title controls and scope review navigation to review titles
  • e5337c08 - Compact the title page header into one wrapping row
  • ba7d12e5 - Normalize combined audio codecs before matching published BEQs
  • 29cbb731 - Always use Speclab line colours for library review charts
  • 75d01409 - Show the selected design beside published BEQ images without a legend
  • 7fe57c3a - Place published BEQ controls beside the preview image
  • 98703ccf - Precompute and cache title spectrum comparisons
  • 79ea3399 - Bump docker/setup-qemu-action from 3 to 4 (#518)
  • bd7309f3 - Show published BEQs and catalogue images on library title pages
  • 70e2640b - Add publication spectrum comparison to library title pages
  • 6123c2ef - Show indexed failures separately from retry attempts and run details
  • ac3744e1 - Guard Review Folder publish and commit with the work-directory lease
  • 4d705bf4 - Consolidate prioritized TODO and archive completed design plans
  • 938bc51b - Designer by reference: checked end to end against beqforge 38ef5a0 (same design, same cache key, by reference and inline); /health may carry other fields
  • 6ba19672 - Plan: D1.4's commit hash
  • 8f026ff0 - Designer by reference (D1.4): a profile's designer can be by_reference: true, sharing the run's work_dir; D1 built
  • 9697a76f - Tests: every test leaves the designer registry as it found it (service tests left 'rolloff' registered, failing the batch dialog's no-designers test under -n auto)
  • a303d20e - Designer by reference (D1.3): library and batch designs name the WAVs their arrays came from; WAVE_FORMAT_EXTENSIBLE accepted and named in the contract
  • 40537731 - Designer by reference (D1.2): http_designer(shared_root=) sends arrays under the root as file + sha256, checks /health once first; Session.design passes sources to designers that take them
  • bfff8e51 - Designer contract 1.2 (D1.1): arrays by reference and GET /health specified, with request and health schemas and conformance rows
  • 81a32e23 - Designer by reference: measured the inline wire cost (8.4 s vs ~2.2 s by reference on a 2.7 h 8-channel title); WAV decoding defined by arithmetic, not soundfile
  • 03a9ac62 - Designer by reference: beqforge's answers (e96129a) folded in; D1 parked behind beqforge R2a
  • 63976c20 - Designer by reference: C3 already built, per-array digests are a check not beqforge's key; questions for beqforge (§6)
  • 989e1132 - Designer interface: rejected designs share the decline boundary; requests by reference designed (beqforge R2), not built
  • 19dbae1c - Rejected designs: a reason is never split, and one need only be non-empty, as beqforge sends them
  • 60f0ef73 - Plan: rejected designs (designer contract 1.1) built, with the title page's commit
  • 3497c43a - Title page: rejected designs can be viewed and, after a confirmation, accepted as an override
  • 13cda021 - Review queue: rejected designs are kept on the entry, and a person's pick of one is an override
  • 8818b106 - Designer contract 1.1: rejected designs are validated, decoded and carried on the outcome
  • 5e2abfd6 - AGENTS.md: commit after every distinct feature, fix or task
  • 62754ddd - Publish: a title's filter record and images go in a folder named by its first letter
  • 49176b73 - Work list: new and running rows are not shaded in the selection colour
  • 1e909e73 - Title page: no Accept or Reject for a title whose last extraction or design failed
  • d6667086 - Work list: a run releases its lease before it says it ended; a test's unused modal answer dies with it
  • d9808b7e - Work list: one place for a decline, grouped title-page buttons, Skip moves on, Retry from the list
  • c2c3df0d - Windows CI: in a narrow metadata column every label goes above its field
  • c171b114 - Windows CI: the metadata form fits the narrowest window with Windows' fonts; the last native-path test fix
  • 4061e7f3 - Windows and macOS CI: decimate with swr where ffmpeg has no soxr; native paths in what is shown; portable tests
  • e38d080c - Tests: answer a modal dialog once it is showing, not from the first event loop pass
  • e940279f - ffmpeg: a failed command logs its stderr
  • 0d9067a1 - Tests: a message box no gui test answers fails the test with its words, instead of hanging
  • 99be3df0 - CI: a timeout on every job, ffmpeg on every OS; tests that run ffmpeg skip without it
  • 7071bef9 - Batch extract: a progress report after the result leaves the title finished
  • 76faab1d - Pipeline extract: report progress complete at ffmpeg's progress=end
  • 8044acd1 - ffmpeg progress: read the reports still waiting when the bridge stops; CI dumps stacks of a hung test and caps the job
  • 92397dd1 - CI: run every OS to the end (fail-fast off); the JRiver no-disk test guards only media paths
  • 61fb8105 - Work list: set the window's state before setupUi, so no property raises in connectSlotsByName
  • 73406a60 - CI: install libpulse0 (needed by QtMultimedia) and ffmpeg on Linux runners; skip the BDMV extract tests when ffmpeg is absent, since it is optional
  • 287e1304 - Bump metcalfc/changelog-generator from 4.8.0 to 5.0.1 (#514)
  • 593c7f0f - Bump dependabot/fetch-metadata from 2 to 3 (#510)
  • 1f0e15fd - Plan: record the amd64 image build and smoke run passing locally at 7db992d; C1 narrows to the arm64 build and GHCR publish, left to the first tag's CI run
  • 7db992da - Plan: consolidate built work into the design as current state; archive the F1-F5 and service plans
  • a383961d - Plan: record F5d built in 12d875e; F1-F5 are all built, so they leave the outstanding list
  • 12d875ef - Service: a run job joins the run job in progress, and a job waits for, or hands its titles to, a work-list or CLI run (F5d)
  • 7fba2ac7 - Plan: record F5c (lease and join inbox across processes) built in dc527f5
  • dc527f51 - Library: every run holds the work-directory lease, and extract/design work is handed to the run holding it (F5c)
  • 90de013b - Plan: record F5b (the work list joins a run in progress) built in ae1a086
  • ae1a086c - Work list: while a run is going, more extract/design work joins it and Publish/Commit wait for it (F5b)
  • 30983aab - Plan: record F5a (a run takes joined work) built in 3d38f76
  • 3d38f761 - Library: a run's extract/design phase takes more titles while it lasts (F5a)
  • 16fe0250 - Plan: record F1 (Working chip) built in de45afe
  • de45afeb - Work list: a Working chip for the titles the run has queued or in hand, and a title moves to Design once extracted (F1)
  • 28f67112 - Plan: record F3 (decline as a flat candidate) built in 49bbf34
  • 49bbf342 - Review: a decline is one flat candidate a person can accept and publish as 'does not require BEQ' (F3)
  • ded35729 - Plan: record F2 (projects at extraction) built in 7420a54
  • 7420a547 - Library: write a title's .beq projects, flat, as soon as it is extracted (F2)
  • cbe72510 - Plan: record F4 (failed extraction stays extractable) built in c58a4b4
  • c58a4b42 - Library: a failed extraction stays extract work that a person's run tries again; Revise is not offered for it (F4)
  • a01d7a2c - Plan: design the work-list feedback changes F1-F5 (working chip, projects at extraction, decline as flat filter, failed extraction stays extractable, joining a run in progress)
  • 063c9226 - Title page: a declined title shows the designer's findings in as much detail as a candidate's commentary
  • b4d6ed28 - Plan: note an intermittent ffmpeg-progress test failure seen once in the parallel suite (T2)
  • 32829a2d - Test: load docker/smoke.py by path so the service image test collects under the documented pytest command
  • db0917c9 - Plan: note an intermittent, unreproduced hang in the parallel test suite (T1)
  • 4eb9a31a - Title page: commentary is wrapping text, not a two-column table
  • f9b3f9e1 - Library: a Blu-ray JRiver reports as BDMV/index.bdmv is its disc folder, not a file to probe
  • 4232e557 - Plan: record local S5 smoke evidence
  • 622d197e - S5: exercise image smoke fixture through real service pipeline
  • 5e2eed52 - Plan: mark S0-S7 implemented and retain CI smoke validation
  • 73ccfde5 - S7: record delivered pipeline service design
  • e30c0c23 - Plan: record S6 webhook completion
  • af261fcf - S6: deliver configured job webhooks with typed payloads
  • 1d9cf5f4 - Plan: record S7 documentation before notifications
  • faafbba0 - S7: document pipeline service and container setup
  • cc3614c4 - Plan: record S5 image implementation and CI smoke pending
  • 80cab0dd - S5: package Qt-free pipeline service image and smoke workflow
  • d87f22a3 - Plan: record S4 scheduler completion
  • df93b2af - S4: schedule automatic extract and design jobs
  • 97d537cf - Plan: the pipeline service's status says S0-S3 are built, with each chunk's commits
  • 99d2071c - S3: the pipeline service's HTTP interface -- typed OpenAPI 3.1, Swagger UI with Try it out, bearer auth, job events as SSE
  • cb9f371f - S2 done: a service job holds the work directory's lease, and the work list's runs and one-step publish do not start while it is fresh
  • ca43161e - S2: pipeline.service -- service.yaml and environment secrets, a job's profile read per job, and the JobManager
  • bc7afd30 - The work list's event redaction moves to model.execution_events (redact_text, redact_argv, redacted_event, event_text), Qt-free, for the pipeline service's job events to share
  • 8f6ff970 - S2: the command line's profile-to-run resolution moves to pipeline.library.setup, argparse-free, so the pipeline service builds its runs the same way
  • ceabb76f - S1: select titles by kind and year (--kind, --year EXPR) in the shared Selection, answered in SQL by the index
  • f9d66e5e - S0 done: a whole pipeline Session runs with Qt blocked, and every pipeline module is checked
  • 4929e931 - S0: signal's Qt side (the table models, the add/merge/select dialogs and their loaders, the smoother) moves to model.signal_qt, so model.signal -- and with it every pipeline module -- imports without Qt
  • a217bece - ffmpeg progress: let the operating system pick the UDP port, so two processes never bind the same one
  • 579f542b - S0: ffmpeg's Qt side (AudioExtractor, the probe and command dialogs) moves to model.ffmpeg_qt; Executor.execute() imports it when the GUI runs an extraction, so run_sync() and the module import without Qt
  • 5d136d3f - S0: DspType gets its own module and minidsp's Qt side (FilterPublisher, the XML file picker) moves to model.minidsp_qt, so the pipeline's XML export imports without Qt
  • 55c3425c - S0: the Preferences and chart-limits dialogs move to their own modules, so model.preferences and model.limits import without Qt
  • 9cc847f1 - Test: stop every Review folder answer timer when its test ends, and expect the one publish confirmation there is
  • 62bb3060 - Tests: deliver what the fake pipeline emitted before asserting on the work list, and release a held run whatever happens
  • f3b2deed - gui tests: answer the work list's "Run in progress" close question without a dialog, so a test that ends with a run going cannot hang the suite at teardown
  • a7623a75 - Design: pipeline service -- HTTP control plane with OpenAPI, auto mode, webhooks and a Docker image (design, not built)
  • c5fc2b23 - Docs test: skip hidden legacy aliases; the README now names --category-folders, --movies-dir and --tv-dir
  • caf90f6a - Tests: published-file paths follow the category folders the work list now defaults to (movies/), in the real-pipeline, review and revise tests
  • 38380003 - Test: the fake queue entry for the category-folder commit results carries published_stem
  • 8f22f84c - Test: the DVD extract fake executor reports a mono mix spec like the real one
  • a8d0edb9 - CI and readme: run the tests in parallel (-n auto)
  • c7b70ff6 - Tests: add pytest-xdist and document running the suite in parallel (-n auto)
  • bd30d904 - gui tests: delete each test's windows deterministically so the garbage collector cannot destroy one mid-test and segfault the run
  • ecaa3438 - Test: the drift redesign hand-off used a real run that was still going at teardown, which hung the suite on the close prompt
  • 3293f44d - Tests: default to the offscreen Qt platform so the gui tests do not stall on a real display
  • 14cffd08 - Clear the 'Loaded project' status message after ten seconds so it stops covering the main window's buttons
  • 14757bcd - Library work list: a title moves on as soon as its design finishes, not when the whole batch ends
  • dc7408ef - Library work list: several titles in flight share one status line instead of overwriting each other
  • 0ebdbbe2 - Fix documented test command: target src/test/python and run offscreen
  • efb01029 - Fix review window test expectation for movies folder
  • e174937a - Share the heatmap drawing between Analyse Signal and the published image
  • 7bc627fa - Library work list: one-step accept, readable names, movies/tv folders, heatmap, faster publish
  • ca2d3a9c - bump deps
  • 8b9edb2e - Support movie and TV catalogue folders in library publication
  • bd0546a4 - Mark J1 catalogue migration complete
  • 01d9ec50 - Verify configured catalogue source round trip
  • e33a48ae - Record J1 migration progress and repository dependency
  • a72c6738 - Migrate library publishing surfaces to filter records
  • aa17612a - Record title-page progress behavior in library plan
  • 92d88811 - Show title progress on library detail page
  • cf61da54 - Record persisted run details in library plan
  • 48c2fc9a - Restore library run details after restart
  • 5d2b7877 - Record readable extraction folders in library plan
  • ffdcf1a5 - Use readable folders for library audio extraction
  • 391ec1b6 - Record existing-title codec backfill in library plan
  • cb9456ff - Backfill JRiver codec metadata on library rescan
  • a5db5247 - Record JRiver codec request in design backlog
  • 62270b40 - Request JRiver audio codec fields for automatic metadata
  • 0842fc03 - Match library title chart colors to main chart
  • 796a19b9 - Record design sweep and extraction commit in plan
  • e256b18b - Consolidate design history and reuse library multichannel extraction
  • e21d5f64 - bump deps
  • 84135ec7 - Record JSON test migration in library sync plan
  • 84cf71cc - Align library workflow tests with JSON records and fix related regressions
  • 19bab1cf - Record chunk 45c project remediation
  • d6288363 - Write bass-managed multichannel projects
  • 48d3a9c0 - Record review chart follow-up in library plan
  • fd5b72ff - Show average and peak curves in review charts
  • aa691f01 - Record partial work-list feedback remediation
  • 6b55907b - Show current work-list attempts and extraction failures
  • 3bee11f3 - Plan work-list feedback remediation
  • 4f399b02 - Record work-list row expiry fix
  • bcbcc57c - Expire work-list row state between runs
  • aa10ca5f - Record work-list event accounting fix
  • 05e562fc - Fix work-list commit event accounting
  • dbb72aa2 - Record work list run remediation commits
  • 79f679dd - Preserve work list run detail reading state
  • 1585a590 - Fix work list aggregate run progress
  • a256ab3c - Fix work list run history lifecycle
  • 1b824234 - Require tests for every code change
  • f7031754 - Document parallel work list regression coverage
  • 29706773 - Add work list parallel run regression tests
  • 0733b368 - Record final work list review fix
  • b9a667df - Clear failed work list progress
  • 499b24cb - Record parallel work list review fixes
  • aeae7d7e - Fix parallel work list run details
  • 9fed7043 - Record completed parallel library runs plan
  • 25aba01b - Verify and document parallel library runs
  • cb4ba278 - Record per-row library run details UI
  • 3bc82464 - Show live library run status and details per row
  • d2847cba - Record bounded library stage scheduler
  • 70193ee5 - Schedule library extraction and design independently
  • 997ff5ac - Record parallel work list chunk 42a
  • b1dba10d - Add library run execution events
  • 87d1bcf0 - Align library channel extraction with analysis
  • ef9de96d - Plan parallel library work list runs
  • 080c54d2 - Run redesigned titles immediately
  • acd5790a - Record stream selection chunk status
  • 8cc05625 - Add selectable JRiver audio streams
  • 14591677 - Add JRiver playback stream resolver seam
  • 683fc4e8 - Plan JRiver selected audio metadata
  • c55a1b6e - Clarify review chart source labels
  • 92d73234 - Collapse repeated Blu-ray playlist clips
  • 01ad23d5 - Keep extraction progress empty before ffmpeg reports
  • 17a23a8b - Run the next machine action on title double-click
  • 2bde8337 - Load JRiver metadata into typed review controls
  • be109523 - Report ffmpeg extraction progress in work list
  • cd2d7b76 - Add per-column library work-list filters
  • 1bf4bf2b - Update pipeline stage tests for JSON catalogue
  • 78badcb4 - Show in-flight work-list progress
  • 73bdeb2b - Clarify JRiver profile copies and retries
  • d941c172 - Normalize JRiver path mapping separators
  • 7dc67872 - Make library extraction failures actionable
  • ed1e8353 - Consolidate library sweep-up status
  • 27763784 - Close sweep-up review gaps
  • 57118100 - Close library workflow intentional boundaries
  • e8611458 - Load JRiver zones asynchronously
  • 8f51dd4c - Add optional TVDB library metadata lookup
  • 35b5cad0 - Add library path mapping guardrails
  • ea567451 - Make title-page back navigation explicit
  • cb3f3561 - Show ffprobe diagnostics in extraction dialog
  • 7e24a7de - Require explicit save for library settings
  • fa190664 - Use picker-only JRiver browse locations
  • d926c7b0 - Guide library settings setup flow
  • e3cc6ac9 - Allow resetting and recovering library profiles
  • d68a7a05 - Add manual library design option
  • 9fc46279 - Simplify catalogue destination settings
  • 628a13c1 - Make review queue part of library workspace
  • 3a5ffda0 - Create default profile without an extra dialog
  • 61e9866c - Add Library Work List shortcut
  • 7d79c0de - Use Videos folder for empty sync directory pickers
  • b6df6cd5 - Track JSON output completion as a sweep-up chunk
  • 6c45efbb - Publish library filters as catalogue JSON records
  • 8c436f07 - Record sweep-up baseline completion
  • c2cbda7f - Plan library sync sweep-up
  • 68f4a76d - Record documentation chunk completion
  • e2f09bc6 - Document library work list workflow
  • 121d5ae5 - Keep the TMDB API key out of a run's metadata errors
  • a9eea699 - Say 'work list' where the UI still said 'Library Sync'
  • 74f355d5 - Record chunks 27a-27c in the plan; mark the old dialogs' documentation as history
  • 59800246 - Retire the Library Sync and Review dialogs; add the Review Folder window (chunk 27c)
  • 3172fef0 - Work list: the title page, metadata and artwork, revise, bulk accept (chunks 27a-27c)
  • 7ddd415b - Find accepted and published titles designed under other settings
  • d869971a - TMDB search and details requests time out
  • 90ee80a4 - Fix review findings: a refused whole-profile edit is not applied, designer combo keeps the name
  • eda7b840 - Record chunk 26c's commit hash in the plan
  • c5b6ec64 - Chunk 26c: work list settings drawer
  • 55375b2f - Fix review findings: record the chunk 23/24/25 review fixes in the docs
  • 16fec87c - Fix review findings: publish digest includes image owner/repo and report spec
  • 2b2fa773 - Fix review findings: discovery index locking, empty listings, tv_mode switches, season fingerprints, refresh, rebuild, search parity and small cache fixes
  • f9873971 - Fix review findings: restore the start-failure guard (a mutation-check leftover was committed)
  • af5087fc - Fix review findings: record the 26a/26b review fixes in the docs
  • d95d33a4 - Fix review findings: drive Publish and Commit through the real pipeline and git
  • 7fc14533 - Fix review findings: work list closing, index handling, result shapes, push-only commit
  • 2f5e78c2 - Fix review findings: union id/path/claim/playlist clashes, profile round trip and CLI flags reaching the union, config errors exit 2, failed-earlier warning
  • 6d22e226 - Fix review findings: ignore path globs and brackets, year/title bounds, wide season ids, season artwork candidates
  • 613827a9 - Fix review findings: record chunk 21/22/25 review fixes in the docs
  • f5f8e612 - Fix review findings: git paths, git errors, commit/revise safety, publish isolation
  • a5f74f4d - Record chunk 26b's commit hash in the plan
  • 9906ec8b - Chunk 26b: work list actions (select, run, cancel, retry, publish, commit)
  • 3b23701f - Record chunk 20's review fixes in the implementation order
  • 6b5c02f0 - Fix review findings: candidate pick lost on Save, Enter clicks Reload TMDB
  • c6fa36fb - Record chunk 26a's commit hash in the plan
  • 0651a0f9 - Chunk 26a: work list window (read-only)
  • 521342ef - Record chunk 25's commit hash in the plan
  • fabf0ad2 - Chunk 25: stage entry points and selectors
  • 3131ffa1 - Record chunk 24's commit hash in the plan
  • ad34b09f - Chunk 24: discovery index and states
  • 2e107a4c - Record chunk 23's commit hash in the plan
  • 5859d2ad - Chunk 23: catalogue profile, ignore rules and the union of several sources
  • 958e9617 - Record chunk 22's commit hash in the plan
  • 84d50265 - Chunk 22: revise backend -- reopen, redesign and re-extract a title
  • 1ac09033 - Record chunk 21's commit hash in the plan
  • a464c2c3 - Chunk 21: split publish (write) from commit (commit + push)
  • 97e03f0b - Record chunk 20's commit hash in the plan
  • 12765ad7 - Chunk 20: fixes to the Library Sync and review dialogs that need no redesign
  • 7d4423f5 - Record chunk 19's commit hash in the plan
  • 7842637d - Chunk 19: verify the workflow rework's open questions, pinning findings with strict xfails
  • 57d2fbb3 - Design the library workflow rework and split the plan into an index plus topic files
  • 86a193ba - Consolidate the plan's open items, including missing user documentation
  • 66182c88 - Document the library CLI
  • 3f70a2dc - Let the library CLI register a designer
  • 54e4ad49 - Add tv_mode: a filter per episode, or a whole season as one track
  • 810b564a - Carry a TV item's season and episodes into its metadata
  • 93ecf1a5 - Mark the episodes a filter covers in BEQ metadata
  • 71921b97 - Add DVD-Video support
  • f0217fa5 - Edit the JRiver external-id fields per server in Preferences
  • e82001f6 - Report a Blu-ray disc's folder, not JRiver's index.bluray pseudo-file
  • b3f0b0b3 - Make the JRiver external-id fields configurable, with real defaults
  • a1de370e - Add per-server path mappings for JRiver's Windows paths
  • 17f6f99f - Fix JRiver year and TV classification found against a live server
  • 25b90daf - Show a JRiver server by the FriendlyName it reports
  • dc822f7e - Make saved JRiver servers editable and test connections in the background
  • 2d1ac745 - Add a JRiver browse-node picker
  • 03f26c2c - Add a library source picker to Library Sync
  • d1805dc6 - Add a filesystem LibrarySource
  • fabeef10 - Move JRiver server management to a Preferences pane shared with Library Sync
  • 0bac2037 - Plan shared JRiver connections and a library source picker
  • 78bcb7aa - Report preserved project edits and align the sibling project on publish
  • 05305569 - Report refused publishes in the GUI instead of counting them as published
  • e32ff94e - Resolve report artwork for library runs
  • ba4ad461 - Keep a reviewer's edits when a pending entry is redesigned
  • 5bead9f6 - Update library sync plan for fixes 5-7 and the mono extraction fix
  • d8a00398 - Require the active plan to be updated after each commit
  • 2eda5303 - Fix mono-source extraction: use a bare channel expression for the mono mix
  • 34ce1f6a - Skip the kept multichannel extraction for a known mono source
  • ce08fc59 - Cover audio stream, playlist and multichannel in the design fingerprint
  • 9661b63c - Resolve library metadata only when a design runs
  • ebcbcff0 - Reconcile library sync plan with implemented state
  • 1ebaa4e5 - Mark library pipeline chunks complete
  • 9da7aea0 - Add library sync dialog
  • e23e03d8 - Add library pipeline CLI
  • bc8179b6 - Add library pipeline orchestration
  • d870d6d4 - Add JRiver library browse source and design cache
  • dd5dd563 - Add idempotent extract cache; let Session.extract() fix its output name
  • 7d0bac52 - Add LibrarySource abstraction (interface + registry, no implementation yet)
  • 407bd91c - Write .beq project files per title and publish from them, not the raw candidate
  • 964f36ef - Add review queue metadata + artwork editor, wire poster into publish
  • e7ea3ed8 - Thread channel_scope onto Applied/AlternativeDesign; cover integration gaps
  • d4a8e2a0 - Add designer conformance test spec for filter designer implementors
  • d3513fea - Bump matplotlib from 3.11.1 to 3.11.2 (#516)
  • 9706a168 - Merge branch 'main' of github.com:3ll3d00d/beqdesigner
  • 3b6a638d - Hide design/review fields until a designer is registered
  • e869571f - Phase 5: fold Designers and Batch Design dialogs into Batch Extract & Design
  • c567571f - Phase 4: Run Batch Design GUI
  • 28a86db0 - Phase 3: Designers settings GUI
  • 7760cf05 - Phase 2: formalise the HTTP binding and publish its schema
  • 6866f401 - Phase 1: HTTP designer binding
  • 0ad6c5dc - Add HTTP designer binding implementation plan
  • 8a8b4dcf - Phase 4: publish the review queue schema
  • d215ce25 - Phase 3: review-queue GUI in beqd
  • 73c715c6 - Phase 2: apply a reviewed decision and publish it
  • 19ab8067 - Address beqanalyser feedback items 1-2: gain_reduction_db and bass_management
  • 20219873 - Address beqanalyser feedback items 4-6 on designer-interface.md
  • 175f4de7 - Phase 1: batch-design driver + on-disk review queue
  • 5c84903d - Add candidate-review workflow implementation plan
  • 4bfe3d5d - Let a designer return several ranked filter candidates with per-candidate commentary
  • 8648e707 - Bump scipy-stubs from 1.18.0.1 to 1.18.1.0 (#513)
  • ef7b3d69 - Add BDMV playlist support for batch extraction
  • fe0f4a07 - Fix signal-view delete selection and LinkwitzTransform save/load round trip
  • 4fcb2093 - Add per-signal filter presets, saved with the project
  • 3e2cd455 - Rewire SaveReportDialog's filter-table formatting onto pipeline.publish.report
  • e063dd60 - Rewire FilterDialog's shaping filters onto pipeline.filters
  • 5a368b54 - Rewire Executor.execute() onto run_sync(), eliminating duplicate dispatch
  • 366d30bc - Rewire CreateAVSPostDialog's TMDB lookup onto pipeline.metadata
  • cb45526a - Trial pytest-qt for real Qt widget testing
  • 39a25df3 - Phase 5: Session orchestrator + Ready Player One acceptance test
  • c42e1ac3 - Phase 4: git publish mechanics for the XML and images repos
  • 1cb6b688 - Resolve D3: beqcatalogue publish conventions, from reading its ingestion code
  • f75aa895 - Phase 3: headless art and report rendering
  • 7ff3e882 - Phase 2: metadata, designer contract, and XML
  • c35852d4 - Phase 1: make the existing pipeline callable
  • 0ab16243 - Phase 0: pin the beqcatalogue publish round-trip contract
  • d069a767 - Add implementation plan for the headless BEQ pipeline
  • 904706ac - Add headless BEQ pipeline plan and pluggable designer interface spec
  • 9935307c - Bump numpy from 2.5.2 to 2.5.3 (#515)
  • d765e1a0 - Bump scipy from 1.18.0 to 1.18.1 (#512)
  • 773568ee - Bump metcalfc/changelog-generator from 4.7.0 to 4.8.0
  • eeaeae89 - Bump numpy from 2.5.1 to 2.5.2 (#509)

Don't miss a new beqdesigner release

NewReleases is sending notifications on new releases.