You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Implement 0086 PromptManager default cache TTL
PromptManager construction gains an optional default_cache_ttl_seconds
(prompt-management proposal 0086). fetch and get resolve the effective
cache_ttl_seconds by precedence: an explicit per-call value (including
0 force-fresh) wins; otherwise the manager default; otherwise None, so
the backend's own caching governs. An omitted or explicit-None per-call
value both select the default, so resolution is presence-independent.
A negative default is rejected at construction; the per-call negative
rejection is unchanged. get delegates to fetch and inherits the chain,
and the bundled caching backends already honor a resolved value, so no
backend changed.
Un-defers conformance fixture 036 (runtime and parse), wiring the
manager default-cache-ttl construction slot and the {manager: true}
target form into the prompt-management harness. Adds seven unit tests,
the concepts/prompts doc, and the 0.17.0 changelog entry.
* Fix 0086 changelog em dash and stale ttl message
Address CoPilot review on #227:
- CHANGELOG 0.17.0 header uses a hyphen, not an em dash, per
.github/copilot-instructions.md (new entries avoid the em dash;
older headers are intentionally left as-is).
- The fetch negative-ttl ValueError message no longer says "None
preserves current behavior"; with a manager default configured,
per-call None selects the default. Reworded to match the precedence.
Comment/wording only; no behavior change.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,12 @@ All notable changes to `openarmature-python` are documented in this file.
4
4
5
5
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). The package follows [Semantic Versioning](https://semver.org/); pre-1.0 minor bumps may carry behavioral changes per [spec governance](https://github.com/LunarCommand/openarmature-spec/blob/main/GOVERNANCE.md).
6
6
7
+
## [0.17.0] - 2026-07-20
8
+
9
+
### Added
10
+
11
+
-**PromptManager service-wide default cache TTL** (proposal 0086, prompt-management §6, spec v0.79.0). `PromptManager` construction accepts an optional `default_cache_ttl_seconds`, applied to any `fetch` or `get` that omits a per-call `cache_ttl_seconds`. Resolution follows a precedence chain: an explicit per-call value (including `0` force-fresh) wins; otherwise the manager default applies; otherwise nothing is forwarded and the backend's own caching governs. An omitted or explicit-`None` per-call value both select the default, so resolution does not depend on argument presence. A negative default is rejected at construction, and the per-call negative rejection is unchanged. `get` delegates to `fetch` and inherits the chain, and the bundled caching backends need no change (they already honor a resolved `cache_ttl_seconds`). Conformance fixture 036 is un-deferred.
Copy file name to clipboardExpand all lines: conformance.toml
+5-3Lines changed: 5 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -840,10 +840,12 @@ since = "0.16.0"
840
840
note = "The SAVE-side enclosing_fan_out_lineage keying (pipeline-utilities §10.11) shipped in #194: a fan-out instance's checkpoint tracking key carries the enclosing fan-out instance lineage in the in-memory dict and through the checkpoint projection / lookup / cleanup / restore, so concurrent outer instances no longer collide. partial because the RESUME consume-side is not yet shipped: a fan-out nested inside an outer instance re-runs rather than skipping on resume, since the saved record format carries no lineage (tracked as a follow-up). pipeline-utilities fixture 076 is not collected by the test_pipeline_utilities.py _LAST_DRIVEN_FIXTURE number gate (it is not deferred); the resume consume-side plus its fixture wiring land in a later PR."
# on PromptManager (prompt-management §6). Not-yet; prompt-management
844
-
# fixture 036 defers with it.
843
+
# on PromptManager (prompt-management §6). Implemented since 0.17.0;
844
+
#prompt-management fixture 036 pins it.
845
845
[proposals."0086"]
846
-
status = "not-yet"
846
+
status = "implemented"
847
+
since = "0.17.0"
848
+
note = "PromptManager construction gains an optional default_cache_ttl_seconds (prompt-management §6). fetch/get resolve cache_ttl_seconds by precedence: an explicit per-call value (including 0 force-fresh) wins; else the manager default; else None (the backend's own caching governs). An omitted or explicit-None per-call value both select the default, so resolution does not depend on argument-presence semantics. A negative default is rejected at construction; the per-call negative rejection from 0072 is unchanged and applies to the per-call value before resolution. get() delegates to fetch, so it inherits the chain unchanged; the bundled caching backends already honor a resolved cache_ttl_seconds (0072), so no backend change. Fixture 036 (default applied on omit + advance-clock aging + per-call 0 override) is un-deferred and driven via a manager: {default_cache_ttl_seconds} construction slot + target: {manager: true} fetches."
0 commit comments