Skip to content

Commit d8d497a

Browse files
authored
chore(release): cut v0.8.0 (#35)
CHANGELOG [Unreleased] -> [0.8.0] (events v2 call-form registrations; dogfooding quality fixes: repo prompt, Laplace confidence, mine claim text, dynamic __version__); pyproject + uv.lock 0.7.0 -> 0.8.0; README status headline and DESIGN banner -> v0.8.
1 parent 6dc5c53 commit d8d497a

5 files changed

Lines changed: 7 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ All notable changes to this project are documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [Unreleased]
8+
## [0.8.0] - 2026-07-09
99

1010
### Fixed
1111

@@ -389,7 +389,8 @@ freshness).
389389
import oracle, Tier-4 one-hop invalidation, and the store/provenance invariants — run in CI
390390
against a PostgreSQL 17 service.
391391

392-
[Unreleased]: https://github.com/v0ropaev/knowbase/compare/v0.7.0...HEAD
392+
[Unreleased]: https://github.com/v0ropaev/knowbase/compare/v0.8.0...HEAD
393+
[0.8.0]: https://github.com/v0ropaev/knowbase/compare/v0.7.0...v0.8.0
393394
[0.7.0]: https://github.com/v0ropaev/knowbase/compare/v0.6.0...v0.7.0
394395
[0.6.0]: https://github.com/v0ropaev/knowbase/compare/v0.5.0...v0.6.0
395396
[0.5.0]: https://github.com/v0ropaev/knowbase/compare/v0.4.0...v0.5.0

DESIGN.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# knowbase — Design
22

3-
> Status: **agreed MVP design**, implemented through **v0.7**. This document is the source of truth
3+
> Status: **agreed MVP design**, implemented through **v0.8**. This document is the source of truth
44
> for the architecture. It supersedes the original free-form spec. Load-bearing decisions that are
55
> expensive to change later are marked **[LOCKED]**; everything else is revisable. The MVP vertical
66
> slice in §8 has shipped (provenance spine, import + FastAPI + domain-entity + library-surface

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ flowchart LR
8484

8585
## Status
8686

87-
**v0.7 — spine (artifact-identity rule v2), six deterministic extractors (cross-file grounding, incl. the library public-API surface, event handlers, and call-graph edges) plus the grounded process-path builder over them, LLM-grounded descriptions up to whole-repo architecture overviews and business-process-path labels, ADR-candidate mining from git history (`kb mine`), live incremental re-index (`kb watch`), MCP serving, the fifteen knowledge gates, and published Docker images.** Everything here grounds what it claims, and nothing it cannot:
87+
**v0.8 — spine (artifact-identity rule v2), six deterministic extractors (cross-file grounding, incl. the library public-API surface, event handlers, and call-graph edges) plus the grounded process-path builder over them, LLM-grounded descriptions up to whole-repo architecture overviews and business-process-path labels, ADR-candidate mining from git history (`kb mine`), live incremental re-index (`kb watch`), MCP serving, the fifteen knowledge gates, and published Docker images.** Everything here grounds what it claims, and nothing it cannot:
8888

8989
- **Provenance spine** — content-addressed `span_id` (LOCKED); tree-sitter spans with a normalized S-expression fingerprint and per-SHA location; a single-Postgres, Alembic-managed store with content-addressed idempotent writes; the ≥ 1 `derived_from` anti-hallucination invariant enforced in-app *and* by a deferred DB trigger; pygit2 git ingest (no checkout) with a diff-based invalidation seed.
9090
- **Deterministic extractors** — the **import / dependency graph** (grimp resolves the edge, tree-sitter grounds it on the exact import statement, with an honest `approximate` fallback for re-exports / relative / unmappable imports — never a silent loss); the **FastAPI API-contract** extractor, which grounds a single route **across files** (handler in `routes.py` + `response_model` class in `schemas.py`); the **domain-entity** extractor (pydantic / dataclass / SQLAlchemy classes and their fields, grounded on the class definition **and cross-file on the entities they reference** — purely static, with documented detection limits); the **library public-API-surface** extractor (what a package exposes from its `__init__.py` — `__all__`-authoritative, with `__init__` re-exports resolved **cross-file** to the defining function/class — validated against an independent **griffe** static oracle); the **event-handler** extractor (pydantic `@field_validator`/`@model_validator`, FastAPI `@app.on_event`, SQLAlchemy `@event.listens_for` **and the module-level call-form `event.listen(Target, "e", fn)`** — one artifact per handler, grounded on the handler span, **cross-file** on the class it listens to, and on the registering file for call-form wiring; function-body/lambda `listen` and dynamic names are documented gaps); and the **call-graph edge** extractor (deterministic caller→callee edges — same-module, imported **cross-file**, and `self.` method calls — one `call_edge` per resolved pair with call-site lines aggregated; `obj.method(...)`, `getattr`, inherited self-calls and decorator/default-arg expressions are documented gaps; the deterministic foundation under the future business-process extractor); and the **process-path builder** (second-order: BFS over the call edges from extracted entrypoints — route/event handlers — to sink-registry matches, one `process_path` grounded on EVERY span of the chain, multi-file provenance; built-in sink registry + per-repo `.kb/sinks.yaml` override).

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "knowbase"
3-
version = "0.7.0"
3+
version = "0.8.0"
44
description = "Versioned, provenance-grounded knowledge layer over a codebase"
55
readme = "README.md"
66
requires-python = ">=3.12"

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)