Add versioned task context capsules
This commit is contained in:
parent
34cd5f74c1
commit
4cc6277054
18 changed files with 2834 additions and 10 deletions
|
|
@ -582,6 +582,7 @@ Example MCP client configuration:
|
|||
- `docforge_dependencies`
|
||||
- `docforge_impact`
|
||||
- `docforge_get_context`
|
||||
- `docforge_get_task_context`
|
||||
- `docforge_validate_project`
|
||||
- `docforge_render_status`
|
||||
- `docforge_visualize`
|
||||
|
|
@ -613,6 +614,36 @@ The application call requires `changeset_id` and `expected_changeset_hash`. Alwa
|
|||
inspect the final diff after the last proposal mutation. Apply that exact hash. A proposal mutation
|
||||
creates a new hash, so an earlier approval cannot silently apply later content.
|
||||
|
||||
Use `docforge_get_task_context` when an agent needs one bounded task-shaped intake instead of a
|
||||
named profile. Choose `task_kind` from `change`, `implementation`, `failure`, `ownership`, `test`,
|
||||
`operation`, or `release`. Supply `focus_node_id` when the stable node is known. Without it,
|
||||
DocForge performs a bounded lexical focus search and refuses a tied best match instead of silently
|
||||
choosing one.
|
||||
|
||||
The returned version-1 capsule includes:
|
||||
|
||||
- The exact project, adapter, source generation, effective policy, request, and retrieval-plan
|
||||
hashes.
|
||||
- Ordered focus and related evidence with source paths, content hashes, graph paths, and all
|
||||
qualifying relationship reasons observed during the bounded traversal.
|
||||
- Explicit evidence gaps and omissions, including whether a check completed.
|
||||
- Provenance limitations for facts that the current graph does not carry, such as extractor
|
||||
identity, observation time, and source provenance for relationships.
|
||||
|
||||
Project descriptors still own the valid relation vocabulary. The planner recognizes a fixed alias
|
||||
map for structure, implementation, dependency, execution, data, evidence, and context. Any other
|
||||
valid project relation is returned unchanged as `unclassified`; it is never assigned guessed task
|
||||
semantics.
|
||||
|
||||
A relationship inside `relationship_path` describes the direction traveled from the preceding
|
||||
node. A relationship inside `relationship_reasons` describes direction from the evidence item
|
||||
itself. This keeps stored source and target identity exact while making each evidence explanation
|
||||
locally readable.
|
||||
|
||||
Task context never exceeds 1,000 evidence items, 100,000 examined candidate edges, or 10,000 task
|
||||
query characters, even when a project configures broader general limits. An edge-work or
|
||||
unclassified-relation ceiling appears as an explicit omission rather than an unbounded response.
|
||||
|
||||
Recommended release-candidate sequence:
|
||||
|
||||
1. Call `docforge_bootstrap`. It synchronizes derived state and reports the exact fixed binding.
|
||||
|
|
@ -675,6 +706,11 @@ inspection pages may use hash summaries. A large diff may return `result_mode =
|
|||
"canonical_json_chunk"`; concatenate the chunks in order and verify `payload_hash` before decoding
|
||||
the reconstructed `operations` and `changes` object.
|
||||
|
||||
`docforge_get_task_context` uses the same opaque continuation discipline over capsule evidence
|
||||
followed by capsule omissions. Keep the semantic task arguments unchanged while paging. Page size
|
||||
may change. Every page retains the same plan, collection, and capsule hashes. A `stale_cursor`
|
||||
means that the generation, policy, plan, or collection changed; discard earlier pages and restart.
|
||||
|
||||
Canonical application records its terminal receipt immediately after the project-owned serializer
|
||||
verifies the new canonical state. A later index or render refresh failure is reported as degraded
|
||||
derived state with remediation, not as permission to apply the same canonical change again.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue