Skip to content

v0.4.10 — guided mode (always-on hints, intensity-gated)#16

Merged
jinhongkuan merged 1 commit into
mainfrom
chore/bump-v0.4.10
Apr 15, 2026
Merged

v0.4.10 — guided mode (always-on hints, intensity-gated)#16
jinhongkuan merged 1 commit into
mainfrom
chore/bump-v0.4.10

Conversation

@jinhongkuan

Copy link
Copy Markdown
Contributor

Summary

Reframes v0.4.9's tester mode. Pre-v0.4.10, `action_hints` was empty unless tester mode was enabled. Now hints fire whenever findings exist; the flag controls intensity (advisory vs blocking) and message tone, not existence.

Renamed everywhere: `tester_mode` → `guided_mode`, `BICAMERAL_TESTER_MODE` → `BICAMERAL_GUIDED_MODE`, `bicameral-tester` skill → `bicameral-guided` skill.

Two intensities, set at setup time:

  • Normal (`guided: false`, default) — hints fire with `blocking=False` and advisory tone ("Heads up — N decision(s) look drifted"). Agent mentions hint in output, continues with task.
  • Guided (`guided: true`) — same hints with `blocking=True` and imperative tone ("N matched decision(s) have drifted — review BEFORE..."). Agent stops before any write op.

Setup wizard now prompts:

```
Interaction intensity:
1. Normal — bicameral flags discrepancies as advisory hints (default)
2. Guided — bicameral stops you when it detects discrepancies
Choice [1/2]:
```

The choice persists to `.bicameral/config.yaml`. Env var override (`BICAMERAL_GUIDED_MODE=1`) wins over the file for one-off sessions.

Test plan

  • 30 cases in `tests/test_v0410_guided_mode.py` — every hint kind in BOTH modes, message tone differs between modes, env var override beats config file both directions, config file fallback works when env var unset
  • Full v0.4.10 regression: 152 passed in 12s
  • Setup wizard prompt verified manually
  • Manual: re-run the Accountable drift demo, confirm guided mode emits blocking hints and normal mode emits advisory hints with same kinds

🤖 Generated with Claude Code

Reframes v0.4.9's tester mode. Pre-v0.4.10, action_hints was empty
unless tester mode was enabled. Now hints fire whenever findings
exist; the flag controls intensity (advisory vs blocking) and
message tone, not existence.

Renamed everywhere:
  - tester_mode → guided_mode (context field, env var, skill name)
  - BICAMERAL_TESTER_MODE → BICAMERAL_GUIDED_MODE
  - bicameral-tester skill → bicameral-guided skill
  - test_v049_tester_mode.py → test_v0410_guided_mode.py

Two intensities, set at setup time:

  Normal (guided: false, default)
    - Hints fire when findings exist
    - blocking=False, advisory message tone
      ("Heads up — N decision(s) look drifted...")
    - Agent mentions hint in output, continues with task

  Guided (guided: true)
    - Hints fire when findings exist
    - blocking=True, imperative message tone
      ("N matched decision(s) have drifted — review BEFORE...")
    - Agent stops before any write op until each is addressed

Setup wizard now prompts:

  Interaction intensity:
    1. Normal  — bicameral flags discrepancies as advisory hints (default)
    2. Guided  — bicameral stops you when it detects discrepancies
  Choice [1/2]:

The choice persists to .bicameral/config.yaml as guided: true/false.
BICAMERAL_GUIDED_MODE env var (1/true/yes/on or 0/false/no/off) is
a one-off override that wins over the file. Unset → fall back to
file → fall back to false.

Tests: 30 cases in tests/test_v0410_guided_mode.py — every hint kind
in BOTH modes, message tone differs between modes, env var override
beats config file in both directions, config file fallback works
when env var is unset. Full v0.4.10 regression: 152 passed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jinhongkuan jinhongkuan merged commit 96abd45 into main Apr 15, 2026
@coderabbitai

coderabbitai Bot commented Apr 15, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@jinhongkuan has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 8 minutes and 13 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 8 minutes and 13 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e3d50d89-53a6-4035-8528-74b522a68e1d

📥 Commits

Reviewing files that changed from the base of the PR and between a553506 and 6e876ca.

📒 Files selected for processing (13)
  • CHANGELOG.md
  • context.py
  • handlers/action_hints.py
  • handlers/brief.py
  • handlers/search_decisions.py
  • pyproject.toml
  • setup_wizard.py
  • skills/bicameral-brief/SKILL.md
  • skills/bicameral-guided/SKILL.md
  • skills/bicameral-search/SKILL.md
  • skills/bicameral-tester/SKILL.md
  • tests/test_v0410_guided_mode.py
  • tests/test_v049_tester_mode.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/bump-v0.4.10

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.

@jinhongkuan jinhongkuan deleted the chore/bump-v0.4.10 branch April 15, 2026 02:46
Knapp-Kevin added a commit to Knapp-Kevin/bicameral-mcp that referenced this pull request Apr 29, 2026
…attempt

GATE TRIBUNAL entry for plan-48-pre-push-drift-hook.md. Verdict:
PASS first-attempt — no remediation cycle needed. Chain hash
bf890347 extends from BicameralAI#16 (BicameralAI#44 SEAL, 567170e0) on dev.

Three non-blocking observations recorded:
- O1: run_setup parameter-name cosmetic nit (functionally fine).
- O2: latent post-commit-hook bug — bicameral-mcp link_commit HEAD
  is not a registered subcommand. Recommend separate issue. Out
  of scope for BicameralAI#48.
- O3: two-renderer modules (cli/drift_report.py for PR comments
  vs cli/branch_scan.py for terminal hooks) accepted as parallel
  non-duplication; different output formats and exit semantics.

SG-PLAN-GROUNDING-DRIFT instance BicameralAI#4 prevented — first plan this
session where author-side grounding mitigation worked rather than
audit-side catching. Issue BicameralAI#114 (CI lint enforcement) remains the
durable countermeasure.

Plan PASS at 79abcc2; chain to /qor-implement.
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