## yvgude/lean-ctx — v3.10.2…v3.10.3

_51 commits._

### Features
- **feat(value): show what lean-ctx did in your editor, the dashboard and the team push (#1860)** (356be44)
- **feat(value): lean-ctx prove speed — a signed A/B measurement instead of a speed claim (#1859)** (8f8901a)
- **feat(value): show what lean-ctx did in your prompt, your desktop and your commits (#1858)** (b208f65)
- **feat(value): show what lean-ctx did in Claude Code — status line, turn and session recaps (#1857)** (20a05ce)
- **feat(value): prove what lean-ctx did — lean-ctx value, provable security events (#1856)** (5fa1e69)
- **feat(index): make the BM25 file cap configurable via bm25_max_files (#1791)** (64a9304)

### Fixes
- **fix(hook): quote rewritten Bash commands so the calling shell expands nothing (#1862) (#1863)** (1ca1ffc)
- **fix(init,rules): init --help prints help; guidance names only callable tools (#1849) (#1854)** (edd9c55)
- **fix(init): put the _lc shims and hook binary on PATH (#1851) (#1855)** (5699f3c)
- **fix(shell): place a relative redirect after a cd where it lands (#1850) (#1853)** (f3572bd)
- **fix(hook): the PowerShell tool no longer gets a Bash command back (#1848) (#1852)** (6f4e33a)
- **fix(overview): a shared generic verb no longer makes a fact task-relevant (#1832) (#1847)** (fb925db)
- **fix(pi-lean-ctx): hand ctx_shell's timeout to lean-ctx -c (#1833) (#1845)** (666ebee)
- **fix(shell): a lone dot inside single quotes is not a `source` (#1829) (#1846)** (1e17c19)
- **fix(redaction): stay on the key's line and keep asterisk masks (#1830, #1831) (#1843)** (bf0881a)
- **fix(shell-allowlist): check the command a wrapper really runs (#1842)** (1676acf)
- **fix(engine-artifact): build on FreeBSD without calling renameat2 (#1828) (#1840)** (130ac77)
- **fix(shell): run Claude Code's OS-sandbox launcher, gated, instead of blocking it (#1834) (#1841)** (de7d0f9)
- **fix(npm): keep install paths and URLs out of the shell in postinstall (#1839)** (387a828)
- **fix(cla): stop a correctly signed CLA from being rejected by a newline (#1836)** (76a4e85)
- **fix: run postinstall onboard without shell path expansion (#1838)** (9f5825b)
- **fix(security): record the 18 reviewed dylib findings the audit keeps re-reporting (#1837)** (b62deca)
- **fix(cli): account sync is available again in the public build** (0be6ddf)
- **fix(proxy): measure the pipeline benchmark, not the CI runner (#1826)** (b761bc8)
- **fix(cloud-sync): a rejected credential no longer looks like being offline** (ab27a03)
- **fix(hook): stop handing a grep pattern to a different regex dialect (#1827)** (7ce3203)
- **fix(release): bump the three version surfaces 3.10.3 missed** (ad58c0e)
- **fix(session): stop a stuck save from wedging every later tool call (#1783) (#1824)** (49fa110)
- **fix(rules): say which tools the ctx_* mapping actually governs (#1788) (#1822)** (48745be)
- **fix(proxy): wire Codex onto the rail its credential authenticates on (#1685) (#1821)** (a425b76)
- **fix(ctx_shell): judge a redirect target where the command actually runs (#1811) (#1819)** (a14ca9a)
- **fix(budget): give inline the verbatim turn budget it shares with raw (#1818)** (613e95f)
- **fix(ctx_shell): make the guard messages state the rule that actually fires (#1817)** (caeb92f)
- **fix(ctx_read): honour the documented bare `-N` tail mode (#1816)** (c7fe848)
- **fix(pi-lean-ctx): bound ctx_grep result lines, not just their count (#1810)** (2abab66)
- **fix(walk): let git decide corpus membership, not a leading dot (#1809)** (0944564)
- **fix(knowledge): enforce auto_capture at the store, not at each producer (#1808)** (e560ea0)
- **fix(pi-lean-ctx): drop env names the host bash tool will reject (#1807)** (50fbff0)
- **fix(ctx_read): classify instruction files by file, not by parent directory (#1806)** (75cfdaf)
- **fix(cache): never serve a stub to a caller the scope cannot identify (#1805)** (b0a843f)
- **fix(shell): treat `[[ … ]]` as a conditional construct, not a command (#1803)** (ded190b)
- **fix(shell): add LEAN_CTX_EXEC_DEPTH nesting ceiling (#1795)** (5c1bfe5)
- **fix(proxy): stop the compression pipeline from emptying conversation turns (#1800)** (bff9ff8)

### Backend
- **Merge pull request #1844 from yvgude/release-3.10.3-to-main** (440194a)
- **Merge remote-tracking branch 'github/main' into release-3.10.3-to-main** (afc13bd)
- **Merge main into the 3.10.3 release line** (75522ef)
- **Merge main into the 3.10.3 release line** (c7a8601)

### Docs
- **docs(release): file 3.10.3 notes under the release checklist (#1861)** (ea16856)
- **docs(changelog): file the account-sync fixes under 3.10.3** (cd72eb8)

### Chore
- **chore(release): 3.10.3** (d1c48e0)
- **ci(windows): sign release engines as Thinkery AG with Azure (#1823)** (a3e5940)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/yvgude/lean-ctx?utm_source=github-action)._