Skip to content

Ship: verified-memory gate on by default; preset ladder (Quality gate on, Integrity strict) - #173

Merged
jaylfc merged 1 commit into
masterfrom
ship/preset-ladder
Jul 26, 2026
Merged

Ship: verified-memory gate on by default; preset ladder (Quality gate on, Integrity strict)#173
jaylfc merged 1 commit into
masterfrom
ship/preset-ladder

Conversation

@jaylfc

@jaylfc jaylfc commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Finalizes the two ship decisions you signed off on.

The flip was already live at the bare default. config.get_controls falls back to prefer_verified (on) when nothing is persisted, and get_runtime_overrides excludes unset controls so the recommended recipe's reranker stays on. So this PR makes the presets honour 'on across tiers' and records the decision; it does not change the out-of-the-box default (which was already on).

Decision 1 (prefer_verified flip on). Backed by E-018: served-hallucination 0.040 to 0.000 under all three judge families (llama / qwen-instruct / gemma) at n=250, at no measured accuracy or recall cost. The preset ladder is now three clear rungs:

Preset gate meaning
Minimal off lean opt-out, no rerank
Quality prefer_verified recommended accuracy tier, gate on
Integrity strict maximum purity: drops unverified claims, accepts a small measured recall trade-off

This resolves the prior inconsistency where Quality (the common accuracy pick) silently turned the gate off. profiles.resolve_config now accepts an explicit pinned value in a profile override (so Integrity can write strict), in addition to the existing bool switches.

Decision 2 (E-012 ship: rerank default + self-verify opt-in). No code change was needed: reranking is already on in the recommended retrieve recipe and in the Quality/Integrity presets, and answer self-verification stays an opt-in consumer-side recommendation enabled in the Quality and Integrity install profiles (taOSmd serves memory; answer generation is the consumer's path). Documented as such.

Updated controls.py, profiles.py, the README and INTEGRATION preset tables, the CHANGELOG, and the profile/controls/http tests. Full suite 970 pass. The research-report status flip (F-011/E-018 pending-Jay to signed-off) will follow on merge.

Summary by CodeRabbit

Release Notes

  • Documentation

    • Updated changelog, README, and integration documentation to reflect default behavior of the verification recall gate
    • Quality tier preset now enables the verification gate by default (previously disabled)
    • Integrity tier preset uses a stricter verification variant
    • Minimal tier preset disables the verification gate
    • Cross-encoder reranker remains enabled in the recommended configuration
  • Tests

    • Updated tests to validate new preset configurations and gate behavior across tiers

… on, Integrity strict)

Jay signed off on the prefer_verified default flip (E-018 tri-judge: served-
hallucination 0.040 to 0.000 under all three judge families at no measured
accuracy or recall cost) and on the E-012 ship shape. The gate was already on
at the bare default (the runtime falls back to prefer_verified when nothing is
persisted); this makes the presets honour 'on across tiers' and records the
decision.

Preset ladder, three clear rungs:
- Minimal: gate off (the lean opt-out), no rerank.
- Quality: gate on alongside reranking, the recommended accuracy tier.
- Integrity: steps up to the strict gate, which drops unverified claims for
  maximum purity and accepts a small measured recall trade-off.

profiles.resolve_config now accepts an explicit pinned value in a profile
override (e.g. prefer_verified='strict') in addition to a bool, so the
installer Integrity profile can write strict. Reranking stays on in the
recommended retrieve recipe; answer self-verification stays an opt-in
consumer-side recommendation enabled in the Quality and Integrity profiles,
since taOSmd serves memory and does not generate answers.

Updated controls.py + profiles.py, the README and INTEGRATION preset tables,
CHANGELOG, and the profile/controls tests. Full suite 970 pass.
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0a23b0e2-3cce-4738-84ff-06b7d69e6434

📥 Commits

Reviewing files that changed from the base of the PR and between d665eb7 and a8657f9.

📒 Files selected for processing (7)
  • CHANGELOG.md
  • README.md
  • docs/INTEGRATION-memory-config.md
  • taosmd/controls.py
  • taosmd/profiles.py
  • tests/test_http_server.py
  • tests/test_profiles.py

📝 Walkthrough

Walkthrough

Enables prefer_verified as the global default recall gate. Updates PRESETS["quality"] to turn it on and PRESETS["integrity"] to use the "strict" variant. Extends resolve_config in profiles.py to handle string-valued profile overrides as pinned config values under existing consent rules. Tests and documentation are updated to match.

Changes

prefer_verified global default and preset ladder

Layer / File(s) Summary
PRESETS definitions and resolve_config string-override logic
taosmd/controls.py, taosmd/profiles.py
PRESETS["quality"] sets prefer_verified to "prefer_verified" (was "off"); PRESETS["integrity"] sets it to "strict" (was "prefer_verified"). The integrity profile override changes from boolean True to string "strict". resolve_config gains a new branch: when an override value is a string, it writes that pinned value directly if consent rules allow, otherwise writes off_value and skips the boolean enable path.
Tests for strict gate and quality recall gate
tests/test_http_server.py, tests/test_profiles.py
Integrity preset roundtrip test asserts prefer_verified == "strict". The old integrity resolve_config test is replaced with test_resolve_config_integrity_uses_strict_gate (asserting "strict"), and test_resolve_config_quality_enables_recall_gate is added for the quality tier.
Documentation: preset ladder and global default
CHANGELOG.md, README.md, docs/INTEGRATION-memory-config.md
CHANGELOG documents the global prefer_verified default and the Minimal/Quality/Integrity preset ladder. Preset tables in README and integration docs are updated to show Quality on and Integrity strict.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • jaylfc/taosmd#168: Modifies taosmd/profiles.py around resolve_config and profile override handling for switch values, including consent-gated behavior and pinned string overrides — directly related to the resolve_config string-pinning logic introduced here.

Poem

🐇 The gate swings open by default now, friend,
Quality keeps it on, Integrity goes strict to the end.
No more "off" for the memory that's true —
Pinned strings flow through consent like morning dew.
The hallucinations shrink, the recall stays bright,
A verified bunny hops into the light! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: enabling the verified-memory gate by default and restructuring the preset ladder with specific behaviors for Quality and Integrity presets.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ship/preset-ladder

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gitar-bot

gitar-bot Bot commented Jun 22, 2026

Copy link
Copy Markdown

Note

Your trial team has used its Gitar budget, so automatic reviews are paused. Upgrade now to unlock full capacity. Comment "Gitar review" to trigger a review manually.
Learn more about usage limits

Code Review ✅ Approved

Enables the verified-memory gate by default across Quality and Integrity presets, establishing a clear ladder for memory safety and accuracy tiers. All configuration overrides, documentation, and tests successfully updated to support the new preset hierarchy.

Options

Display: compact → Showing less information.

Comment with these commands to change:

Compact
gitar display:verbose         

Important

Your trial ends in 4 days — upgrade now to keep code review, CI analysis, auto-apply, custom automations, and more.

Was this helpful? React with 👍 / 👎 | Gitar

jaylfc added a commit that referenced this pull request Jun 22, 2026
@jaylfc
jaylfc merged commit 82ffb10 into master Jul 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant