- Select completed local knowledge by Git commit when switching branches or returning to an older commit. Refresh reuses exact versions without model calls and updates from a compatible ancestor, preserving other versions.
- Questions allow staged, unstaged and untracked edits. Ask pins exact knowledge or a compatible ancestor, supplies bounded current-source changes to answer agents, and treats saved knowledge as historical background. Knowledge is not regenerated by asking. A checkout during answering still requires a retry.
- Legacy Git knowledge may also use an ancestor commit marker; unrelated sibling versions remain ineligible. Refresh still requires a clean worktree.
This release changes the default knowledge refresh behavior. Run rb-refresh
(or rb refresh) for the first build, subsequent committed changes, and retrying
an interrupted task. The engine chooses a complete first build, a matching
resume, an incremental update, or an already-current no-op. Use --full to
force a new complete rebuild. --workspace still defaults to the current
project directory, and refresh still requires a clean Git worktree.
Breaking changes:
- Removed refresh flags
--quickand--failed-only; they now fail argument parsing. Replace either invocation withrb-refresh. refresh_pipeline(workspace, *, full=False)replaces the old refresh mode arguments. MCPrefresh_project(full=False)and toolrefresh_filesystem(workspace=".", full=False)use the same automatic policy. Removedquickarguments are rejected.- Failed full builds retain progress and generated documents for a matching retry. Incompatible legacy interrupted records are replanned. Existing usable generations stay active until the new generation completes.
rb-ask remains read-only. Its stale-knowledge reminder now suggests
rb-refresh. rb-init scaffolding modes are unchanged. A legacy scan-only
knowledge directory receives a complete first build automatically; corrupt
modern baseline records produce an error with a --full recovery hint.