Compare commits
1 commit
codex/cros
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 3d5fa4e9e8 |
12 changed files with 86 additions and 37 deletions
|
|
@ -2,16 +2,20 @@
|
|||
|
||||
```text
|
||||
Last completed milestone: 5 - stabilization and first DocForge2 release.
|
||||
Release: 1.4.0.
|
||||
Release: 2.0.0.
|
||||
Active milestone: none.
|
||||
Maintenance: Current product documentation boundary cleanup complete.
|
||||
Maintenance: DocForge2 version identity and cross-identity proposal acceptance released.
|
||||
Status: Complete.
|
||||
```
|
||||
|
||||
## Current state
|
||||
|
||||
DocForge2 `1.4.0` is the released product baseline. Current behavior is defined by the contracts and
|
||||
guides under `docs/`. `SLICE_HISTORY.md` contains DocForge2 milestone summaries only.
|
||||
DocForge2 `2.0.0` is the released product baseline. Current behavior is defined by the contracts
|
||||
and guides under `docs/`. `SLICE_HISTORY.md` contains DocForge2 milestone summaries only.
|
||||
|
||||
The release adds an explicit accepted-writer allowlist for project-owned canonical appliers.
|
||||
Same-identity application remains the default. Contributor processes receive no application tool,
|
||||
and successful receipts record both the proposal creator and applier.
|
||||
|
||||
The live documentation set contains current product contracts, current operating guidance, and
|
||||
current successor milestone evidence. Superseded product plans and policy notes remain available
|
||||
|
|
@ -28,7 +32,26 @@ only through repository history and are not part of normal documentation validat
|
|||
graph passed.
|
||||
- Focused adapter and changeset verification passed 45 tests plus 2 subtests.
|
||||
|
||||
## Maintenance proof - 2026-08-02
|
||||
|
||||
- Compared exact released commit `f9a05f868eec6c35e2b74a69467459e6ff2190bf` with exact development
|
||||
commit `7b21541ab37c35dc9f3d47f631fef0c1884f9525` in isolated locked environments.
|
||||
- The development repository gate passed formatting, Ruff, web lint, strict Pyright, compilation,
|
||||
142 contract tests plus 272 subtests, 381 complete tests plus 422 subtests, three accessibility
|
||||
flows, dependency, build, documentation, and five smoke benchmark gates.
|
||||
- Compatibility passed 116 tests plus 263 subtests, concurrency and application passed 31 tests
|
||||
plus 2 subtests, recovery passed 72 tests plus 62 subtests, offline fresh-wheel adoption passed,
|
||||
reproducible artifact checks passed, and Git plus directory secret scans found no leaks.
|
||||
- All six full maintained benchmark tracks passed. Across 66 multi-sample operations, the median
|
||||
absolute development-versus-release difference was 0.71%; 65 remained within 5%, and the only
|
||||
larger difference was 0.062 ms on a 1.156 ms viewer-overview operation.
|
||||
- Reference-adapter graph and Logic evidence and representative-task semantic evidence matched the
|
||||
release exactly. All six representative tasks retained exact answers.
|
||||
- Anonymous exact-commit fresh clones of both revisions completed the full release gate offline and
|
||||
remained clean. The development rehearsal completed in 283.490 seconds versus 282.091 seconds for
|
||||
the release.
|
||||
|
||||
## Next gate
|
||||
|
||||
No implementation milestone is active. Create one explicit bounded contract before changing
|
||||
product behavior, version identity, release state, or public integration.
|
||||
No implementation milestone is active. Any additional product behavior, version identity change,
|
||||
release, or public integration requires its own bounded contract.
|
||||
|
|
|
|||
|
|
@ -5,10 +5,16 @@ remains in `docs/MILESTONE_*_BASELINE.md` and `docs/MILESTONE_*_CLOSEOUT.md`.
|
|||
|
||||
## Unreleased
|
||||
|
||||
## 2.0.0 - 2026-08-02
|
||||
|
||||
- Established `2.0.0` as the unambiguous package, Python, CLI, MCP, viewer-manager, and generated
|
||||
client identity for DocForge2 without changing descriptor, result, adapter, or index schemas.
|
||||
- Project-owned MCP servers can explicitly authorize a canonical applier to accept exact-hash
|
||||
changesets from additional configured proposal writers. The default remains same-identity
|
||||
application, contributor processes receive no application tool, and application receipts record
|
||||
both the proposal creator and applier.
|
||||
- Retained the full DocForge 1.4 compatibility, recovery, migration, benchmark, and reproducible
|
||||
artifact gates.
|
||||
|
||||
## 1.4.0 - 2026-07-29
|
||||
|
||||
|
|
|
|||
|
|
@ -9,9 +9,10 @@ DocForge never treats indexed text as instructions. It does not run project buil
|
|||
compilers, Git operations, deployments, or arbitrary renderers, and it does not select projects
|
||||
globally.
|
||||
|
||||
DocForge 1.4.0 is the first stable DocForge2 successor release. It contains the complete adapter
|
||||
platform, stabilization and recovery evidence, representative real-task proof, and reproducible
|
||||
release artifacts. Annotated tag `v1.4.0` identifies the synchronized release commit.
|
||||
DocForge 2.0.0 is the current stable DocForge2 release. It gives the successor product an
|
||||
unambiguous major-version identity, preserves the complete 1.4 adapter and recovery platform, and
|
||||
adds explicit cross-identity proposal acceptance for project-owned canonical appliers. Annotated
|
||||
tag `v2.0.0` identifies the synchronized release commit.
|
||||
|
||||
## Start here
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,25 @@
|
|||
This file records DocForge2 milestones only. Product behavior is defined by the current contracts
|
||||
under `docs/`, not by milestone notes.
|
||||
|
||||
## 2026-08-02 - DocForge 2.0 release
|
||||
|
||||
- Verified the unreleased explicit accepted-writer policy at development commit
|
||||
`7b21541ab37c35dc9f3d47f631fef0c1884f9525` against released `v1.4.0` commit
|
||||
`f9a05f868eec6c35e2b74a69467459e6ff2190bf` in isolated locked environments.
|
||||
- Preserved same-identity application as the default, kept contributor processes without an
|
||||
application tool, and proved explicit allowlisted application with creator and applier receipts.
|
||||
- The development repository gate passed 142 contract tests plus 272 subtests, 381 complete tests
|
||||
plus 422 subtests, three accessibility flows, and all static, build, documentation, and smoke
|
||||
benchmark checks.
|
||||
- Compatibility passed 116 tests plus 263 subtests, concurrency and application passed 31 tests
|
||||
plus 2 subtests, recovery passed 72 tests plus 62 subtests, and adoption, reproducible-artifact,
|
||||
migration, secret-scan, and anonymous fresh-clone release gates passed.
|
||||
- All full maintained benchmark tracks passed. The median absolute difference across 66
|
||||
multi-sample operations was 0.71%, exact adapter graph and Logic evidence matched, and all six
|
||||
representative task answers remained exact.
|
||||
- Released the verified candidate as `2.0.0`, giving DocForge2 an unambiguous distribution and
|
||||
executable identity while preserving its versioned schemas and compatibility contracts.
|
||||
|
||||
## 2026-07-31 - live-documentation boundary cleanup
|
||||
|
||||
- Replaced the historical application-decision memo with the current canonical-application
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
Milestone 0 establishes DocForge2 as the successor repository without renaming or replacing the
|
||||
working DocForge interfaces. Compatibility changes require an explicit decision, a contract-test
|
||||
update, and migration guidance. DocForge 1.4.0 preserves that baseline and adds the adapter,
|
||||
rendering, recovery, and release surfaces recorded below.
|
||||
update, and migration guidance. DocForge 2.0.0 preserves that baseline and the complete 1.4
|
||||
adapter, rendering, recovery, and release surfaces recorded below.
|
||||
|
||||
The compatibility gate is:
|
||||
|
||||
|
|
@ -69,9 +69,9 @@ names and arguments remain supported. Additive commands, tools, and response fie
|
|||
Removing or changing an existing name, required argument, stable error code, or safety boundary
|
||||
requires an explicit compatibility decision.
|
||||
|
||||
Version `1.4.0` comes from one `docforge._version` authority. The four maintained executable
|
||||
surfaces report `docforge 1.4.0`, `docforge-mcp 1.4.0`,
|
||||
`python -m docforge.reference_mcp 1.4.0`, and `docforge-viewer-manager 1.4.0` for `--version`.
|
||||
Version `2.0.0` comes from one `docforge._version` authority. The four maintained executable
|
||||
surfaces report `docforge 2.0.0`, `docforge-mcp 2.0.0`,
|
||||
`python -m docforge.reference_mcp 2.0.0`, and `docforge-viewer-manager 2.0.0` for `--version`.
|
||||
Generated generic and adapter client configurations include and hash-bind the same
|
||||
`docforge_version`.
|
||||
|
||||
|
|
@ -285,7 +285,7 @@ other users and ordinary path access; deliberate arbitrary tampering by another
|
|||
same operating-system UID is outside the compatibility boundary.
|
||||
|
||||
The historical `v1.0.0` release carried distribution metadata `1.0.0` while its module and MCP
|
||||
runtime reported `0.15.0`. Version 1.4.0 records that inherited mismatch in its maintained
|
||||
runtime reported `0.15.0`. Version 2.0.0 records that inherited mismatch in its maintained
|
||||
migration proof and resolves current identity through one authority. See
|
||||
[migrating from v1](MIGRATING_FROM_V1.md).
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# DocForge 1.4 contract
|
||||
# DocForge 2.0 contract
|
||||
|
||||
## Authority boundary
|
||||
|
||||
|
|
@ -34,7 +34,7 @@ commit when Git is available; it cannot change repository state.
|
|||
- Reference adapter configuration: `schemas/reference-adapter.schema.json`, version 1.
|
||||
- Index schema: version 3, disposable and reproducible.
|
||||
- Index attestation: schema version 1, disposable and reproducible.
|
||||
- Distribution, Python package, CLI, generic MCP, reference MCP, and viewer manager: version 1.4.0.
|
||||
- Distribution, Python package, CLI, generic MCP, reference MCP, and viewer manager: version 2.0.0.
|
||||
- Incremental extraction cache: version 1, disposable and reproducible.
|
||||
|
||||
Schema files describe the generic interchange contract. Runtime validation remains responsible for
|
||||
|
|
@ -42,8 +42,8 @@ path confinement, source hashing, relationship resolution, dependency cycles, pr
|
|||
state, and adapter-specific rules that JSON Schema cannot prove by itself.
|
||||
|
||||
`src/docforge/_version.py` is the sole package-version authority. The maintained executable
|
||||
surfaces report exactly `docforge 1.4.0`, `docforge-mcp 1.4.0`,
|
||||
`python -m docforge.reference_mcp 1.4.0`, and `docforge-viewer-manager 1.4.0` for `--version`.
|
||||
surfaces report exactly `docforge 2.0.0`, `docforge-mcp 2.0.0`,
|
||||
`python -m docforge.reference_mcp 2.0.0`, and `docforge-viewer-manager 2.0.0` for `--version`.
|
||||
Generated generic and adapter client configurations bind `docforge_version` into their validated
|
||||
hashes.
|
||||
|
||||
|
|
|
|||
|
|
@ -22,13 +22,13 @@ Disposable index and cache schemas may change. Rebuild them rather than copying
|
|||
## Maintained v1.0.0 migration evidence
|
||||
|
||||
`make migration-m5` archives and executes the actual annotated `v1.0.0` release, then opens its
|
||||
fixture, index, and active proposal through DocForge 1.4.0. The frozen tag object is
|
||||
fixture, index, and active proposal through DocForge 2.0.0. The frozen tag object is
|
||||
`2d7d306a37da89f1c860c7f0be161c45386acf61`; it identifies commit
|
||||
`593c173b453236a6872d0a4e88e7a51a67a21cde`.
|
||||
|
||||
The tagged release contains an inherited identity mismatch that the migration proof records
|
||||
rather than hiding: distribution metadata says `1.0.0`, while `docforge.__version__` and the MCP
|
||||
server report `0.15.0`. DocForge 1.4.0 replaces that duplicated state with one authoritative
|
||||
server report `0.15.0`. DocForge 2.0.0 replaces that duplicated state with one authoritative
|
||||
version and requires its package and server values to agree.
|
||||
|
||||
The maintained fixture evidence is exact:
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ people and AI agents can search, inspect, visualize, and change through reviewab
|
|||
Canonical project files remain authoritative. The SQLite graph, previews, rendered manuals, and
|
||||
viewer processes are derived and can be rebuilt.
|
||||
|
||||
This manual describes the DocForge 1.4.0 release. The tagged `v1.0.0` baseline was the first stable
|
||||
product release. Version 1.4.0 preserves its project-scoped graph, CLI and MCP query
|
||||
This manual describes the DocForge 2.0.0 release. The tagged `v1.0.0` baseline was the first stable
|
||||
product release. Version 2.0.0 preserves its project-scoped graph, CLI and MCP query
|
||||
surfaces, hash-approved proposal application, generic and project-owned adapters, declared
|
||||
rendering, and Nodes/Flow/Web model while adding the maintained incremental, projection, adapter
|
||||
SDK, recovery, and release proofs documented below.
|
||||
|
|
@ -132,8 +132,8 @@ python -m docforge.reference_mcp --version
|
|||
python -m docforge.viewer_manager --version
|
||||
```
|
||||
|
||||
For version 1.4.0 these report `docforge 1.4.0`, `docforge-mcp 1.4.0`,
|
||||
`python -m docforge.reference_mcp 1.4.0`, and `docforge-viewer-manager 1.4.0`. Package metadata,
|
||||
For version 2.0.0 these report `docforge 2.0.0`, `docforge-mcp 2.0.0`,
|
||||
`python -m docforge.reference_mcp 2.0.0`, and `docforge-viewer-manager 2.0.0`. Package metadata,
|
||||
Python imports, generated generic and adapter configurations, and these commands share the same
|
||||
version authority.
|
||||
|
||||
|
|
@ -1310,7 +1310,7 @@ make fresh-clone-m5
|
|||
recovery, task-evidence, fresh-wheel, version, artifact, secret-scan, and benchmark suite.
|
||||
`fresh-clone-m5` anonymously clones the exact published candidate over HTTPS, fetches and verifies
|
||||
the frozen annotated `v1.0.0` migration tag, and repeats `release-gate`. Release operators use
|
||||
`make release-pretag` before creating `v1.4.0` and `make release-posttag` after the annotated tag
|
||||
`make release-pretag` before creating `v2.0.0` and `make release-posttag` after the annotated tag
|
||||
points to the exact release commit.
|
||||
|
||||
Project-specific vocabulary, extraction rules, and serialization belong in the project adapter.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
"""Single authoritative DocForge distribution and runtime version."""
|
||||
|
||||
__version__ = "1.4.0"
|
||||
__version__ = "2.0.0"
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ class Milestone5MigrationTests(unittest.TestCase):
|
|||
evidence = build_migration_evidence()
|
||||
|
||||
self.assertEqual("v1.0.0", evidence["tag"])
|
||||
self.assertEqual("1.4.0", evidence["current"]["version"])
|
||||
self.assertEqual("2.0.0", evidence["current"]["version"])
|
||||
self.assertEqual(1, evidence["current"]["index_schema_before"])
|
||||
self.assertEqual(3, evidence["current"]["index_schema_after"])
|
||||
self.assertEqual(
|
||||
|
|
|
|||
|
|
@ -282,10 +282,10 @@ class PublicContractTests(unittest.TestCase):
|
|||
self.assertTrue(hasattr(module, name))
|
||||
|
||||
version_surfaces = {
|
||||
"docforge.cli": "docforge 1.4.0\n",
|
||||
"docforge.mcp_server": "docforge-mcp 1.4.0\n",
|
||||
"docforge.reference_mcp": "python -m docforge.reference_mcp 1.4.0\n",
|
||||
"docforge.viewer_manager": "docforge-viewer-manager 1.4.0\n",
|
||||
"docforge.cli": "docforge 2.0.0\n",
|
||||
"docforge.mcp_server": "docforge-mcp 2.0.0\n",
|
||||
"docforge.reference_mcp": "python -m docforge.reference_mcp 2.0.0\n",
|
||||
"docforge.viewer_manager": "docforge-viewer-manager 2.0.0\n",
|
||||
}
|
||||
for module_name, expected in version_surfaces.items():
|
||||
with self.subTest(module=module_name):
|
||||
|
|
|
|||
|
|
@ -14,13 +14,13 @@ class ReleaseIdentityTests(unittest.TestCase):
|
|||
)
|
||||
|
||||
self.assertEqual(1, evidence["schema_version"])
|
||||
self.assertEqual("1.4.0", evidence["version"])
|
||||
self.assertEqual("2.0.0", evidence["version"])
|
||||
self.assertEqual(
|
||||
{
|
||||
"docforge.cli": "docforge 1.4.0",
|
||||
"docforge.mcp_server": "docforge-mcp 1.4.0",
|
||||
"docforge.reference_mcp": "python -m docforge.reference_mcp 1.4.0",
|
||||
"docforge.viewer_manager": "docforge-viewer-manager 1.4.0",
|
||||
"docforge.cli": "docforge 2.0.0",
|
||||
"docforge.mcp_server": "docforge-mcp 2.0.0",
|
||||
"docforge.reference_mcp": "python -m docforge.reference_mcp 2.0.0",
|
||||
"docforge.viewer_manager": "docforge-viewer-manager 2.0.0",
|
||||
},
|
||||
evidence["surfaces"],
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue