1. 04 Jun, 2026 23 commits
    • 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 15 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
    • Constraint: the handoff should reflect the current FAISS-first local workflow and the partially wired voice service without claiming end-to-end inference is ready
      Rejected: waiting for full torch-backed service completion before documenting progress | would hide the current repo state and block clean session handoff
      Confidence: high
      Scope-risk: narrow
      Directive: keep future handoff updates focused on what is runnable now, what is blocked, and the next shortest path to unblock it
      Tested: /usr/local/miniconda3/bin/python -m unittest discover -s acr-engine/tests -v; /usr/local/miniconda3/bin/python -m uvicorn src.service.app:app --host 127.0.0.1 --port 8000 with successful /health response
      Not-tested: successful /recognize/voice inference until torch is installed
      cnb.bofCdSsphPA authored
    • Constraint: service health and config endpoints should stay reachable even when training-time dependencies like torch are not installed
      Rejected: importing retrieval engines at module load | it makes the whole API crash before reporting dependency gaps clearly
      Confidence: high
      Scope-risk: narrow
      Directive: keep runtime dependency checks inside request-time engine loading so infra can health-check the service independently of model installation state
      Tested: /usr/local/miniconda3/bin/python -m unittest discover -s acr-engine/tests -v; /usr/local/miniconda3/bin/python -m uvicorn src.service.app:app --host 127.0.0.1 --port 8000 with successful /health response; POST /recognize/voice currently returns a clear 500 dependency error when torch is missing
      Not-tested: successful end-to-end /recognize/voice inference without torch installed
      cnb.bofCdSsphPA authored
    • Constraint: keep humming/recording query support lightweight and compatible with the existing FAISS-first local workflow while production retrieval remains pgvector-oriented
      Rejected: delaying service-path scaffolding until full production retrieval is ready | would block validation of voice-to-chunk and context export behavior
      Confidence: high
      Scope-risk: moderate
      Directive: keep  semantics song_id-first and treat resource paths only as supporting evidence/context artifacts
      Tested: /usr/local/miniconda3/bin/python -m unittest discover -s acr-engine/tests -v
      Not-tested: live FastAPI smoke until uvicorn is available in the current interpreter environment
      cnb.bofCdSsphPA authored
    • Constraint: local validation should stay lightweight and use /workspace sample files while production retrieval remains pgvector-backed
      Rejected: making ChromaDB the default local backend | chromadb is not installed in the current environment and FAISS is already available
      Confidence: high
      Scope-risk: narrow
      Directive: keep local dev workflows explicitly separated from production pgvector flows in docs and scripts
      Tested: /usr/local/miniconda3/bin/python -m unittest discover -s acr-engine/tests -v; /usr/local/miniconda3/bin/python acr-engine/scripts/local_music20_acr.py --downloads-dir /workspace/downloads --song-limit 20 --backend faiss --output acr-engine/data/local_eval/music20_summary.json
      Not-tested: chromadb backend execution without installation; live pgvector database execution path
      cnb.bofCdSsphPA authored
    • update 1 · 4806664b
      cnb.bofCdSsphPA authored
    • Document the production decision to stabilize the embedding space before onboarding a 300k-song catalog, and record the migration rules for future encoder upgrades.
      
      Constraint: 300k-song production rollout makes embedding churn expensive and risky
      Rejected: keep iterating encoder before defining a production embedding version | would force repeated full-vector rebuilds and unstable rollout criteria
      Confidence: high
      Scope-risk: narrow
      Directive: Treat encoder changes as versioned index migrations, not in-place model swaps
      Tested: reviewed rendered markdown content, docs index link, changelog entry, and git diff for the three touched docs
      Not-tested: git push / remote sync outcome depends on repository remote state
      cnb.bofCdSsphPA authored
  3. 02 Jun, 2026 2 commits
    • Capture the latest sweep evidence so the next session can resume cleanly.
      
      Constraint: docs only; keep large data and checkpoints out of git
      Rejected: leaving hum_guard unrecorded | would lose the newest verification evidence
      Confidence: high
      Scope-risk: narrow
      Directive: continue the next search from hum_focus
      Tested: reviewed the eval.json evidence and diff
      Not-tested: no code or model changes in this commit
      cnb.bofCdSsphPA authored
    • Keep the current optimization state resumable and concise.
      
      Constraint: docs only; avoid raw data, checkpoints, and __pycache__
      Rejected: continuing implementation now | user requested a fast delivery package first
      Confidence: high
      Scope-risk: narrow
      Directive: resume from the handoff docs on the next session
      Tested: reviewed diff and confirmed only four docs changed
      Not-tested: no code or training pipeline changes in this commit
      cnb.bofCdSsphPA authored