Add versioned task context capsules
This commit is contained in:
parent
34cd5f74c1
commit
4cc6277054
18 changed files with 2834 additions and 10 deletions
|
|
@ -388,3 +388,60 @@ exact-hash applier is enabled.
|
|||
|
||||
Existing factory defaults and tool order remain unchanged. Explicit application mode fails closed
|
||||
without an applier. Operator mode is reserved and currently adds no tools.
|
||||
|
||||
### Versioned task retrieval and context capsules
|
||||
|
||||
The first Milestone 2 retrieval slice adds one `docforge_get_task_context` read tool rather than a
|
||||
family of task-specific tools. Its closed task kinds are change, implementation, failure,
|
||||
ownership, test, operation, and release. One immutable `RetrievalPlanV1` derives exact or lexical
|
||||
focus, bounded bidirectional graph traversal, metadata hydration, required evidence categories,
|
||||
and fixed work budgets from the project descriptor and effective policy.
|
||||
|
||||
The public executor re-derives every submitted plan before opening SQLite. It rejects modified
|
||||
steps, task identity, requirements, category order, bounds, policy identity, or hashes as
|
||||
`invalid_retrieval_plan`. Traversal binds the project relation set by canonical hash and queries
|
||||
the already-validated edge table by endpoint, avoiding relation-sized SQL parameter lists.
|
||||
Version-1 internal ceilings are 1,000 evidence items, 100,000 candidate edges, and 10,000 task
|
||||
query characters.
|
||||
|
||||
The executor uses one immutable SQLite read generation. It rejects missing explicit focus, blocks
|
||||
unresolved or tied lexical focus, stops at deterministic evidence and candidate-edge limits, and
|
||||
checks source identity again when the transaction closes. `ContextCapsuleV1` binds the generation,
|
||||
policy, request, plan, evidence collection, and complete capsule with canonical hashes.
|
||||
|
||||
Project relation names remain authoritative. The core recognizes only a versioned alias map for
|
||||
structure, implementation, dependency, execution, data, evidence, and context. Unknown allowed
|
||||
relations stay visible under their raw names as `unclassified`. Required evidence diagnostics
|
||||
distinguish categories the project never declared, completed bounded checks with no selected
|
||||
evidence, and incomplete checks caused by a result, work, token, or response limit.
|
||||
|
||||
Each evidence item carries a stable content hash, confined source identity, shortest selected graph
|
||||
path, every additional qualifying relationship reason observed during traversal, and explicit
|
||||
limitations where the current graph cannot prove evidence type, extractor identity, relationship
|
||||
source provenance, or observation time. The planner contains no Logic operation, so no-AST
|
||||
bindings can use task context without weakening their existing Logic prohibition.
|
||||
|
||||
Path direction is relative to the preceding traversal node. Additional relationship reasons use
|
||||
the evidence node as their direction subject. Candidate-edge and unclassified-relation ceilings
|
||||
produce explicit omissions and bounded summaries.
|
||||
|
||||
MCP pagination preserves the complete plan, collection, and capsule hashes while returning bounded
|
||||
pages. Its cursor additionally binds the effective policy and task request. An individually
|
||||
oversized item advances once as a hash-identified omission. A later generation or policy change
|
||||
fails closed as `stale_cursor`.
|
||||
|
||||
The legacy profile-context contract remains intact. A custom context provider does not silently
|
||||
gain core task planning. Version 1 defines no custom task-planner extension, so the additive tool
|
||||
returns `task_context_unavailable` without synchronization or a complete projection load.
|
||||
|
||||
Two independent pre-commit audits reproduced and closed plan-forgery, relation-sized SQL,
|
||||
SQLite-parameter portability, ambiguous relationship-direction, missing work-limit evidence,
|
||||
schema/runtime drift, incomplete page hashing, and custom-provider hidden-load defects. Regression
|
||||
coverage includes 33,005 valid relation names, fixed extreme project limits, tampered plans,
|
||||
evidence-relative directions, edge and unclassified limits, schema-valid pages, changed cursor
|
||||
semantics, oversized evidence advancement, no-AST retrieval, and legacy complete-projection
|
||||
adapters.
|
||||
|
||||
The complete repository gate passes with 158 tests and 101 subtests, zero Pyright diagnostics,
|
||||
warning-strict execution, package builds, public-contract validation, and the maintained Milestone
|
||||
0 and Milestone 1 smoke benchmarks. Gitleaks 8.30.1 reports no secret findings in the working tree.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue