chore(release): promote beta to stable - #132
Draft
github-actions[bot] wants to merge 15 commits into
Draft
github-actions[bot] wants to merge 15 commits into
github-actions[bot] wants to merge 15 commits into
Conversation
* Added Search filters,Added file names,Implemented CLI,MCP and HTTP projections * Fixed the issue of import in the file named mcp.py * Fixed the same import issue in the file named ports.py * Fixes of media_service.py and test_frontend.py as proposed by the Reviewer * Missed the service variable that was defined at the top of the function * align workspace actions, cursor scope, and ready-only frontend listing * Minor changes * fix(media): preserve filtered pagination and matching --------- Co-authored-by: Talha <tamjad91@gmail.com>
* docs(benchmarking): refresh multimodal model direction * feat(sound): add FineLAP audio event search * fix(desktop): refresh model cache catalog
* feat(premiere): add project media indexing and search * feat(premiere): add Desktop-managed CEP and UXP installation * fix(desktop): expose sound in guided setup * fix(desktop): make Premiere setup own dependencies * fix(desktop): recover stalled Windows media setup * fix(desktop): derive setup metadata from capabilities * build(premiere): adopt Bolt UXP tooling * build(premiere): complete Bolt UXP adoption
* Add glama.json configuration file * Add 'tulayha' to maintainers list in glama.json
* feat(benchmarks): add Codex MCP ablation harness * feat!: rename public media capabilities Replace the dialogue and videoprism capability identifiers with speech and action across shared contracts, packages, extras, adapters, generated catalogs, benchmarks, and documentation. Bump the index schema so repositories rebuild under the new collection names. BREAKING CHANGE: dialogue and videoprism are removed as capability names and package extras. Use speech and action, then rebuild existing indexes. * test(desktop): fix renamed capability ordering * feat(query): select Qwen3.5 4B local default * feat(desktop): manage local grounded answers * feat(premiere): add grounded answers
* fix(desktop): use a managed headless Ollama runtime * fix(packaging): harden dependency safeguards
* fix(benchmarks): initialize media runtime in setup * fix(ci): skip artifact builds for benchmark changes
…al DiDeMo corpus (#128) * feat(benchmarks): add reproducible indexing-latency benchmark Adds a command that generates synthetic media via FFmpeg testsrc2 and measures per-stage indexing throughput, per-stage wall time, and peak memory across configurable modalities. Supports regression detection against a prior baseline report. - : corpus generation, run orchestrator (drives real run_index/ModelRuntime), per-stage aggregation, baseline comparison - CLI command with --modalities, --videos, --duration-seconds, --resolution, --repetitions, --input-mode (transcript/transcribe), --audio-mode, --baseline, --baseline-tolerance - documents the protocol, output schema, and limitations - 23 unit tests for validation, aggregation, clip command building, baseline comparison, and corpus spec * fix(benchmarks): address CodeRabbit review issues - Reject resolutions with extra components (e.g. 320x180x1) - Accumulate record_counts across repetitions instead of overwriting - Move corpus generation inside try block for proper failure handling - Pass reset parameter through instead of hardcoded True - Validate baseline configuration compatibility before comparison * feat(benchmarks): run indexing-latency benchmark on real DiDeMo media Add a --corpus mode to vidxp benchmark index-latency so the throughput benchmark can index the real DiDeMo videos prepared by vidxp benchmark prepare, instead of only synthetic testsrc2 clips. Named corpora resolve under the application data directory and honor media-overrides.json; arbitrary media directories are supported too. Real corpora have no released transcripts, so dialogue requires --input-mode transcribe and is transcribed by Whisper. Reports record the corpus as kind 'real' with name, clip count, bytes, duration range, and containers, and baseline comparison rejects a baseline whose corpus signature differs so synthetic and real results never mix. * fix(benchmarks): address latency benchmark review feedback Ensure every repetition runs a fresh indexing cycle by forcing reset for repetitions after the first, so --repetitions N measures N full indexing runs instead of one run followed by resume/skip passes. Apply the --audio-mode flite requirement only to generated synthetic media; real corpora take audio from the video and document the flag as ignored, so the DiDeMo dialogue/transcribe command now works without it. Recognize non-named --corpus strings as media directory paths and validate they exist, making the documented --corpus <directory> mode usable from the command line. Add orchestration, real-corpus validation, and directory-resolution tests covering the changed behavior. * fix(benchmarks): align latency benchmark with speech capability rename Upstream renamed the dialogue capability to speech (#135), so the latency benchmark now targets the speech modality and its speech_indexing stage. The speech capability still reports the dialogue_phrases metric, so rate aggregation is unchanged. * fix(benchmarks): reset every measured latency repetition Always reset the benchmark index, including the first repetition when a completed run ID is reused. Keep the reset option accepted for compatibility and clarify its help. Update the existing orchestration assertion. User-visible benchmark correctness fix; not internal-only. Validation: 60 targeted latency and runner tests passed, targeted Ruff passed, CLI help and git diff --check passed. * fix(benchmarks): require explicit reset for existing latency runs Reject an existing run before generating media or opening storage unless reset is requested. New runs index normally and reset between repetitions. Restore the reset option meaning and document the overwrite behavior. User-visible benchmark correction. Validation: 61 targeted latency and runner tests, targeted Ruff, CLI help, and git diff --check passed. Markdown lint was unavailable in the offline npm cache; no links changed. Full suite and model-backed smoke were not run for this focused guard change. --------- Co-authored-by: Talha Amjad <tamjad91@gmail.com>
Keep full Python and package validation while skipping unrelated product artifact and provider jobs for a conservative benchmark-only scope. Require selected jobs to succeed. Internal-only.
) (#141) * fix(fusion): bound moment components to shared overlapping interval * fix(fusion): compute fused bounds using shared overlap window (#87) * fix(fusion): keep touching moments separate and report overlap rule --------- Co-authored-by: Muhammad Abdullah Ghani <i222683@nu.edu.pk> Co-authored-by: Talha Amjad <tamjad91@gmail.com>
#146) * fix(search): separate channel candidate retrieval limit before fusion (#88) - Introduce resolve_candidate_limit() with independent candidate_depth budget (default 50, max 500) - Add search_candidate_depth setting to VidXPSettings - Update Application.search() and Application.query_video() to use candidate limits for channel queries while returning top_k final fused moments - Add unit tests for candidate depth resolution and non-positive input validation - Add query_video candidate depth verification and application.search regression test for candidates retrieved past public top_k * fix(search): accept configured candidate depth through capability input --------- Co-authored-by: Talha Amjad <tamjad91@gmail.com>
Two assertions compared a product-returned path against an unresolved
temporary-directory path. The product resolves deliberately at both
boundaries, so the comparisons hold only when no path component is
rewritten during resolution:
- `verified_local_path` in `artifact_delivery.py` calls
`path.resolve(strict=True)` before an artifact path reaches the caller.
- `_validated_marketplace_root` in `codex_plugin.py` calls
`.expanduser().resolve()` before the Codex marketplace root is used.
On Windows, `TMP` commonly holds an 8.3 short component when the user
profile name contains a space. Resolution expands it, and both
assertions fail on the short-versus-long form of the same path:
AssertionError: WindowsPath('C:/Users/Hasnain Ibrar Butt/AppData/
Local/Temp/tmpzyyjwosm/clip.mp4') != WindowsPath('C:/Users/
HASNAI~1/AppData/Local/Temp/tmpzyyjwosm/clip.mp4')
AssertionError: assert 'C:\Users\HASNAI~1\...\marketplace.json'
== 'C:\Users\Hasnain Ibrar Butt\...\marketplace.json'
Compare the resolved form on both sides, which is what each boundary
documents and returns.
CI does not reach either assertion. The full suite runs on
ubuntu-latest, and the windows-2025 provider job runs only
`test_models.py` and `test_indexing.py`. `test_codex_plugin.py` is
additionally never collected by CI at all, because it defines
module-level pytest functions and CI discovers tests with
`python -m unittest discover -s tests`.
Internal-only, test scope. No product behavior changes: both delivered
paths were already correct and are still asserted, now in the form the
boundaries actually return.
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Talha Amjad <tamjad91@gmail.com>
* feat(indexing): add bulk video indexing command and coordinator * feat(index): add bulk indexing for many media items `vidxp index create` handled one media item per invocation, so indexing a repository meant driving it once per video and tracking the results by hand. Add a transport-neutral planning operation and a thin CLI adapter over it: - `Application.plan_bulk_index` resolves a selection to per-media targets and decides which ones the active snapshot already covers. The plan is read-only, so callers can show it before committing to any work. - `vidxp index bulk` indexes every registered media item, or a selection passed with repeated `--media-id`. `--plan-only` shows the decision without indexing, and `--reindex` plans covered media anyway. Media is skipped when the active snapshot holds a generation for it, that generation covers every requested modality, and its recorded input checksum still matches the registered media. Replacing a video's content or asking for a modality the generation lacks therefore plans it again. Media that is not in the ready state is reported as skipped rather than silently dropped. No new indexing behavior. Each pending target is submitted through the existing `submit_index` durable job, one job per media item, matching how `IngestionCoordinator` already sequences ingestion. That is what gives the batch its guarantees: a failure isolates to its own media, earlier successes stay committed, and rerunning the command retries only what is still missing because completed media is then skipped. The command exits non-zero when any media failed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(index): integrate bulk planning with reusable job execution * test(cli): ignore ANSI styling in bulk error assertions --------- Co-authored-by: umair <i250604@isb.nu.edu.pk> Co-authored-by: Hasnain Ibrar <Hasnain2430@gmail.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This draft is maintained automatically. Mark it ready and merge it when the current beta is approved for stable release.