Skip to content

fix(infra): always-run schema CI, diagnose row probe, env-var truthy parity (#122, #301, #232)#353

Merged
Knapp-Kevin merged 1 commit into
devfrom
devin/1778808036-fix-infra-group-f
May 15, 2026
Merged

fix(infra): always-run schema CI, diagnose row probe, env-var truthy parity (#122, #301, #232)#353
Knapp-Kevin merged 1 commit into
devfrom
devin/1778808036-fix-infra-group-f

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Summary

Group F of /qor-auto-dev-1 orchestration — three independent infrastructure fixes bundled by low complexity and shared "hygiene" theme.

#122 — Schema Persistence CI always-run (.github/workflows/test-schema-persistence.yml):
The workflow had paths: filters that prevented it from running on non-schema PRs, but branch protection required the check — creating a deadlock where unrelated PRs were blocked indefinitely. Fix: remove the paths: trigger filter so the job always starts (satisfying required-checks), add dorny/paths-filter@v3 to conditionally skip the expensive install+test steps when no schema-relevant files changed. The job posts a green status either way.

#301 — Diagnose row-level probe (cli/diagnose.py, cli/_diagnose_gather.py, tests/test_diagnose_allowlist.py):
bicameral.diagnose probed schema structure (table existence, schema version, row counts) but never tested whether rows could actually be deserialized. A SurrealDB SDK version mismatch manifests as Invalid revision N for type Value on SELECT — schema looks healthy but operational queries fail. Fix:

  • Added ledger_sync to _CANONICAL_TABLES (row counts now include it)
  • New _probe_row_deserialization(): runs SELECT * LIMIT 1 against ledger_sync and source_cursor to catch deserialization errors
  • New row_probe_warnings field in Diagnosis dataclass + _ALLOWED_FIELDS allowlist
  • Warnings feed into _compute_suggestions() with actionable "back up + reset" guidance
  • New _format_row_probe_section() in the markdown report renderer

#232 — Env-var truthy vocabulary parity (handlers/ingest.py, consent.py):
Three BICAMERAL_* env-var toggles accepted only "1" while BICAMERAL_INGEST_RATE_LIMIT_DISABLE and BICAMERAL_GUIDED_MODE accepted the full _GUIDED_MODE_TRUTHY set (1/true/yes/on, case-insensitive). A user setting BICAMERAL_INGEST_CANARY_DISABLE=true was silently ignored. Fix: all three now use _GUIDED_MODE_TRUTHY:

  • BICAMERAL_INGEST_CANARY_DISABLE
  • BICAMERAL_INGEST_SECRET_DISABLE
  • BICAMERAL_SKIP_CONSENT_NOTICE

#272 — Already resolved: All 3 regressions (test-summary SHA pin, M1 eval AttributeError, e2e Flow 1) were previously fixed on dev by PRs #273, #276, #282. No code changes needed.

Review & Testing Checklist for Human

  • Verify test-schema-persistence.yml: on a PR that doesn't touch ledger/schema.py etc., the job should start but skip install+test with "Schema paths unchanged" message
  • Run bicameral-mcp diagnose (or bicameral.diagnose via MCP) and verify the new "Row-level probe" section appears in the output
  • Set BICAMERAL_INGEST_CANARY_DISABLE=true and verify canary detection is actually disabled (previously only =1 worked)

Notes

Link to Devin session: https://app.devin.ai/sessions/1ce5d923e6d047bb840003f9aa10c812

…parity (#122, #301, #232)

Co-Authored-By: kevin <kevin@bicameral-ai.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

Prompt hidden (unlisted session)

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@devin-ai-integration devin-ai-integration Bot added bug Something isn't working fix Bug fix or correctness repair infra Infrastructure / build / CI / repo-admin work P2 Medium: next milestone or two; default for new issues post-triage P3 Low: eventually; nice-to-have, polish, non-load-bearing labels May 15, 2026
@Knapp-Kevin Knapp-Kevin merged commit f91e4a5 into dev May 15, 2026
8 of 9 checks passed
@Knapp-Kevin Knapp-Kevin deleted the devin/1778808036-fix-infra-group-f branch May 15, 2026 02:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working fix Bug fix or correctness repair infra Infrastructure / build / CI / repo-admin work P2 Medium: next milestone or two; default for new issues post-triage P3 Low: eventually; nice-to-have, polish, non-load-bearing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant