Repository navigation
Releases: koda-ai-studio/agent-bom
Releases · koda-ai-studio/agent-bom
Release list
agent-bom v0.108.4
Highlights
- ClickHouse analytics now creates its database before selecting it for HTTP queries. Connecting to a fresh server no longer fails with
UNKNOWN_DATABASE; bootstrap retains credentials and stops on authorization errors. - Corrected the ClickHouse benchmark example to use an HTTP endpoint and the registered
report analyticscommand. Deployment guidance now explains optional ClickHouse analytics alongside PostgreSQL/SQLite and the bounded analytics queue's durability limits. - Helm API shared-state safeguards now account for autoscaler maxima and KEDA fallback replicas, including deployments starting at one replica. API/UI disruption budgets cover configured scale-out, and extra API environment entries cannot override the chart-derived replica safety setting. Deployment guidance distinguishes single-replica SQLite, shared-state PostgreSQL API scaling, and single-writer gateways. PostgreSQL table partitioning is not automatic database sharding; live load, failover, and HA need qualification in the target deployment.
What's Changed
- docs: lead README and architecture with what a reviewer needs first by @msaad00 in #5692
- docs(security): state the read-only default and scope every write path by @msaad00 in #5701
- chore(release): align published 0.108.3 deployment pins by @msaad00 in #5706
- fix(ui): reconcile persisted demo jobs and dashboard states by @msaad00 in #5705
- fix(api): harden gateway admission and bound dashboard reads by @msaad00 in #5703
- fix(scanners): align finding accuracy and reduce first-run work by @msaad00 in #5704
- fix(helm): enforce shared-state safeguards before API scale-out by @msaad00 in #5707
- chore(deps-dev): align UI tooling and refresh product proof by @dependabot[bot] in #5712
- refactor: split graph builder, Snowflake, Postgres graph and CIS benchmark modules toward the 1,000-line ceiling by @msaad00 in #5717
- refactor(core): consolidate scan stages and repair runtime recovery by @msaad00 in #5713
- fix(ci): refresh open drift issues during registry sync grace by @msaad00 in #5718
- feat(api): type the top read endpoints and generate UI types from OpenAPI by @msaad00 in #5716
- test(ui): cover inventory transport errors and retry recovery by @msaad00 in #5719
- chore(release): prepare 0.108.4 by @msaad00 in #5720
- fix(ci): authenticate Docker Hub image and service pulls by @msaad00 in #5721
Full Changelog: v0.108.3...v0.108.4
agent-bom v0.108.3
Highlights
- Postgres job reads no longer transfer and decode every job payload on each call. A read sends the row versions this process already holds, and the database returns a payload only for rows that changed, so another replica's write is always seen. Payloads are cached as JSON text per tenant, with a byte limit (
AGENT_BOM_POSTGRES_JOB_PAYLOAD_CACHE_MB, default 256). Reads outside one request's aggregate read still parse a fresh job. - A cold
/v1/posturenow parses each job payload once instead of three to four times. Latest-scan selection, the overview fold, the current-graph resolver and the finding spine share one parse of each exact payload within the request, on Postgres and SQLite. A changed row is new payload text and is parsed again, so another replica's write is still seen. Latest-scan selection also moved off the event loop. On the demo estate (one 43 MB job), the first/v1/postureafter a restart drops from 2.6 s to 1.7 s on Postgres and from 2.4 s to 1.7 s on SQLite (median of 3 restarts); the first/v1/overviewand/v1/findingsalso drop by 0.3-0.7 s. - Campaign reconciliation now reaches its checkpoint, so it stops re-walking and re-redacting every finding at each boot and every maintenance tick while evidence is unchanged. A campaign walk reuses one read context across its pages, and the background walk is no longer cut off by the 10 s request bound.
What's Changed
- feat(graph): measure reviewed investigation and rescan evidence by @msaad00 in #5681
- chore(release): point published pins at v0.108.2 by @github-actions[bot] in #5680
- chore(deps): combine table and jsdom updates with refreshed UI proof by @msaad00 in #5686
- perf(api): checkpoint campaign reconciliation and reuse unchanged job payloads by @msaad00 in #5683
- perf(api): parse each job payload once per cold posture request by @msaad00 in #5687
- docs(readme): collapse quick start and enlarge the graph preview by @msaad00 in #5690
- chore(release): prepare 0.108.3 by @msaad00 in #5689
Full Changelog: v0.108.2...v0.108.3
agent-bom v0.108.2
Highlights
- Move the PyPI and Docker Hub front doors to
docs/registry/, the repository map todocs/PROJECT_STRUCTURE.md, the image exception register todocs/security/image-exceptions.yaml, the project-config template toexamples/agent-bom.yaml.example, and the fuzz harnesses to.clusterfuzzlite/fuzz/. - Remove the legacy Streamlit dashboard, the
agent-bom report dashboardcommand and thedashboardinstall extra (which also leftagent-bom[all]). Useagent-bom servefor the bundled dashboard. - The first
/v1/postureand/v1/graphafter a restart no longer compete with background work. Campaign reconciliation and the demo story prewarm wait until no request is in flight and a quiet window has passed, and they run after at most 60 s even under steady traffic. Current-estate graph reads now run concurrently. Rebuilding or retiring a generation still waits for active readers, and the 409 retired-generation contract is unchanged.
What's Changed
- chore(release): point published pins at v0.108.1 by @github-actions[bot] in #5637
- docs(skills): scope scan targets and align default MCP tools by @msaad00 in #5638
- refactor(graph): separate cloud inventory projections by @msaad00 in #5639
- fix(scanner): retain applicable RHEL advisories and unresolved fixes by @msaad00 in #5640
- docs(readme): lead with horizontal graph and remediation outcomes by @msaad00 in #5641
- fix(ci): require full merge-result tests and preserve main runs by @msaad00 in #5642
- fix(graph): retain available estate evidence across graph gaps by @msaad00 in #5643
- fix(security): harden evidence intake and qualify 0.108.2 by @msaad00 in #5644
- fix(ui): preserve investigation scope and readable evidence by @msaad00 in #5647
- fix(scanner): preserve package evidence and clarify scan coverage by @msaad00 in #5645
- fix(ui): keep investigation context readable and preserve navigation by @msaad00 in #5648
- fix(api): make campaign reads bounded and persist Postgres evidence by @msaad00 in #5646
- chore(deps): consolidate Python and dashboard dependency updates by @msaad00 in #5655
- fix(ui): scroll mobile path selection after rendering evidence by @msaad00 in #5656
- fix(docker): honor CPython tarfile filter rejection by @msaad00 in #5657
- fix(scanner): verify CPython runtime advisory coverage by @msaad00 in #5660
- fix(tests): isolate SQLite lifespan validation from middleware by @msaad00 in #5661
- fix(tests): isolate proxy fixture listening ports by @msaad00 in #5658
- fix(docker): update service runtimes and preserve runtime fix evidence by @msaad00 in #5662
- fix(ui): preserve mobile path position when sharing selection by @msaad00 in #5659
- fix(api): reconcile campaigns with default evidence stores by @msaad00 in #5663
- fix(sbom): retain SPDX application package inventory by @msaad00 in #5664
- fix(release): require dashboard proof and report scan cache use by @msaad00 in #5665
- ci: shard the full suite on PRs and keep the 4-version matrix on main by @msaad00 in #5667
- fix(scanner): keep letter-suffixed distro fixes; build scale image from source by @msaad00 in #5666
- fix(registries): classify Glama sync lag and diagnose Smithery evidence gaps by @msaad00 in #5672
- fix(api): keep agent reads write-free, gate SAML relay state, bound suppression approvals by @msaad00 in #5669
- perf(api): compact findings list rows and share scan rows across posture reads by @msaad00 in #5670
- docs(changelog): complete 0.108.2 release notes by @msaad00 in #5673
- perf(api): reuse the persisted current-estate projection across restarts by @msaad00 in #5675
- docs(changelog): note current-estate projection reuse in 0.108.2 by @msaad00 in #5676
- chore(repo): tidy root layout by @msaad00 in #5677
- perf(api): let first reads after restart run without background contention by @msaad00 in #5679
Full Changelog: v0.108.1...v0.108.2
agent-bom v0.108.1
Highlights
- Reconcile default inventory and graph reads with the current tenant estate across REST, MCP and the dashboard. Retain clean assets, unrelated targets and partial evidence; preserve explicit historical views and reject stale pagination generations.
- Load configured persisted scan evidence in standalone MCP before API startup, including base installations without API extras. Propagate configured storage failures instead of silently returning an empty estate.
- Redact bearer credentials and short JWTs through pushed and persisted evidence. Retain safe IaC file/line labels, classify repository IaC as application evidence and apply only approved, active suppressions to finding filters.
What's Changed
- chore(release): point published pins at v0.108.0 by @github-actions[bot] in #5591
- fix(ci): verify Docker tag removal against registry manifests by @msaad00 in #5592
- fix(sbom): preserve recorded package dependency hierarchy by @msaad00 in #5593
- fix(sbom): retain cloud scope through redacted exports by @msaad00 in #5594
- fix(sbom): restore cloud evidence on import by @msaad00 in #5595
- fix(ci): restore redaction, SBOM and Postgres contracts by @msaad00 in #5596
- fix(scanner): cache only complete OSV lookup evidence by @msaad00 in #5597
- fix(ingest): scope pushed scan replacement to explicit targets by @msaad00 in #5598
- fix(scanner): distinguish scope exclusions from collection failures by @msaad00 in #5599
- fix(auth): restrict tenant invitations to platform operators by @msaad00 in #5600
- fix(gateway): reject invalid policy regexes and fail closed by @msaad00 in #5601
- fix(governance): require explicit bounded suppression approval by @msaad00 in #5602
- fix(scanner): preserve resolved package and graph identities by @msaad00 in #5604
- chore(deps-dev): bump @types/node from 26.6.3 to 26.6.4 in /sdks/typescript by @dependabot[bot] in #5607
- fix(outputs): preserve source and dependency evidence through exports by @msaad00 in #5606
- fix(runtime): qualify policy validation and suppression upgrades by @msaad00 in #5603
- chore(deps): bump advanced-security/component-detection-dependency-submission-action from 0.1.6 to 0.2.0 by @dependabot[bot] in #5613
- chore(deps): consolidate UI framework and tooling updates by @msaad00 in #5614
- test(findings): keep lifecycle history checks independent of calendar date by @msaad00 in #5615
- fix(scanner): preserve imported identity and partial scan receipts by @msaad00 in #5616
- fix(ui): restore inventory, theme, and current remediation journeys by @msaad00 in #5617
- fix(ingest): redact and audit pushed evidence with derived totals by @msaad00 in #5618
- fix(ci): align remediation E2E with current findings by @msaad00 in #5619
- chore: sync MCP registry — 22 new, 0 trust corrections, 6 versions, 0 CVE updates by @github-actions[bot] in #5620
- fix(ci): qualify server-derived push summaries across tenants by @msaad00 in #5621
- fix(scanner): preserve gem and workspace lock version identity by @msaad00 in #5622
- fix(runtime): bound policy regex validation and enforcement by @msaad00 in #5623
- fix(scanner): retain upstream CVE enrichment and qualify identity contracts by @msaad00 in #5624
- fix(ci): qualify output contracts and bundle fuzzer catalogs by @msaad00 in #5625
- fix(scanner): qualify incomplete inventory verdicts and dogfood scope by @msaad00 in #5626
- chore(release): prepare 0.108.1 scanner and runtime fixes by @msaad00 in #5627
- fix(ci): qualify scoped package scan console verdicts by @msaad00 in #5628
- fix(evidence): reconcile current estate and compact inventory review by @msaad00 in #5629
- fix(deps): consolidate UI updates and patch sharp advisory by @msaad00 in #5633
- fix(ci): stabilize sustained workload deadline tests by @msaad00 in #5636
Full Changelog: v0.108.0...v0.108.1
agent-bom v0.108.0
Highlights
- Inspect component hierarchy, recorded relationships, collector names and timestamps through bounded REST/MCP inventory pages and the dashboard. Snapshot-generation checks reject stale continuations; page completeness remains distinct from source collection coverage.
- Navigate from inventory to exact component findings and control evidence without losing the retained snapshot. Export loaded evidence with source records and completeness receipts.
- Distinguish control mappings from explicit failed benchmark checks, including resource versus account scope. Missing results and supporting detail remain visible; account results are not inherited by child resources.
What's Changed
- chore(release): point published pins at v0.107.2 by @github-actions[bot] in #5560
- fix(release): refresh product proof after published pin updates by @msaad00 in #5561
- fix(graph): reconcile containment context in consumer pages by @msaad00 in #5562
- fix(api): offload feed projection and keep report fixtures current by @msaad00 in #5563
- perf(graph): avoid repeated joins in tenant graph search by @msaad00 in #5565
- fix(graph): bound page evidence and avoid quadratic count plans by @msaad00 in #5564
- fix(graph): expose view controls and reject stale investigation evidence by @msaad00 in #5567
- test(graph): verify demo topology through complete incident pages by @msaad00 in #5570
- test(graph): measure isolated mixed-load scale evidence by @msaad00 in #5571
- chore(deps-dev): bump typescript-eslint from 8.70.1 to 8.71.0 in /ui by @dependabot[bot] in #5569
- fix(test): close graph fixture handles before container handoff by @msaad00 in #5572
- fix(api): validate graph storage before reporting readiness by @msaad00 in #5573
- test(ui): retain first-attempt browser failure diagnostics by @msaad00 in #5574
- docs(architecture): link reproducible graph workload evidence by @msaad00 in #5575
- perf(graph): scope SQLite search and qualify sustained ingestion by @msaad00 in #5576
- fix(container): include git for public repository scans by @msaad00 in #5577
- fix(graph): scope credential slots to server occurrences by @msaad00 in #5579
- fix(onboarding): keep the first dashboard visit usable by @msaad00 in #5578
- fix(scan): preserve secret and PII execution evidence by @msaad00 in #5580
- fix(graph): retain secret and PII finding evidence by @msaad00 in #5581
- fix(scanner): match CPE ranges to vendor versions by @msaad00 in #5582
- fix(security): remove vulnerable glob dependency and correct CPE fixture by @msaad00 in #5583
- feat(inventory): expose bounded component relationships and evidence by @msaad00 in #5584
- feat(findings): inspect exact component evidence in retained snapshots by @msaad00 in #5585
- feat(compliance): retain component scope and explicit check evidence by @msaad00 in #5586
- fix(inventory): support native component paths and prove connected rescans by @msaad00 in #5587
- chore(release): prepare 0.108.0 connected component workflows by @msaad00 in #5588
- docs(product): demonstrate connected component investigation by @msaad00 in #5589
- feat(ui): clarify component control evidence and show both graph layouts by @msaad00 in #5590
Full Changelog: v0.107.2...v0.108.0
agent-bom v0.107.2
Highlights
- Query release CI by the candidate commit so unrelated workflow history cannot hide its successful main run; retain exact-main and completed-success checks.
- Queue same-process SQLite graph mutations in arrival order before schema setup, preserving bounded contention errors, failed-producer rollback and concurrent initialized readers.
- Keep SQLite graph startup metadata repairs indexed after migration, and reinitialize read schema state when a database is replaced at the same path. Late legacy relationship metadata remains repairable.
What's Changed
Full Changelog: v0.107.1...v0.107.2
agent-bom v0.107.0
Highlights
- Guided first scans connect an empty workspace to scan and connection actions, with browser-local report previews and an explicit return to live evidence. CLI quickstart prints the saved report, package-CVE coverage boundary and exact graph snapshot link.
- Context Map supports Auto, Horizontal and Vertical layouts, bounded recorded-relationship inspection, and separate Fit all and Readable view controls. Collapse preserves independently loaded branches and reframes the remaining canvas.
- Local readiness checks work without network probes and retain skipped or incomplete states. Imported reports disclose partial or unknown collection coverage; file timestamps remain distinct from successful live scans.
What's Changed
- chore(release): point published pins at v0.106.1 by @github-actions[bot] in #5396
- fix(onboarding): align persona commands with published release by @msaad00 in #5397
- fix(identity): bind agent evidence by scoped IDs by @msaad00 in #5400
- test: keep time-windowed fixtures relative to today by @msaad00 in #5401
- feat(evidence): define a validated per-agent BOM profile by @msaad00 in #5399
- fix(ci): use the registry-origin OIDC audience for MCP Registry publishing by @msaad00 in #5398
- feat(evidence): export per-agent BOMs from completed scans by @msaad00 in #5402
- feat(ui): inspect scan and graph evidence with agent BOM exports by @msaad00 in #5404
- fix(ci): alert on persistent main failures and registry drift, not one-off runs by @msaad00 in #5403
- feat(evidence): persist agent lifecycle references and BOM history by @msaad00 in #5405
- fix(cloud): unique scan identity, safe push rollback, honest cloud CIS verdicts by @msaad00 in #5407
- fix: release checkouts run their own version; compliance maps credentials, PII and code flaws; executive headline by @msaad00 in #5408
- fix: one agent per project, job-id exposure paths, truthful overview counts and gating by @msaad00 in #5409
- ci: five-minute PR fast lane; long suites run after merge and nightly by @msaad00 in #5412
- fix: API and MCP scan parity with the CLI, external-report correlation, and scan accuracy by @msaad00 in #5410
- fix(scan): preserve selected releases and explicit agent identities by @msaad00 in #5413
- fix(cis): count equivalent cloud control checks once by @msaad00 in #5414
- fix(graph): fence pushed snapshot rollback by write generation by @msaad00 in #5415
- fix(ci): align recovery guidance with live protection by @msaad00 in #5416
- fix(scan): preserve SBOM scope and reject stale KEV evidence by @msaad00 in #5417
- fix(cli): scan intended quickstart surfaces explicitly by @msaad00 in #5418
- fix: purl intel lookup, moderate/important severity, SSRF non-global IPs, org-mode AWS region by @msaad00 in #5419
- fix(scan): preserve typed findings and durable MCP results by @msaad00 in #5420
- fix(cloud): reject unscoped jobs and incomplete bucket passes by @msaad00 in #5421
- refactor(core): centralize security semantics and enforce architecture boundaries by @msaad00 in #5422
- fix(graph): preserve Azure resource-group scope and isolate role projection by @msaad00 in #5423
- refactor(auth): centralize route policy and align permission discovery by @msaad00 in #5424
- refactor(core): isolate package identity and ecosystem version rules by @msaad00 in #5425
- feat(connectors): add Jamf and CrowdStrike Falcon inventory sync by @msaad00 in #5426
- refactor(identity): isolate credential policy from API and configuration by @msaad00 in #5427
- refactor(scan): isolate graph snapshot persistence workflow by @msaad00 in #5428
- fix(auth): reject incomplete tenant context across requests and workers by @msaad00 in #5429
- perf: cut scan export, redaction and startup cost by @msaad00 in #5430
- fix(auth): enforce operation scopes and live session ceilings by @msaad00 in #5431
- fix(mcp): repair endpoint output fixture and select tool contracts by @msaad00 in #5432
- fix(mcp): bind dispatch and saved results to verified identity by @msaad00 in #5434
- fix(ci): verify Glama from its schema contract when the directory API is empty by @msaad00 in #5433
- fix(auth): revalidate credentials on active and idle streams by @msaad00 in #5436
- fix(ci): restore source-scoped ingestion and current contracts by @msaad00 in #5437
- fix: per-agent findings without leakage, exploitability-ranked attack paths, one posture number by @msaad00 in #5435
- fix(overview): count current CVE findings across ingestion paths by @msaad00 in #5438
- fix(gateway): preserve explicit tenant authority through relay by @msaad00 in #5439
- refactor(gateway): isolate relay, audit lifecycle and settings by @msaad00 in #5440
- test(graph): wait for mobile path geometry after theme changes by @msaad00 in #5441
- refactor(graph): isolate report projections and typed storage port by @msaad00 in #5443
- refactor(gateway): separate HTTP authentication and request helpers by @msaad00 in #5444
- test(ci): repair posture and registry contract fixtures by @msaad00 in #5445
- fix(gateway): require trusted conditional-access context by @msaad00 in #5447
- refactor(core): remove duplicate cross-surface judgments by @msaad00 in #5448
- fix(auth): suspend inherited maintenance authority during tenant work by @msaad00 in #5449
- refactor(scan): split the scan command into bounded stages by @msaad00 in #5446
- test(scan): keep characterization fixture path segments short by @msaad00 in #5451
- refactor(gateway): isolate policy reload state and tenant lookups by @msaad00 in #5452
- ci(security): scope the reference lab's intentional Pillow pin out of OSV results by @msaad00 in #5453
- ci: refresh the product-proof digest after #5453; add a second code owner by @msaad00 in #5454
- fix(auth): bind scheduled work to explicit tenant authority by @msaad00 in #5455
- perf(api): serve posture, compliance and agent reads from cached aggregates; non-blocking demo boot by @msaad00 in #5450
- fix(graph): correlate cloud authorization by native identity by @msaad00 in #5456
- fix: schema-valid SPDX 3 output; run sync API handlers off the event loop; cap list limits by @msaad00 in #5442
- fix(security): render untrusted cloud and ticketing log values on one line by @msaad00 in #5458
- refactor(gateway): isolate authorized forwarding and response policy by @msaad00 in #5460
- perf(api): precompute posture issue counts when scan evidence is written by @msaad00 in #5457
- refactor(graph): compose report builds through typed projection stages by @msaad00 in #5461
- fix(gateway): withhold results when visual screening fails by @msaad00 in #5463
- refactor(architecture): enforce layer contracts and remove the API dependency on the CLI by @msaad00 in #5459
- refactor(mcp): compose bounded operator tool registrations by @msaad00 in #5462
- fix(graph): preserve cloud resource scope in graph joins by @msaad00 in #5464
- fix(mcp): support synchronous identity handlers by @msaad00 in #5466
- fix(api): enforce tenant scope for source records by @msaad00 in #5465
- ci(codeql): let main-branch analyses finish instead of cancelling them by @msaad00 in #5467
- test(scan): run...
agent-bom v0.106.1
Highlights
- Scope
GET /v1/graph/exposure-pathsandPOST /v1/graph/should-i-deployto the authenticated request tenant. These REST routes previously resolved the MCP process tenant, so on SQLite every tenant received thedefaulttenant's credential-exposure paths and deploy verdict, and on Postgres with row-level security every tenant received an empty result. - Keep demo estate data out of product stores. Demo mode now pins every local store to
AGENT_BOM_DEMO_STATE_DIR(default<state dir>/demo-estate) before any store opens, refuses explicit store paths that point into product state, and refuses to seed over a non-demo snapshot. - Bounded relationship paging across SQLite, Postgres, REST, and persisted Context exploration. Tenant-scoped cursors and generation checks prevent combining evidence across replaced snapshots.
What's Changed
- fix(release): fetch release tags in the version guard and complete the 0.106.0 notes by @msaad00 in #5392
- docs(readme): lead with the context map, self-host and deployment models by @msaad00 in #5393
- chore(release): prepare 0.106.1 by @msaad00 in #5394
- fix(ci): wait out a pending cancellation in stranded-PR recovery by @msaad00 in #5395
Full Changelog: v0.106.0...v0.106.1
agent-bom v0.105.0
Highlights
- Opt-in
agent-bom secrets --validate-credentialschecks for supported GitHub and Stripe credentials, with bounded read-only requests andvalid/invalid/unknownverdicts. Default scans make no validation requests; unsupported credentials remain unknown and finding severity is preserved. - Optional Iceberg REST OAuth scope and token-endpoint configuration for Apache Polaris, alongside existing credential and bearer-token authentication.
- Align the PyPI description with the seven shipped MCP resources and check resource/prompt counts in lists that contain serial commas.
What's Changed
- fix(deploy): retry exact default-profile release checks by @msaad00 in #5187
- chore(docker-mcp): pin the submission to v0.104.0 by @github-actions[bot] in #5186
- fix(ci): retry incomplete Smithery schema convergence by @msaad00 in #5188
- fix(ci): verify Glama profile metadata against released schemas by @msaad00 in #5189
- fix(ci): retry complete Smithery schema evidence before publishing by @msaad00 in #5190
- fix(ui): lead with assets and enable scan stage investigation by @msaad00 in #5191
- fix(graph): classify repository dependency inventory as code assets by @msaad00 in #5192
- fix(ingest): support bounded compressed report uploads by @msaad00 in #5193
- fix(findings): reconcile package versions without duplicate rows by @msaad00 in #5194
- fix(lake): version additive Parquet SLA provenance by @msaad00 in #5196
- fix(secrets): report pruned coverage and reject false-clean exits by @msaad00 in #5195
- fix(exports): recover durable report jobs across replicas by @msaad00 in #5201
- chore(deps): consolidate UI and SDK updates with MCP major guard by @msaad00 in #5209
- fix(runtime): enforce response DLP across proxy transports by @msaad00 in #5202
- fix(api): preserve secret scan coverage in repository reports by @msaad00 in #5210
- fix(scan): report shared traversal coverage exclusions by @msaad00 in #5211
- feat(secrets): add bounded read-only credential validators by @msaad00 in #5212
- fix(cwe): preserve structured weakness taxonomy in UI and SARIF by @msaad00 in #5213
- fix(ci): reuse audits for unchanged Python dependency inputs by @msaad00 in #5214
- fix(ui): make proposed graph changes readable and reviewable by @msaad00 in #5216
- feat(secrets): preserve opt-in validation verdicts through scanning by @msaad00 in #5215
- fix(ui): prioritize overview risks and clarify graph evidence by @msaad00 in #5219
- fix(proxy): reap normal server exits before signaling shutdown by @msaad00 in #5217
- fix(ci): fail closed on OSV scan and report errors by @msaad00 in #5218
- feat(secrets): expose explicit credential validation CLI consent by @msaad00 in #5220
- fix(lake): configure Polaris OAuth scope and token endpoint by @msaad00 in #5221
- ci(codeql): skip redundant prose and image push analysis by @msaad00 in #5222
- test(secrets): verify credential-validation safety contracts by @msaad00 in #5223
- chore(release): prepare 0.105.0 by @msaad00 in #5224
- fix(matcher): retain enumerated OSV versions alongside ranges by @msaad00 in #5227
- fix(graph): restore bounded investigations and clear evidence workflows by @msaad00 in #5228
- fix(overview): restore full posture-first tabs and demo evidence by @msaad00 in #5229
- perf(graph): reduce concurrent SQLite roll-up latency by @msaad00 in #5230
- docs(release): align 0.105.0 notes with merged fixes by @msaad00 in #5231
- chore(deps): consolidate UI, SDK and GitHub Actions updates by @msaad00 in #5242
- chore(maintenance): consolidate registry and dependency updates by @msaad00 in #5246
- fix(evidence): preserve product assessments and finding context by @msaad00 in #5247
- fix(graph): preserve direction and context through investigations by @msaad00 in #5248
- fix(ui): compact overview and open benchmark evidence in context by @msaad00 in #5249
- fix(runtime): inspect upstream errors and reap children on termination by @msaad00 in #5250
- fix(graph): keep focused nodes visible beside details by @msaad00 in #5253
- fix(scanner): resolve positional LangChain tool bindings by @msaad00 in #5251
- fix(evidence): reconcile current findings across ingestion sources by @msaad00 in #5252
- docs(ui): refresh graph capture provenance by @msaad00 in #5254
- docs(release): include final runtime and evidence fixes by @msaad00 in #5255
- chore(deps): bump the next-stack group in /ui with 3 updates by @dependabot[bot] in #5256
- chore(deps): consolidate UI virtualization and icon updates by @msaad00 in #5259
- fix(release): validate MCP counts in comma-separated descriptions by @msaad00 in #5261
- fix(ui): report remediation taxonomy mappings accurately by @msaad00 in #5262
- docs(release): use published image version tags by @msaad00 in #5263
Full Changelog: v0.104.0...v0.105.0
agent-bom v0.104.0
Highlights
- Preserve live gateway activity through the production dashboard proxy and resume from the last event cursor after reconnect. Postgres identity upgrades add the managed-profile lookup while preserving legacy installations that have not provisioned identity storage.
- Upgrade the dashboard's YAML parser and image-processing dependencies to js-yaml 4.3.2 and sharp 0.35.4. Distribution freshness checks now pass their configured timeout and retry budget to the Glama probe.
- Preserve the imported report’s scan ID in finding links so investigation opens its persisted graph snapshot.
What's Changed
- chore(docker-mcp): pin the submission to v0.103.2 by @github-actions[bot] in #5056
- fix(deploy): supersede stale demo approvals by @msaad00 in #5058
- chore(deps-dev): bump @humanfs/node from 0.16.7 to 0.16.8 in /ui by @dependabot[bot] in #5059
- fix(product): keep correlation proof truthful and reproducible by @msaad00 in #5062
- fix(cli): make first-run evidence resilient by @msaad00 in #5063
- fix(release): sign refreshed latest images by @msaad00 in #5064
- feat(graph): persist signed correlation receipts by @msaad00 in #5065
- fix(cli): verify quickstart runtime handoff by @msaad00 in #5067
- fix(cloud): bound and sanitize provider execution by @msaad00 in #5066
- chore(deps): bump lucide-react from 1.37.0 to 1.38.0 in /ui by @dependabot[bot] in #5068
- fix(release): refresh product screenshot provenance by @msaad00 in #5069
- feat(graph): harden durable correlation orchestration by @msaad00 in #5071
- fix(graph): focus correlation decisions and path proof by @msaad00 in #5072
- fix(ui): compact correlation path proof by @msaad00 in #5073
- fix(ci): restore main release gates by @msaad00 in #5077
- fix(ci): batch npm bulk advisory checks by @msaad00 in #5079
- fix(graph): honor non-traversable campaign edges by @msaad00 in #5081
- fix(mcp): use streamable HTTP for introspection by @msaad00 in #5082
- feat(evidence): add canonical truth dimensions by @msaad00 in #5080
- feat(graph): expose independent path evidence by @msaad00 in #5085
- fix(ci): restore bounded npm bulk advisory gate by @msaad00 in #5087
- fix(ci): enforce bounded npm advisory batches by @msaad00 in #5095
- fix(ci): require exact marketplace tool contracts by @msaad00 in #5097
- feat(identity): define provider-neutral join contract by @msaad00 in #5083
- feat(mcp): record protocol compatibility contract by @msaad00 in #5084
- chore(deps): consolidate routine dependency updates by @msaad00 in #5096
- fix(api): bind host discovery and UI scans to explicit scope by @msaad00 in #5098
- fix(postgres): keep role validation fail-closed across retries by @msaad00 in #5099
- fix(scan): retain explicit project IaC with no-discover by @msaad00 in #5100
- fix(mcp): enforce runtime evidence write authorization by @msaad00 in #5101
- fix(auth): honor explicit loopback bootstrap roles by @msaad00 in #5102
- fix(ui): honor the standalone runtime API destination by @msaad00 in #5103
- fix(graph): require complete path evidence by @msaad00 in #5104
- fix(evidence): preserve scoped graph proof and setup contracts by @msaad00 in #5106
- fix(ui): simplify investigation flow and evidence presentation by @msaad00 in #5107
- fix(ci): validate README contracts before merge by @msaad00 in #5109
- fix(registry): verify public schemas and migrate Smithery namespace by @msaad00 in #5110
- fix(registry): require schema evidence in daily monitors by @msaad00 in #5111
- fix(registry): verify complete Smithery public schemas by @msaad00 in #5112
- fix(mcp): default to focused task profiles by @msaad00 in #5113
- fix(auth): bind runtime ingestion to expiring source credentials by @msaad00 in #5114
- fix(ui): qualify correlation evidence claims by @msaad00 in #5115
- test(auth): stabilize future credential validation by @msaad00 in #5117
- fix(onboarding): unify the first scan contract by @msaad00 in #5118
- fix(delivery): align container and CI execution contracts by @msaad00 in #5120
- fix(ui): make first-use navigation accessible by @msaad00 in #5119
- docs(product): clarify graph scope and compliance evidence by @msaad00 in #5121
- fix(api): protect control-plane availability and disable production docs by @msaad00 in #5122
- fix(ci): stabilize proof generation across Python and SQLite runtimes by @msaad00 in #5124
- docs(product): show reproducible human and agent workflows by @msaad00 in #5125
- fix(ui): clarify evidence-driven investigation and overview by @msaad00 in #5127
- fix(quickstart): verify freshness at persisted timestamp precision by @msaad00 in #5126
- fix(graph): preserve imported SBOM provenance by @msaad00 in #5129
- fix(auth): disable unapproved embedded OAuth token issuance by @msaad00 in #5128
- fix(inventory): preserve identity and snapshot consistency by @msaad00 in #5130
- fix(graph): bind skill findings to their source owner by @msaad00 in #5144
- fix(ui): align overview evidence and status readability by @msaad00 in #5131
- fix(api): align listener and storage diagnostics by @msaad00 in #5132
- fix(graph): preserve readable finding groups and navigation by @msaad00 in #5133
- chore: sync MCP registry — 10 new, 0 trust corrections, 11 versions, 0 CVE updates by @github-actions[bot] in #5142
- chore(deps): consolidate UI dependency updates by @msaad00 in #5145
- fix(ui): preserve operational evidence and setup interactions by @msaad00 in #5149
- fix(perf): count completed Postgres benchmark operations by @msaad00 in #5146
- chore(deps): consolidate core dependency maintenance by @msaad00 in #5148
- fix(ui): consolidate overview layout and graph navigation by @msaad00 in #5150
- fix(findings): preserve observation anchors and SLA deadlines by @msaad00 in #5152
- docs(readme): lead with a visible CLI demo and concise first run by @msaad00 in #5153
- fix(ui): clarify finding evidence and configured agent relationships by @msaad00 in #5155
- fix(runtime): bound configured MCP and gateway credentials by @msaad00 in #5154
- fix(ui): polish overview coverage and investigation layouts by @msaad00 in #5157
- fix(cwpp): preserve retry scope and cleanup recovery evidence by @msaad00 in #5156
- fix(runtime): preserve producer assurance and stable receipt evidence by @msaad00 in #5159
- fix(finops): aggregate complete tenant cost totals and qualify history by @msaad00 in #5158
- fix(workflows): qualify AI spend and preserve Skills scan scope by @msaad00 in #5160
- chore(release): prepare 0.104.0 by @msaad00 in #5161
- chore(deps): consolidate UI dependency updates by @msaad00 in #5168
- chore(deps): consolidate routine updates into a weekly batch by @msaad00 in #5169
- fix(release): preserve evidence across scans, investigations and audit by @msaad00 in #5164
- feat(runtime): stream resumable gateway activit...