1. 04 Jun, 2026 31 commits
    • Constraint: Preserve the current Phase-1 runner, PostgreSQL v2 contract, and live validation narrative while removing duplicate doc entrypoints.
      Rejected: Keep multiple parallel handoff docs | They force new contributors to diff stale narratives before they can act.
      Confidence: high
      Scope-risk: narrow
      Directive: Treat README -> start-here -> session-handoff as the only first-read path unless a newer handoff chain fully replaces it.
      Tested: git diff --check on touched docs/script; rg for deleted-doc residual refs outside CHANGELOG; reran scripts/run_planner_validation_commands_live.py with executed_count=4 and all_passed=true
      Not-tested: Markdown link rendering in external viewers
      cnb.bofCdSsphPA authored
    • Constraint: The README remained a reading-first surface while the handoff had already converged on a faster validated startup command, so the docs entrypoint needed to match the actual recovery workflow.
      Rejected: Keep the shortest path only in session-handoff | That would still force many sessions to open the wrong document first.
      Confidence: high
      Scope-risk: narrow
      Directive: Treat docs/README.md and docs/session-handoff.md as aligned startup surfaces; keep the runner command identical in both places.
      Tested: git diff --check; /usr/local/miniconda3/bin/python scripts/run_planner_validation_commands_live.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --output data/pgvector_eval/music20/planner_validation_commands_runner_report.json
      Not-tested: This commit reshapes documentation only; it does not change worker behavior.
      cnb.bofCdSsphPA authored
    • Constraint: The session handoff had become information-rich enough that the next session still needed manual triage, so the opening section had to be collapsed to one verified command path.
      Rejected: Keep the handoff primarily as a reading list | That would preserve context but not minimize restart latency.
      Confidence: high
      Scope-risk: narrow
      Directive: Start future sessions with the planner validation runner before reading deeper docs unless the task explicitly skips validation.
      Tested: git diff --check; verified docs/session-handoff.md now points to scripts/run_planner_validation_commands_live.py backed by fresh data/pgvector_eval/music20/planner_validation_commands_runner_report.json evidence (executed_count=4, all_passed=true)
      Not-tested: No new code-path execution was needed in this commit because it reorganizes the already-verified startup flow.
      cnb.bofCdSsphPA authored
    • Constraint: The planner artifact had become executable, but future sessions still needed a reusable entrypoint instead of ad-hoc inline Python to consume it.
      Rejected: Keep the execution proof as one-off shell snippets | That would not give the next session a durable command surface.
      Confidence: high
      Scope-risk: narrow
      Directive: Use run_planner_validation_commands_live.py as the default preflight gate before attempting new Phase-1 worker changes on a host.
      Tested: /usr/local/miniconda3/bin/python -m py_compile scripts/run_planner_validation_commands_live.py; git diff --check; /usr/local/miniconda3/bin/python scripts/run_planner_validation_commands_live.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --output data/pgvector_eval/music20/planner_validation_commands_runner_report.json
      Not-tested: The runner only validates planner entrypoints; it does not unlock successful extraction on an environment-blocked host.
      cnb.bofCdSsphPA authored
    • Constraint: Partial execution proof for planner validation commands still left room for manual reconstruction risk, so the remaining entrypoints had to be exercised too.
      Rejected: Stop after two executed planner commands | It would leave the negative matrix and asset-upsert entrypoints unproven.
      Confidence: high
      Scope-risk: narrow
      Directive: Treat phase1_validation_commands_execution_report.json as the authoritative proof that the planner artifact is executable end-to-end.
      Tested: git diff --check; /usr/local/miniconda3/bin/python - <<'PY' ... execute validation_commands.semantic_vector_negative_matrix and validation_commands.asset_level_upsert_validation from data/pgvector_eval/music20/phase1_extraction_plan_report.json ... PY
      Not-tested: Individual extraction jobs still remain environment-blocked; this commit proves validation entrypoints, not successful feature extraction.
      cnb.bofCdSsphPA authored
    • Constraint: Adding validation_commands to the planner was only useful if the emitted commands could be consumed directly, so the plan artifact needed one more layer of execution proof.
      Rejected: Assume command strings are correct because they look valid | That would leave restart automation unproven.
      Confidence: high
      Scope-risk: narrow
      Directive: Prefer executing validation_commands from the planner artifact instead of retyping equivalent checks by hand.
      Tested: git diff --check; /usr/local/miniconda3/bin/python - <<'PY' ... execute validation_commands.prereq_audit and validation_commands.worker_contract_smoke from data/pgvector_eval/music20/phase1_extraction_plan_report.json ... PY
      Not-tested: The remaining planner validation commands were not executed in this commit, though their sibling commands proved the artifact is directly consumable.
      cnb.bofCdSsphPA authored
    • Constraint: The repo now has multiple verified smoke and audit scripts, so leaving them outside the planner would force future sessions to rediscover the right validation commands by reading docs.
      Rejected: Document the commands only in markdown | That would drift from the executable plan artifact and slow restart execution.
      Confidence: high
      Scope-risk: narrow
      Directive: Treat validation_commands in the planner as the first-stop entrypoints before running individual extraction jobs on a new host.
      Tested: /usr/local/miniconda3/bin/python -m py_compile scripts/plan_phase1_extraction_jobs_live.py; git diff --check; /usr/local/miniconda3/bin/python scripts/plan_phase1_extraction_jobs_live.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --schema acr_test --job-status pending --output data/pgvector_eval/music20/phase1_extraction_plan_report.json
      Not-tested: The planner still emits commands for an environment-blocked host and does not prove successful extraction by itself.
      cnb.bofCdSsphPA authored
    • Constraint: Worker-contract validation is now stable enough that the remaining uncertainty is host readiness, so the next blocker had to be made explicit instead of inferred from repeated failed runs.
      Rejected: Keep prerequisite knowledge only in prose | It would drift and force future sessions to rediscover the same missing mounts and packages.
      Confidence: high
      Scope-risk: narrow
      Directive: Run the prerequisite audit before retrying live extraction so host blockers are measured once and reused across lanes.
      Tested: /usr/local/miniconda3/bin/python -m py_compile scripts/run_phase1_prereq_audit_live.py; git diff --check; /usr/local/miniconda3/bin/python scripts/run_phase1_prereq_audit_live.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --schema acr_test --output data/pgvector_eval/music20/phase1_prereq_audit_report.json
      Not-tested: This audit does not install dependencies or mount assets; it only reports readiness.
      cnb.bofCdSsphPA authored
    • Create Dockerfile.cnb based on the optimized Dockerfile with
      code-server v4.123.0 + 10 VS Code extensions (golang, cnb-welcome,
      code-runner, kubernetes, coding-copilot, github-theme, zh-hans-langpack,
      vscode-icons, indent-rainbow, markdown-all-in-one).
      
      Constraint: extensions install as user to ~/.local, then switch back to root
      Confidence: high
      Scope-risk: narrow
      Tested: docker build succeeded, all 10 extensions installed OK
      cnb.bofCdSsphPA authored
    • Constraint: Phase-1 semantic jobs were already blocked by missing audio and model runtimes, so vector-table regressions needed their own isolated live proof to avoid being masked by the same environment failures.
      Rejected: Infer vector-table coverage from code inspection only | It would not prove the worker writes the correct blocker reasons into PostgreSQL metadata.
      Confidence: high
      Scope-risk: narrow
      Directive: When semantic extraction fails, inspect vector_table_report.reason before assuming the host is only missing mounts or model dependencies.
      Tested: /usr/local/miniconda3/bin/python -m py_compile scripts/run_embedding_vector_table_negative_matrix_live.py; git diff --check; /usr/local/miniconda3/bin/python scripts/run_embedding_vector_table_negative_matrix_live.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --output data/pgvector_eval/music20/embedding_vector_table_negative_matrix_report.json
      Not-tested: No successful semantic extraction path exists yet on this host; this commit validates negative preflight cases only.
      cnb.bofCdSsphPA authored
    • Constraint: Phase-1 now has multiple lane-specific validation scripts, so without a single smoke entrypoint the next session must manually reconstruct the current blocker picture.
      Rejected: Keep exact and semantic checks separate only | It would slow restart diagnosis and hide the shared environment blockers.
      Confidence: high
      Scope-risk: narrow
      Directive: Use the smoke entrypoint first on future sessions to distinguish contract regressions from missing mounts/runtime prerequisites.
      Tested: /usr/local/miniconda3/bin/python -m py_compile scripts/run_phase1_worker_contract_smoke_live.py; git diff --check; /usr/local/miniconda3/bin/python scripts/run_phase1_worker_contract_smoke_live.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --schema acr_test --output data/pgvector_eval/music20/phase1_worker_contract_smoke_report.json
      Not-tested: This smoke still reflects an environment-blocked host and does not prove successful extraction.
      cnb.bofCdSsphPA authored
    • Constraint: The schema already declared asset-level idempotency, but without live evidence future work could mistake it for an unverified design note.
      Rejected: Rely on DDL inspection alone | It would not prove duplicate inserts are blocked and upserts reuse the same embedding row.
      Confidence: high
      Scope-risk: narrow
      Directive: Keep asset-level writer implementations aligned with the verified ON CONFLICT (feature_set_id, asset_id) WHERE window_id IS NULL contract.
      Tested: /usr/local/miniconda3/bin/python -m py_compile scripts/validate_audio_embedding_asset_upsert_live.py; git diff --check; /usr/local/miniconda3/bin/python scripts/validate_audio_embedding_asset_upsert_live.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --schema acr_asset_upsert_test --output data/pgvector_eval/music20/audio_embedding_asset_upsert_live_report.json
      Not-tested: No production semantic writer uses the asset-level contract yet; this commit validates the DB contract, not an end-to-end extractor.
      cnb.bofCdSsphPA authored
    • Constraint: The current container still lacks mounted source audio and the semantic model runtimes, so repeated manual spot-checks are noisy and wasteful.
      Rejected: Ad-hoc one-job validation only | It would not show whether failures are contract-wide or model-specific.
      Confidence: high
      Scope-risk: narrow
      Directive: Re-run the matrix before claiming any semantic worker progress so blocker drift across MERT/MuQ/ECAPA is visible.
      Tested: /usr/local/miniconda3/bin/python -m py_compile scripts/run_phase1_embedding_preflight_matrix_live.py; git diff --check; /usr/local/miniconda3/bin/python scripts/run_phase1_embedding_preflight_matrix_live.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --schema acr_test --output data/pgvector_eval/music20/phase1_embedding_preflight_matrix_report.json
      Not-tested: This matrix still cannot prove successful semantic inference until assets and runtime dependencies are available.
      cnb.bofCdSsphPA authored
    • Constraint: Current container lacks /workspace/downloads and torch/torchaudio/transformers, so Phase-1 semantic work must prove honest failure semantics instead of pretending inference succeeded.
      Rejected: Stub semantic embeddings | Would blur the contract between real model outputs and repo-local placeholders.
      Confidence: high
      Scope-risk: narrow
      Directive: Keep the preflight blockers explicit until real MERT/MuQ/ECAPA adapters and asset-level embedding tests exist.
      Tested: /usr/local/miniconda3/bin/python -m py_compile workers/run_embedding_job.py workers/run_chromaprint_job.py workers/_job_common.py scripts/bootstrap_phase1_extraction_jobs_live.py scripts/plan_phase1_extraction_jobs_live.py scripts/bootstrap_phase1_reference_members_live.py scripts/live_pgvector_music20_eval.py; git diff --check; /usr/local/miniconda3/bin/python scripts/bootstrap_phase1_extraction_jobs_live.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --schema acr_test; /usr/local/miniconda3/bin/python workers/run_embedding_job.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --schema acr_test --job-id 2 --model-name mert --model-version v1-95m --vector-table audio_embedding_vector_768 --output data/pgvector_eval/music20/phase1_worker_embedding_write_attempt.json
      Not-tested: Real encoder inference and asset-level embedding upsert path remain unavailable in this container.
      cnb.bofCdSsphPA authored
    • Remove code-server, build-essential, gcc, libc6-dev, pkg-config, libssl-dev
      from final stage. Add conda clean post-install in builder. Strip
      unnecessary opencode platform binaries (musl/baseline variants) post-npm-install.
      Remove redundant COPY layers for opencode (already covered by full
      node directory copy). Keep opencode.exe entry point (Node.js bootstrap).
      
      Constraint: buildkit crashes with 'frontend grpc server closed unexpectedly' on this host; legacy builder used
      Confidence: high
      Scope-risk: narrow
      Directive: opencode.exe is the Node.js bootstrapper, not a Windows binary; do not delete
      Tested: docker run --rm verified node/npm/bun/python/hx/claude/opencode/nvim all work
      cnb.bofCdSsphPA authored
    • Constraint: the Phase-1 exact lane must not pretend success when reference audio is unreadable, and repeated writes must be idempotent at the database boundary.
      Rejected: keep partial-success writes in completed state | rejected because it would blur asset-readability failures and weaken auditability.
      Confidence: high
      Scope-risk: moderate
      Directive: preserve the repo-local chromaprint-style wording and the all-or-nothing failure semantics until production audio mounts and real extractor validation are in place.
      Tested: py_compile for chromaprint matcher and chromaprint worker; live PostgreSQL unique index creation on acr_test; non-dry-run chromaprint worker attempt with job_status=failed and failure_reason=unreadable_audio_assets; bootstrap reset back to pending; architect review APPROVED.
      Not-tested: successful audio_fingerprint writes against mounted production audio, semantic worker real writes, large-scale concurrent exact-lane execution.
      cnb.bofCdSsphPA authored
    • Constraint: planner outputs must be copy-runnable in the current environment and live PostgreSQL entrypoints must treat schema input as untrusted.
      Rejected: defer state guards until real inference arrives | rejected because repeat execution and empty-scope drift would corrupt Phase-1 evidence now.
      Confidence: high
      Scope-risk: moderate
      Directive: keep using the guarded job contract (expected status, schema validation, explicit python path) when replacing dry-run with real writes.
      Tested: py_compile for live bootstrap/planner/worker scripts; live PostgreSQL bootstrap for model registry, reference members, and extraction jobs; regenerated extraction plan report; chromaprint + mert dry-run worker runs with scope=20; double-claim guard report returns non-zero; architect review APPROVED.
      Not-tested: real fingerprint writes, real embedding writes, large-scale production reference-set ingestion beyond the 20-song acr_test sample.
      cnb.bofCdSsphPA authored
    • Constraint: Phase-1 must stay encoder-only and use PostgreSQL as the orchestration/state plane before real extractor inference lands.
      Rejected: implement real MERT/MuQ inference first | rejected because planner/job/state contracts were not yet executable or verified end-to-end.
      Confidence: high
      Scope-risk: moderate
      Directive: preserve the worker job contract and replace dry-run incrementally with real fingerprint/embedding writes.
      Tested: py_compile for new workers and planner; live PostgreSQL dry-run for chromaprint job 1 and mert job 2; planner report regeneration; bootstrap restore to pending; git diff --check.
      Not-tested: real chromaprint extraction, real MERT/MuQ/ECAPA embedding writes, failed-job retry handling.
      cnb.bofCdSsphPA authored
    • Constraint: The Phase-1 PostgreSQL plan needed to become immediately actionable without pretending the workers already exist
      Rejected: Keep the plan as ordering-only metadata | It still leaves the next session to reconstruct command wiring by hand
      Confidence: high
      Scope-risk: narrow
      Directive: Keep future worker implementations compatible with the env-var contract emitted by the planner report
      Tested: /usr/local/miniconda3/bin/python scripts/plan_phase1_extraction_jobs_live.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --schema acr_test --job-status pending --output data/pgvector_eval/music20/phase1_extraction_plan_report.json; /usr/local/miniconda3/bin/python -m py_compile scripts/plan_phase1_extraction_jobs_live.py; git diff --check -- acr-engine/scripts/plan_phase1_extraction_jobs_live.py acr-engine/data/pgvector_eval/music20/phase1_extraction_plan_report.json docs/model-feature-registry-bootstrap.md docs/postgres_db_schema_samples.md docs/session-handoff.md docs/CHANGELOG.md
      Not-tested: Real worker binaries at workers/run_chromaprint_job.py and workers/run_embedding_job.py do not exist yet
      cnb.bofCdSsphPA authored
    • Constraint: Ralph must keep turning PostgreSQL state into concrete next-step artifacts rather than leaving implied manual steps
      Rejected: Stop at creating pending jobs only | It still leaves future sessions to infer ordering and physical targets by hand
      Confidence: high
      Scope-risk: narrow
      Directive: Treat the planner report as the canonical bridge between pending jobs and real extraction workers
      Tested: /usr/local/miniconda3/bin/python scripts/plan_phase1_extraction_jobs_live.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --schema acr_test --job-status pending --output data/pgvector_eval/music20/phase1_extraction_plan_report.json; /usr/local/miniconda3/bin/python -m py_compile scripts/plan_phase1_extraction_jobs_live.py; git diff --check -- acr-engine/scripts/plan_phase1_extraction_jobs_live.py acr-engine/data/pgvector_eval/music20/phase1_extraction_plan_report.json docs/model-feature-registry-bootstrap.md docs/postgres_db_schema_samples.md docs/session-handoff.md docs/CHANGELOG.md
      Not-tested: Actual worker that consumes the plan to run MERT/MuQ/Chromaprint extraction end-to-end
      cnb.bofCdSsphPA authored
    • Constraint: Continue Phase-1 industrialization without waiting on missing audio mounts, and keep every Ralph step documented and pushed
      Rejected: Leave extraction scheduling as an implicit next step after registry bootstrap | It forces future sessions to reconstruct pending jobs by hand
      Confidence: high
      Scope-risk: narrow
      Directive: Use feature_extraction_job as the canonical handoff between registry bootstrap and actual encoder extraction runs
      Tested: /usr/local/miniconda3/bin/python scripts/bootstrap_phase1_extraction_jobs_live.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --schema acr_test --output data/pgvector_eval/music20/phase1_extraction_jobs_report.json; /usr/local/miniconda3/bin/python -m py_compile scripts/bootstrap_phase1_extraction_jobs_live.py; git diff --check -- acr-engine/scripts/bootstrap_phase1_extraction_jobs_live.py acr-engine/data/pgvector_eval/music20/phase1_extraction_jobs_report.json docs/model-feature-registry-bootstrap.md docs/postgres_db_schema_samples.md docs/session-handoff.md docs/CHANGELOG.md
      Not-tested: Downstream worker that consumes these pending jobs to run real MERT/MuQ extraction
      cnb.bofCdSsphPA authored
    • Constraint: Ralph follow-up work must keep producing audit-ready evidence and a pushed trail for the next session
      Rejected: Assume the new bootstrap script is safe to rerun without proof | Duplicate feature-set inserts would erode trust in the PostgreSQL bootstrap path
      Confidence: high
      Scope-risk: narrow
      Directive: Re-run registry bootstrap in-place before future extraction jobs and treat count drift as a regression signal
      Tested: /usr/local/miniconda3/bin/python scripts/bootstrap_phase1_model_registry_live.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --schema acr_test --output data/pgvector_eval/music20/phase1_registry_bootstrap_report.json (run twice); /usr/local/miniconda3/bin/python -m py_compile scripts/bootstrap_phase1_model_registry_live.py; git diff --check -- acr-engine/scripts/bootstrap_phase1_model_registry_live.py acr-engine/data/pgvector_eval/music20/phase1_registry_bootstrap_report.json acr-engine/data/pgvector_eval/music20/phase1_registry_bootstrap_idempotency_report.json docs/model-feature-registry-bootstrap.md docs/postgres_db_schema_samples.md docs/session-handoff.md docs/CHANGELOG.md
      Not-tested: Actual downstream MERT/MuQ extraction after bootstrap, missing business sample mount recovery
      cnb.bofCdSsphPA authored
    • Constraint: Continue the Ralph loop without waiting on missing business sample mounts, while still leaving a push-ready implementation and documentation trail
      Rejected: Keep Phase-1 registry setup as static SQL snippets only | It slows live validation and leaves no machine-checkable bootstrap path
      Confidence: high
      Scope-risk: narrow
      Directive: Treat model_registry/feature_set_registry/reference_set_registry as the mandatory entrypoint before any future MERT/MuQ extraction jobs
      Tested: /usr/local/miniconda3/bin/python scripts/bootstrap_phase1_model_registry_live.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --schema acr_test --output data/pgvector_eval/music20/phase1_registry_bootstrap_report.json; /usr/local/miniconda3/bin/python -m py_compile scripts/bootstrap_phase1_model_registry_live.py; git diff --check -- acr-engine/scripts/bootstrap_phase1_model_registry_live.py acr-engine/data/pgvector_eval/music20/phase1_registry_bootstrap_report.json docs/model-feature-registry-bootstrap.md docs/postgres_db_schema_samples.md docs/session-handoff.md docs/CHANGELOG.md
      Not-tested: Actual MERT/MuQ embedding extraction, hard-case type_8/type_16 live queries, multi-recording/cover-lane retrieval
      cnb.bofCdSsphPA authored
    • Constraint: Each Ralph follow-up change must leave a documented, pushed trail for the next session
      Rejected: Keep the missing /workspace/downloads discovery only in transient shell output | It would be rediscovered and waste the next session
      Confidence: high
      Scope-risk: narrow
      Directive: Treat hard-case live evaluation as environment-dependent until business sample mounts are restored
      Tested: git diff --check -- docs/postgres_db_schema_samples.md docs/session-handoff.md docs/CHANGELOG.md; ls -ld /workspace/downloads => no such file or directory
      Not-tested: Restoring or remounting the missing business sample directory
      cnb.bofCdSsphPA authored
    • Constraint: Each follow-up Ralph edit must update docs and preserve a push-ready, auditable validation trail
      Rejected: Stop at a single audio_window negative test | It left recording/audio_embedding trigger coverage and report readability weaker than needed
      Confidence: high
      Scope-risk: narrow
      Directive: Keep live retrieval reports self-explanatory enough for reviewers who only inspect JSON artifacts
      Tested: /usr/local/miniconda3/bin/python scripts/live_pgvector_music20_eval.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --schema acr_test --reset-schema --output data/pgvector_eval/music20/live_pgvector_report.json; /usr/local/miniconda3/bin/python -m py_compile scripts/live_pgvector_music20_eval.py; git diff --check -- acr-engine/scripts/live_pgvector_music20_eval.py acr-engine/data/pgvector_eval/music20/live_pgvector_report.json docs/postgres_db_schema_samples.md docs/CHANGELOG.md docs/session-handoff.md
      Not-tested: type_8/type_16 live JSONL coverage, MERT/MuQ live embeddings, multi-recording/cover-lane decision flow
      cnb.bofCdSsphPA authored
    • Constraint: The new data model had to be proven against the user-provided PostgreSQL instance and stay aligned with Phase-1 encoder-only decisions
      Rejected: Document-only schema guidance without a live database run | It would leave retrieval correctness and table intent unproven
      Confidence: high
      Scope-risk: narrow
      Directive: Keep future retrieval experiments writing through model/feature/reference registries instead of adding fixed per-model columns
      Tested: /usr/local/miniconda3/bin/python scripts/live_pgvector_music20_eval.py --dsn 'postgres://d2:d2pass@127.0.0.1:5432/d2' --schema acr_test --reset-schema --output data/pgvector_eval/music20/live_pgvector_report.json; /usr/local/miniconda3/bin/python scripts/evaluate_songid_pgvector_path.py --reference-embeddings-jsonl data/pgvector_eval/music20/reference_embeddings.jsonl --query-embeddings-jsonl data/pgvector_eval/music20/query_embeddings.jsonl --output data/pgvector_eval/music20/songid_eval_report_fresh.json; /usr/local/miniconda3/bin/python -m py_compile scripts/live_pgvector_music20_eval.py scripts/evaluate_songid_pgvector_path.py; git diff --check -- docs/README.md docs/CHANGELOG.md docs/postgres_db_schema_samples.md acr-engine/scripts/live_pgvector_music20_eval.py acr-engine/data/pgvector_eval/music20/live_pgvector_report.json acr-engine/data/pgvector_eval/music20/songid_eval_report_fresh.json
      Not-tested: MERT/MuQ live embeddings, type_8/type_16 live JSONL coverage, multi-recording/cover-lane decision flow
      cnb.bofCdSsphPA authored
    • cnb.bofCdSsphPA authored
    • Constraint: The startup handoff must reflect the new Phase-1 encoder-only and PostgreSQL v2 decisions without carrying stale timeline noise
      Rejected: Keep appending runtime logs to session-handoff.md | It obscures the current start point for the next session
      Confidence: high
      Scope-risk: narrow
      Directive: Keep session-handoff.md focused on where to resume next, and move detailed chronology into changelog/history docs
      Tested: git diff --check -- docs/session-handoff.md docs/CHANGELOG.md
      Not-tested: No link checker or markdown linter was run
      cnb.bofCdSsphPA authored
    • Constraint: The architecture and schema docs were already in place, but teams still lacked a concrete implementation checklist and registry bootstrap contract for encoder-only rollout
      Rejected: leaving execution guidance implicit in architecture prose | would slow Phase-1 delivery and cause inconsistent model/feature initialization
      Confidence: high
      Scope-risk: narrow
      Directive: treat Phase-1 implementation sequencing and model/feature/reference-set bootstrap as first-class docs that evolve with the schema
      Tested: git diff --check on changed docs; Python document sanity check; README/CHANGELOG link coverage verified with rg
      Not-tested: no runtime behavior changed; no database apply executed
      cnb.bofCdSsphPA authored
    • Constraint: The documentation refactor was already pushed and only needed a formatting-only hygiene follow-up
      Rejected: leaving known markdown whitespace debt in the freshly introduced guide | would add avoidable noise to future reviews
      Confidence: high
      Scope-risk: narrow
      Directive: keep the new role-oriented architecture docs diff-clean so future schema/model edits stay reviewable
      Tested: git diff --check on docs/acr-architecture.md
      Not-tested: content semantics unchanged; no runtime effects
      cnb.bofCdSsphPA authored
    • Constraint: Phase-1 must support encoder-only open-source backbones without destabilizing future schema evolution
      Rejected: extending the old flat song_id + fixed-vector schema | would couple model swaps to schema rewrites and weaken copyright lineage
      Confidence: high
      Scope-risk: moderate
      Directive: treat canonical_song/work/recording/recording_asset/audio_window plus model/feature registries as the stable contract; evolve models and indexes around them
      Tested: git diff --check on changed files; Python content/structure sanity check; architect review APPROVED; README link coverage and DDL object presence verified
      Not-tested: live PostgreSQL apply not run because psql is unavailable in this environment
      cnb.bofCdSsphPA authored
  2. 03 Jun, 2026 9 commits
    • Constraint: we need a song-level evaluation path that matches the future pgvector production shape before moving off the local FAISS proving lane
      Rejected: jumping straight to a live pgvector-only implementation | we still need a reproducible repo-local evaluation harness and artifact trail first
      Confidence: high
      Scope-risk: moderate
      Directive: keep future pgvector work song_id-first and measure each query type separately before aggregating product claims
      Tested: /usr/local/miniconda3/bin/python -m unittest discover -s acr-engine/tests -v; /usr/local/miniconda3/bin/python acr-engine/scripts/export_workspace_music20_embeddings_jsonl.py --downloads-dir /workspace/downloads --song-limit 20 --out-dir acr-engine/data/pgvector_eval/music20; /usr/local/miniconda3/bin/python acr-engine/scripts/evaluate_songid_pgvector_path.py --reference-embeddings-jsonl acr-engine/data/pgvector_eval/music20/reference_embeddings.jsonl --query-embeddings-jsonl acr-engine/data/pgvector_eval/music20/query_embeddings.jsonl --output acr-engine/data/pgvector_eval/music20/songid_eval_report.json
      Not-tested: live PostgreSQL/pgvector online retrieval path
      cnb.bofCdSsphPA authored
    • Constraint: we need a complete hard-query picture before claiming the workspace_music20 voice lane is usable or deciding where pgvector work should start
      Rejected: extrapolating from type_7 alone | the type_8 and type_16 lanes can fail differently and need their own measured baselines
      Confidence: high
      Scope-risk: narrow
      Directive: keep all future business-corpus voice evaluations split by query type so we can see exactly which hard lanes fail and why
      Tested: /usr/local/miniconda3/bin/python -m unittest discover -s acr-engine/tests -v; generated voice_workspace20_type8_eval.json (top1=0.0, top3=0.0) and voice_workspace20_type16_eval.json (top1=0.0, top3=0.0)
      Not-tested: improved business-corpus voice correctness after moving to embedding/pgvector retrieval
      cnb.bofCdSsphPA authored
    • Constraint: the repo needs to distinguish runtime success from business-level song_id correctness before any production claim
      Rejected: treating the workspace_music20 smoke as good enough | the current type_7 batch result is top1=0.0 and top3=0.05, which is far below a usable threshold
      Confidence: high
      Scope-risk: narrow
      Directive: keep all future business-corpus voice evaluations written to local_eval artifacts and mirrored into changelog/checklist/handoff before push
      Tested: /usr/local/miniconda3/bin/python -m unittest discover -s acr-engine/tests -v; generated acr-engine/data/local_eval/voice_workspace20_type7_eval.json with num_queries=20, top1=0.0, top3=0.05
      Not-tested: improved business-corpus correctness after further retrieval tuning
      cnb.bofCdSsphPA authored
    • Constraint: external voice uploads now need a business-sample-backed path before any pgvector production cutover, while still staying lightweight enough for CPU smoke tests
      Rejected: waiting for full pgvector service integration before proving a business-corpus path | would leave the external voice interface unvalidated against real sample references
      Confidence: medium
      Scope-risk: moderate
      Directive: treat workspace_music20 as a proving lane only; validate business top1 correctness before promoting its defaults or claiming production readiness
      Tested: /usr/local/miniconda3/bin/python -m unittest discover -s acr-engine/tests -v; /usr/local/miniconda3/bin/python acr-engine/scripts/service_voice_smoke.py -> status ok, corpus=workspace_music20, chunk_count=1, top_song_id=109, has_context=true
      Not-tested: pgvector-backed /recognize/voice production retrieval path
      cnb.bofCdSsphPA authored
    • Constraint: the voice service must return a payload under the current CPU environment before we can iterate on business-corpus correctness
      Rejected: keeping the previous multi-chunk defaults | they caused smoke-timeout regressions and blocked basic endpoint validation
      Confidence: high
      Scope-risk: moderate
      Directive: treat the current result as transport/runtime proof only until the service is switched from synthetic defaults to the /workspace business reference corpus
      Tested: /usr/local/miniconda3/bin/python -m unittest discover -s acr-engine/tests -v; /usr/local/miniconda3/bin/python acr-engine/scripts/service_voice_smoke.py -> status ok, chunk_count=1, top_song_id=song_0022, has_context=false
      Not-tested: business-corpus song_id correctness for /recognize/voice under /workspace reference data
      cnb.bofCdSsphPA authored
    • Constraint: every documented progress step in this lane must update changelog, checklist, and handoff together before pushing
      Rejected: leaving the handoff refresh isolated | it would break the repo's own continuity ritual and make the next session diff harder to trust
      Confidence: high
      Scope-risk: narrow
      Directive: when the voice service state changes, mirror it across changelog, checklist, and handoff in the same push
      Tested: /usr/local/miniconda3/bin/python -m unittest discover -s acr-engine/tests -v
      Not-tested: successful end-to-end /recognize/voice payload within timeout
      cnb.bofCdSsphPA authored
    • Constraint: the handoff must reflect the real runtime state: health endpoints work, CPU torch is installed, but end-to-end voice smoke still times out
      Rejected: keeping the older dependency-missing note | it no longer matches the current environment and would mislead the next session
      Confidence: high
      Scope-risk: narrow
      Directive: keep handoff notes focused on the shortest next debugging path for /recognize/voice timeout reduction
      Tested: /usr/local/miniconda3/bin/python -m unittest discover -s acr-engine/tests -v; /health endpoint returns ok under uvicorn with CPU torch installed
      Not-tested: successful end-to-end /recognize/voice payload within timeout
      cnb.bofCdSsphPA authored
    • Constraint: the docs must reflect the real runtime state after installing CPU torch: health is up, but end-to-end voice recognition still times out
      Rejected: declaring the voice API complete | the current smoke still does not return a final recognition payload within the timeout window
      Confidence: medium
      Scope-risk: narrow
      Directive: keep status docs synchronized with actual smoke results, especially partial readiness states
      Tested: /usr/local/miniconda3/bin/python -m unittest discover -s acr-engine/tests -v; /health endpoint returns ok under uvicorn; direct /recognize/voice smoke currently times out after CPU torch install
      Not-tested: successful end-to-end /recognize/voice result payload within timeout
      cnb.bofCdSsphPA authored
    • Constraint: the checklist should reflect the real current state: health endpoint is up, but full voice inference remains blocked by missing torch
      Rejected: marking service smoke fully passed | /recognize/voice still cannot execute end-to-end inference in this environment
      Confidence: high
      Scope-risk: narrow
      Directive: keep the release checklist brutally explicit about partial vs full service readiness
      Tested: /usr/local/miniconda3/bin/python -m unittest discover -s acr-engine/tests -v; /health endpoint reachable under uvicorn
      Not-tested: successful /recognize/voice inference until torch is installed
      cnb.bofCdSsphPA authored