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