Adopt Notarius configuration overlays
This commit is contained in:
@@ -358,7 +358,7 @@ Rules:
|
||||
| `pipeline.notarius.enabled` | bool | No | `false` |
|
||||
| `pipeline.notarius.binary` | string | No | `notarius` |
|
||||
| `pipeline.notarius.credentials[]` | list[secret reference] | No | empty; exact environment-variable names forwarded to Notarius |
|
||||
| `pipeline.notarius.config_profile` | string | No | unset; exact Notarius ConfigKit profile selector |
|
||||
| `pipeline.notarius.config_overlay` | string | No | unset; exact Notarius ConfigKit overlay selector |
|
||||
| `pipeline.notarius.config_path` | string | Conditional | required when enabled; relative paths resolve from the pipeline file directory |
|
||||
| `pipeline.notarius.pipeline_id` | string | Conditional | required when enabled |
|
||||
| `pipeline.notarius.timeout` | duration | No | `3h`; must be positive |
|
||||
@@ -407,22 +407,33 @@ or `[]` forwards nothing. A Narratio overlay replaces the entire list, and
|
||||
`[]` clears it. See the [Audita integration contract](./integrations/audita.md)
|
||||
for the subprocess and redaction boundary.
|
||||
|
||||
### Notarius Configuration Profile
|
||||
<a id="notarius-configuration-profile"></a>
|
||||
|
||||
`pipeline.notarius.config_profile` optionally selects a Notarius ConfigKit
|
||||
configuration profile when extraction executes:
|
||||
### Notarius Configuration Overlay
|
||||
|
||||
Migration: rename `pipeline.notarius.config_profile` to `config_overlay`.
|
||||
The old field is rejected; there is no compatibility alias. For Notarius v0.8+
|
||||
move selected downstream files from `profiles/` to `overlays/` beside its root
|
||||
configuration. This does not rename PromptKit LLM profiles.
|
||||
The renamed selector also changes extraction resume evidence for named
|
||||
selections: their existing extraction is regenerated on the next applicable
|
||||
run, with normal dependent invalidation. Omitted/base selections do not acquire
|
||||
a new invalidation solely from this rename.
|
||||
|
||||
`pipeline.notarius.config_overlay` optionally selects a Notarius ConfigKit
|
||||
configuration overlay when extraction executes:
|
||||
|
||||
```yaml
|
||||
notarius:
|
||||
config_profile: downstream-economy
|
||||
config_overlay: downstream-economy
|
||||
```
|
||||
|
||||
When the field is omitted or `null`, Narratio supplies no downstream profile
|
||||
When the field is omitted or `null`, Narratio supplies no downstream overlay
|
||||
selector and preserves Notarius's existing configuration-selection behavior.
|
||||
When present, Narratio forwards the exact string to Notarius, including an
|
||||
empty string or `default`, which explicitly select Notarius's composed base
|
||||
configuration. Notarius owns selector interpretation and validation; Narratio
|
||||
does not restrict profile names, resolve profile files, or rewrite the value.
|
||||
does not restrict overlay names, resolve overlay files, or rewrite the value.
|
||||
|
||||
This selection is independent of Narratio's own `--overlay` selection. A
|
||||
Narratio overlay may explicitly select a differently named Notarius overlay,
|
||||
|
||||
@@ -7,14 +7,14 @@ lanes from the final trimmed Seriatim transcript. Narratio owns invocation,
|
||||
safe bundle discovery, lane selection, and its own artifact metadata. Notarius
|
||||
owns pipeline definitions, lane schemas, the receipt, and bundle formats.
|
||||
|
||||
Canonical Notarius v0.7.0 references:
|
||||
Canonical Notarius v0.8.1 references:
|
||||
|
||||
- [CLI reference](https://gitea.maximumdirect.net/eric/notarius/src/tag/v0.7.0/docs/cli.md)
|
||||
- [Subprocess consumer contract](https://gitea.maximumdirect.net/eric/notarius/src/tag/v0.7.0/docs/consumers/subprocess.md)
|
||||
- [D&D pipeline and lane contracts](https://gitea.maximumdirect.net/eric/notarius/src/tag/v0.7.0/docs/consumers/dnd-pipeline.md)
|
||||
- [Run-result receipt](https://gitea.maximumdirect.net/eric/notarius/src/tag/v0.7.0/docs/integrations/run-result.md)
|
||||
- [JSON output bundle](https://gitea.maximumdirect.net/eric/notarius/src/tag/v0.7.0/docs/integrations/json-output.md)
|
||||
- [D&D spell-catalog overlay](https://gitea.maximumdirect.net/eric/notarius/src/tag/v0.7.0/docs/integrations/dnd-spell-catalog-overlays.md)
|
||||
- [CLI reference](https://gitea.maximumdirect.net/eric/notarius/src/tag/v0.8.1/docs/cli.md)
|
||||
- [Subprocess consumer contract](https://gitea.maximumdirect.net/eric/notarius/src/tag/v0.8.1/docs/consumers/subprocess.md)
|
||||
- [D&D pipeline and lane contracts](https://gitea.maximumdirect.net/eric/notarius/src/tag/v0.8.1/docs/consumers/dnd-pipeline.md)
|
||||
- [Run-result receipt](https://gitea.maximumdirect.net/eric/notarius/src/tag/v0.8.1/docs/integrations/run-result.md)
|
||||
- [JSON output bundle](https://gitea.maximumdirect.net/eric/notarius/src/tag/v0.8.1/docs/integrations/json-output.md)
|
||||
- [D&D spell-catalog overlay](https://gitea.maximumdirect.net/eric/notarius/src/tag/v0.8.1/docs/integrations/dnd-spell-catalog-overlays.md)
|
||||
|
||||
The [complete Narratio example](../../examples/pipeline.full.annotated.yml)
|
||||
records the exact current constraints for all ten D&D lanes. Treat the linked
|
||||
@@ -27,17 +27,17 @@ When `pipeline.notarius.enabled` is true, Narratio resolves the executable,
|
||||
configuration path, input path, output directory, and working directory to
|
||||
absolute paths. Configured references require support for the `--reference`
|
||||
contract introduced in Notarius v0.6.0. Cache controls require support for the
|
||||
selected `--resume` and `--chunk_cache` flags. Notarius v0.7.0 is the tested
|
||||
selected `--resume` and `--chunk_cache` flags. Notarius v0.8.1 is the tested
|
||||
cache integration baseline, not an unconditional minimum version; Narratio
|
||||
does not impose a runtime version gate. Each reference binding is a separate
|
||||
argument before `--json`. When `pipeline.notarius.config_profile` is present,
|
||||
argument before `--json`. When `pipeline.notarius.config_overlay` is present,
|
||||
its exact value is another argument pair before `--json`:
|
||||
|
||||
```text
|
||||
notarius run <pipeline_id> --config <config_path> --input <trimmed_json> --output-dir <staging_dir> [--resume] [--chunk_cache <mode>] [--reference <selector>=<verified_snapshot_path>]... [--config-profile <name>] --json
|
||||
notarius run <pipeline_id> --config <config_path> --input <trimmed_json> --output-dir <staging_dir> [--resume] [--chunk_cache <mode>] [--reference <selector>=<verified_snapshot_path>]... [--config-overlay <name>] --json
|
||||
```
|
||||
|
||||
Notarius v0.7.0 is a known supporting version for `--config-profile`; using the
|
||||
Notarius v0.8.1 is a known supporting version for `--config-overlay`; using the
|
||||
option requires a compatible Notarius executable, but deployments that omit the
|
||||
field acquire no additional version requirement. Omitted or null configuration
|
||||
adds no flag. Supplied empty, `default`, and named selectors are forwarded
|
||||
@@ -46,7 +46,7 @@ option selects a Notarius configuration overlay, not a PromptKit profile through
|
||||
`--llm-profile`, and Narratio never substitutes its own selected overlay name.
|
||||
A missing or invalid downstream overlay is an ordinary Notarius subprocess
|
||||
failure: Narratio does not retry without the selector or fall back to another
|
||||
profile.
|
||||
overlay.
|
||||
|
||||
Reference paths are absolute stable snapshots streamed from manifest-verified
|
||||
canonical files prepared inside the current Narratio session workspace. They
|
||||
@@ -129,7 +129,7 @@ encoded credentials.
|
||||
|
||||
## Accepted Result
|
||||
|
||||
Narratio's tested invocation baseline is Notarius v0.7.0. The accepted
|
||||
Narratio's tested invocation baseline is Notarius v0.8.1. The accepted
|
||||
receipt remains `notarius.run-result.v2`; reference flags do not change the
|
||||
receipt or ten-lane output contract. The receipt
|
||||
must identify the configured pipeline, and its `index_file` must be exactly
|
||||
@@ -188,7 +188,7 @@ for failure recovery.
|
||||
## Opt-in Integration Test
|
||||
|
||||
The production-boundary cache test requires an absolute path to a locally
|
||||
built Notarius v0.7.0-compatible executable. It uses only a local
|
||||
built Notarius v0.8.1-compatible executable. It uses only a local
|
||||
OpenAI-compatible `httptest` provider and temporary cache/config/output roots:
|
||||
|
||||
```sh
|
||||
|
||||
@@ -24,11 +24,11 @@ procedures belong in [Operations](../operations.md).
|
||||
and rejects any source change observed while copying;
|
||||
4. fingerprints the byte- and provenance-bearing Notarius invocation evidence,
|
||||
including sorted reference identities and the explicit downstream
|
||||
configuration-profile selection;
|
||||
configuration-overlay selection;
|
||||
5. creates a run-local staging directory and invokes the injected
|
||||
`notarius.Runner`, carrying the optional already-resolved credential
|
||||
reference without exposing its value, the optional exact configuration
|
||||
profile, plus effective resume and chunk-cache controls after force
|
||||
overlay, plus effective resume and chunk-cache controls after force
|
||||
precedence;
|
||||
6. revalidates the reference snapshots, then validates the v2 successful
|
||||
receipt, confined index, management documents, configured required lane
|
||||
@@ -73,7 +73,7 @@ Before the focused validator runs, the application compares extract's versioned
|
||||
semantic fingerprint. It covers enablement, Notarius pipeline identity, sorted
|
||||
reference selector/source mappings, sorted declared output contracts, and each
|
||||
canonical `narratio.extraction.<key>` output identity. It also covers the
|
||||
explicit Notarius configuration-profile selection; omitted, empty, and exact
|
||||
explicit Notarius configuration-overlay selection; omitted, empty, and exact
|
||||
`default` selectors share the base-selection identity. It excludes executable,
|
||||
timeout, working directory, config path, and private Notarius config contents.
|
||||
Credential presence, reference name, and resolved value are likewise
|
||||
@@ -85,7 +85,7 @@ not rerun a valid completed extraction or stale its dependents.
|
||||
stage record still matches the current byte- and provenance-bearing invocation
|
||||
evidence. That evidence covers the current direct trimmed-transcript identity,
|
||||
sorted prepared-reference identities, pipeline identity, and configured output
|
||||
contracts, plus the same downstream profile-selection identity. The same
|
||||
contracts, plus the same downstream overlay-selection identity. The same
|
||||
reference helper and transcript identity are resolved again for artifact
|
||||
evidence, so changing current transcript bytes, reference bytes, producer
|
||||
identity, or a named downstream selection makes the prior extraction obsolete.
|
||||
@@ -107,7 +107,7 @@ obsolete results are non-resumable and run again; unsafe filesystem conditions
|
||||
return an error rather than silently accepting or replacing data.
|
||||
|
||||
This sensitivity is limited to the explicit downstream selector. Narratio's
|
||||
own profile label and whole effective-configuration digest are not blanket
|
||||
own overlay label and whole effective-configuration digest are not blanket
|
||||
extraction invalidators. Neither contract can observe files imported by
|
||||
Notarius configuration, profile contents, prompt/module definitions, or other
|
||||
transitive inputs. Operators must force extraction after changing any such
|
||||
@@ -144,5 +144,5 @@ recovery.
|
||||
`internal/artifacts/extraction_catalog_test.go`
|
||||
- Composition and downstream behavior: `internal/app/runner_test.go`,
|
||||
`internal/stage/analyze_test.go`, `internal/stage/publish_test.go`
|
||||
- Opt-in Notarius v0.7.0 production-boundary coverage:
|
||||
- Opt-in Notarius v0.8.1 production-boundary coverage:
|
||||
`internal/stage/notarius_cache_integration_test.go`
|
||||
|
||||
@@ -282,14 +282,21 @@ earlier checkpoints are reused and execution resumes with failed, stale, or
|
||||
missing work in dependency order. `--force` is unnecessary unless the operator
|
||||
intends to replace otherwise-current artifacts.
|
||||
|
||||
### Developing With A Notarius Configuration Profile
|
||||
### Developing With A Notarius Configuration Overlay
|
||||
|
||||
Notarius v0.8+ defaults to two additional eligible transient provider attempts
|
||||
per generation. Review downstream retry settings and Narratio's extraction
|
||||
timeout together; retries can increase elapsed time and provider charges.
|
||||
Notarius v0.8.1 refreshes its built-in profile checkpoint identity, so older
|
||||
checkpoints may not be reused. Source-keyed chunk plans and already published
|
||||
outputs are unaffected; no manual cache deletion is required.
|
||||
|
||||
A Narratio development overlay can explicitly select a Notarius overlay without
|
||||
requiring the names to match. For example, `overlays/testing.yml` may contain:
|
||||
|
||||
```yaml
|
||||
notarius:
|
||||
config_profile: downstream-economy
|
||||
config_overlay: downstream-economy
|
||||
```
|
||||
|
||||
Selecting Narratio's `testing` overlay then supplies `downstream-economy` only
|
||||
@@ -302,7 +309,7 @@ Narratio cannot observe edits inside Notarius configuration behind an unchanged
|
||||
selector. Force extraction after such an edit when a replacement is intended.
|
||||
Use `regenerate-artifacts` when both extraction and analysis must be rebuilt;
|
||||
use `analyze` when the existing extraction bundle should be preserved. Field
|
||||
semantics belong in [Configuration](./config.md#notarius-configuration-profile),
|
||||
semantics belong in [Configuration](./config.md#notarius-configuration-overlay),
|
||||
and the exact downstream invocation belongs in the
|
||||
[Notarius integration contract](./integrations/notarius.md#invocation).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user