What's Changed
- chore(ci): real pre-push gate parity with CI by @MikkoParkkola in #118
- fix(#105): add
nab doctorto detect PATH-shadowing installs by @MikkoParkkola in #120 - fix(fetch): browser-profile fallback for --cookies auto on Cloudflare challenge (#117) by @MikkoParkkola in #121
- feat(ssrf): add SSRF opt-out escape hatch for internal network access (fixes #107) by @MikkoParkkola in #122
- docs: add commercial license sponsor rail by @MikkoParkkola in #132
- Security: patch Dependabot alerts + surface prompt-injection defense by @MikkoParkkola in #133
- docs(readme): lead with value pillars, security as co-equal section by @MikkoParkkola in #135
- ci: docs-aware aggregate gate so doc-only PRs skip the Rust matrix by @MikkoParkkola in #136
- docs(contributing): document docs-aware CI gate by @MikkoParkkola in #138
- ci(pre-push): docs-aware gate + stable TMPDIR (sccache resilience) by @MikkoParkkola in #139
- chore(audit): acknowledge unfixable transitive advisories (#134) by @MikkoParkkola in #140
- ci: gate releases on known dependency vulnerabilities by @MikkoParkkola in #137
- chore(deps): bump rust from 1.95-slim to 1.96-slim by @dependabot[bot] in #123
- chore(deps): bump rustls-native-certs from 0.8.3 to 0.8.4 by @dependabot[bot] in #126
- chore(deps): bump trufflesecurity/trufflehog from 0ec3634f6cf66a61912a923fee9d20cc45633a67 to 26eae1f2969f4240acfd3fc363b504b1b43255d4 by @dependabot[bot] in #124
- docs: salvage CITATION.cff, NOTICE, task-engine design draft by @MikkoParkkola in #141
- chore(deps): bump http from 1.4.0 to 1.4.1 by @dependabot[bot] in #127
- chore(deps): bump wat from 1.250.0 to 1.251.0 by @dependabot[bot] in #125
- chore(deps): bump aes from 0.9.0 to 0.9.1 by @dependabot[bot] in #128
- docs(notice): reference LICENSE, not the nonexistent LICENSE-MIT by @MikkoParkkola in #142
- chore(license): enforce MIT/PolyForm-NC boundary; mark EE files; gate in CI by @MikkoParkkola in #143
- feat(linkedin): activity-feed support (MIK-3059) by @MikkoParkkola in #131
- feat(fingerprint): self-updating browser fingerprint (MIK-3058) by @MikkoParkkola in #129
- feat(session): cookie and storage-state export for MIK-5359 Phase 1 by @MikkoParkkola in #130
- docs(design): ratify nab task-engine direction (MIK-5359) by @MikkoParkkola in #145
- ci(fingerprint): require maintainer review on weekly bump PRs by @MikkoParkkola in #144
- docs(design): scope task-engine slice 1 against live source by @MikkoParkkola in #146
- feat(task): slice 2 — rung-1 API discovery surfaced in TaskOutcome by @MikkoParkkola in #148
- chore(audit): drop resolved lru advisory ignore RUSTSEC-2026-0002 (#134) by @MikkoParkkola in #149
- feat(task): slice 3 — rung-1 api_call execution + ActionObservation (MIK-5359) by @MikkoParkkola in #150
- docs(design): slice-4 scoping — binary boundary + nab task lib promotion (MIK-5359) by @MikkoParkkola in #151
- feat(task): promote task schema to nab::task library module (MIK-5359) by @MikkoParkkola in #152
- feat(task): inject TaskFetcher — move rung routing to nab::task executor (MIK-5359) by @MikkoParkkola in #153
- feat(task): bounded run_task_loop — the brain-driven control loop (MIK-5359) by @MikkoParkkola in #154
- feat(task): expose nab task as an MCP tool (slice-4 step 4) (MIK-5359) by @MikkoParkkola in #155
- feat(task): self-contained sampling loop in the MCP task tool (slice-4 step 4b) (MIK-5359) by @MikkoParkkola in #156
- test(task): route.1 gate — loop stays at lowest rung (MIK-5359) by @MikkoParkkola in #157
- feat(task): extract rung — query-focused shaping of the current response (MIK-5359) by @MikkoParkkola in #158
- feat(task): submit rung — CSRF-aware form submission (MIK-5359) by @MikkoParkkola in #159
- feat(task): bench.1 token-axis primitive + kill-gate protocol (MIK-5359) by @MikkoParkkola in #160
- chore(deps): document gimli-yanked transitive pin, close cargo-audit #134 by @MikkoParkkola in #161
- feat(task): bench.1 pilot harness + api_call response shaping (MIK-5359) by @MikkoParkkola in #162
- feat(task): rung 3 — escalate to an external browser over CDP (MIK-5359) by @MikkoParkkola in #163
- docs(task): section 7.1 implementation status — ladder shipped, bench.1 pending (MIK-5359) by @MikkoParkkola in #164
- fix(site/twitter): host-anchor X rule + authenticated DOM render for X Articles by @MikkoParkkola in #165
- chore: drop duplicate X article URL matcher from browser.rs (MIK-5863) by @MikkoParkkola in #173
- chore: raise nab python floor 3.9 to 3.12 (3.9 is end-of-life) by @MikkoParkkola in #175
- chore: drop duplicate X article URL matcher from browser.rs by @MikkoParkkola in #174
- chore(deps): bump chrono from 0.4.44 to 0.4.45 by @dependabot[bot] in #172
- chore(deps): bump uuid from 1.23.1 to 1.23.2 by @dependabot[bot] in #168
- chore(deps): bump dorny/paths-filter from 3.0.2 to 4.0.1 by @dependabot[bot] in #166
- chore(deps): bump which from 8.0.2 to 8.0.3 by @dependabot[bot] in #171
- chore(deps): bump rquickjs from 0.11.0 to 0.12.0 by @dependabot[bot] in #169
- chore(deps): bump reqwest from 0.13.3 to 0.13.4 by @dependabot[bot] in #170
- chore(deps): bump trufflesecurity/trufflehog from 26eae1f2969f4240acfd3fc363b504b1b43255d4 to b32841520c47f1bdf1f6f4772bac76afe07a9e92 by @dependabot[bot] in #167
- fix(release): bump version to 0.12.0 + tag-match guard by @MikkoParkkola in #176
Full Changelog: v0.11.0...v0.12.0