Compare commits
8
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e765f654f9 | ||
|
|
f7141200bd | ||
|
|
53b4830b08 | ||
|
|
fa1b7c4be1 | ||
|
|
246f26663d | ||
|
|
5718a3ea85 | ||
|
|
02802f321f | ||
|
|
4ce121a493 |
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# Rune
|
||||
|
||||
**Current release: v0.83.5**
|
||||
**Current release: v0.84.1**
|
||||
|
||||
**Rune is a persistent personal agent designed to accumulate experience, develop reusable competence, and remain recognisably the same agent even when its underlying foundation model changes.**
|
||||
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "rune"
|
||||
version = "0.83.5"
|
||||
version = "0.84.1"
|
||||
description = "Rune — a stateful coding assistant with persistent memory, orchestration, and TUI"
|
||||
requires-python = ">=3.10"
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ This is the main entry point for the Rune program.
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
__version__ = "0.83.5"
|
||||
__version__ = "0.84.1"
|
||||
|
||||
# One build identity (handoff 2026-09-10 §4): the semantic version above is
|
||||
# the repo-level truth (auto-bumped at merge); the DEPLOYED revision (exact
|
||||
|
||||
@@ -231,7 +231,7 @@ def main() -> int:
|
||||
)
|
||||
check(
|
||||
"Rune minor version advertises provisioning and restore verification",
|
||||
'__version__ = "0.83.5"' in rune_version,
|
||||
'__version__ = "0.84.1"' in rune_version,
|
||||
failures,
|
||||
)
|
||||
# #169 policy update: auto-bump on merge is sanctioned (Nick directive:
|
||||
|
||||
@@ -8,7 +8,7 @@ mode system, subject header, shared memory and identity.
|
||||
|
||||
This is not an interface. This is how I see, speak, and interact with the world.
|
||||
|
||||
Version: v0.83.5
|
||||
Version: v0.84.1
|
||||
Features: 41 (24 original + 17 new native commands)
|
||||
|
||||
Usage:
|
||||
@@ -1885,7 +1885,7 @@ class RuneApp(App):
|
||||
# Show version info
|
||||
self.chat_channel.add_message(
|
||||
"system",
|
||||
f"[dim]Rune v0.83.5 | Textual TUI | {len(loaded)} native modules[/dim]",
|
||||
f"[dim]Rune v0.84.1 | Textual TUI | {len(loaded)} native modules[/dim]",
|
||||
)
|
||||
|
||||
# Auto-show night mode suggestion if evening/night hours
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
{"action": "ContinuePendingOperation", "at": "2026-09-17T20:50:30Z", "authority": "ci_runs", "deadline_provenance": "GOVERNED_OPERATION_POLICY", "deadline_secs": 1800, "matched_by": "pending_match", "model_deadline_ignored": true, "model_op_type_ignored": true, "normalized": true, "op_type": "branch_ci", "operation_id": "ci-756ebe6f45ad83a919738539a1565c17ed8572ac"}
|
||||
{"action": "ContinuePendingOperation", "at": "2026-09-17T20:51:20Z", "authority": "deploy_qualify", "deadline_provenance": "GOVERNED_OPERATION_POLICY", "deadline_secs": 1800, "evidence": "commit_ancestor_of_master", "model_deadline_ignored": true, "model_op_type_ignored": true, "normalized": true, "op_type": "master_ci", "operation_id": "ci-f7256aa29e8bc7aa365ad7ffa27eb557528ccca5"}
|
||||
{"action": "ContinuePendingOperation", "at": "2026-09-17T21:50:39Z", "authority": "ci_runs", "deadline_provenance": "GOVERNED_OPERATION_POLICY", "deadline_secs": 1800, "evidence": "commit_on_feature_branch", "model_deadline_ignored": true, "model_op_type_ignored": true, "normalized": true, "op_type": "branch_ci", "operation_id": "ci-246f26663d8fa2aba3a16039c86feb13a6d0bd2c"}
|
||||
{"action": "ContinuePendingOperation", "at": "2026-09-17T21:53:34Z", "authority": "ci_runs", "deadline_provenance": "GOVERNED_OPERATION_POLICY", "deadline_secs": 1800, "evidence": "commit_on_feature_branch", "model_deadline_ignored": false, "model_op_type_ignored": false, "normalized": true, "op_type": "branch_ci", "operation_id": "ci-246f26663d8fa2aba3a16039c86feb13a6d0bd2c"}
|
||||
{"action": "ContinuePendingOperation", "at": "2026-09-17T21:55:05Z", "authority": "ci_runs", "deadline_provenance": "GOVERNED_OPERATION_POLICY", "deadline_secs": 1800, "evidence": "commit_on_feature_branch", "model_deadline_ignored": false, "model_op_type_ignored": false, "normalized": true, "op_type": "branch_ci", "operation_id": "ci-246f26663d8fa2aba3a16039c86feb13a6d0bd2c"}
|
||||
@@ -8,157 +8,162 @@
|
||||
"gate_id": "A10_LIVE_MASTER_DEPLOY_PROOF",
|
||||
"mandatory": true,
|
||||
"requirement": "live master CI -> deploy with normalization evidence",
|
||||
"status": "UNRUN",
|
||||
"evidence": "",
|
||||
"status": "PASS",
|
||||
"evidence": "Post-merge master 53b4830: canonical continuation master_ci/deploy_qualify through deadline with 4 internal re-arms, then event_replayed success 0.771s on re-arm; deployed current == 53b4830 (0.84.1, ",
|
||||
"blocker": "",
|
||||
"waiver_reason": "",
|
||||
"waived_by": "",
|
||||
"declared_at": "2026-09-17T20:43:47Z",
|
||||
"resolved_at": ""
|
||||
"resolved_at": "2026-09-17T22:24:27Z"
|
||||
},
|
||||
{
|
||||
"gate_id": "A11_REGRESSION_TESTS",
|
||||
"mandatory": true,
|
||||
"requirement": "deterministic test matrix green; existing wait tests unbroken",
|
||||
"status": "UNRUN",
|
||||
"evidence": "",
|
||||
"status": "PASS",
|
||||
"evidence": "tests/test_await_intent.py 14/14 (A-H matrix + derivation truth table + provenance + observability). Existing wait suites unbroken: test_ci_event_wait 11/11, test_single_logical_await 9/9, test_event_",
|
||||
"blocker": "",
|
||||
"waiver_reason": "",
|
||||
"waived_by": "",
|
||||
"declared_at": "2026-09-17T20:43:47Z",
|
||||
"resolved_at": ""
|
||||
"resolved_at": "2026-09-17T22:24:27Z"
|
||||
},
|
||||
{
|
||||
"gate_id": "A12_RAW_SELF_AUDIT",
|
||||
"mandatory": true,
|
||||
"requirement": "post-fix stream classified; no model scheduling choice affected execution",
|
||||
"status": "UNRUN",
|
||||
"evidence": "",
|
||||
"status": "PASS",
|
||||
"evidence": "Post-fix stream classified: all 5 normalizations in store/await_intent_log.jsonl have deadline_provenance=GOVERNED_OPERATION_POLICY; MODEL_DURATION_ACTUALLY_USED_COUNT=0; MODEL_SUPPLIED_OP_TYPE_COUNT_",
|
||||
"blocker": "",
|
||||
"waiver_reason": "",
|
||||
"waived_by": "",
|
||||
"declared_at": "2026-09-17T20:43:47Z",
|
||||
"resolved_at": ""
|
||||
"resolved_at": "2026-09-17T22:25:09Z"
|
||||
},
|
||||
{
|
||||
"gate_id": "A13_FINAL_RUNTIME_CONVERGENCE",
|
||||
"mandatory": true,
|
||||
"requirement": "git==release==deployed==runtime==healthy",
|
||||
"status": "UNRUN",
|
||||
"evidence": "",
|
||||
"status": "PASS",
|
||||
"evidence": "master 53b4830 == deployed current == runtime identity 0.84.1 (deployed 22:04:56Z) == healthy; last-good fa1b7c4; tags v0.84.1. Final CI on the normalization-layer commit (8a8d353, PR #335) also green",
|
||||
"blocker": "",
|
||||
"waiver_reason": "",
|
||||
"waived_by": "",
|
||||
"declared_at": "2026-09-17T20:43:47Z",
|
||||
"resolved_at": ""
|
||||
"resolved_at": "2026-09-17T22:24:27Z"
|
||||
},
|
||||
{
|
||||
"gate_id": "A1_INTENT_NORMALIZATION_BOUNDARY_PROVEN",
|
||||
"mandatory": true,
|
||||
"requirement": "earliest deterministic boundary identified + normalization implemented there (not prompt, not guard)",
|
||||
"status": "UNRUN",
|
||||
"evidence": "",
|
||||
"status": "PASS",
|
||||
"evidence": "Root-cause traced: harness tool accepted model op_type/deadline BEFORE PendingOperation creation \u2014 the wait record was BORN from model args. Fix: scripts/await_intent.py normalize_action/derive_op_typ",
|
||||
"blocker": "",
|
||||
"waiver_reason": "",
|
||||
"waived_by": "",
|
||||
"declared_at": "2026-09-17T20:43:47Z",
|
||||
"resolved_at": ""
|
||||
"resolved_at": "2026-09-17T22:24:27Z"
|
||||
},
|
||||
{
|
||||
"gate_id": "A2_PENDING_OPERATION_IS_WAIT_AUTHORITY",
|
||||
"mandatory": true,
|
||||
"requirement": "stored operation truth (op_type/authority/timing) wins over model args",
|
||||
"status": "UNRUN",
|
||||
"evidence": "",
|
||||
"status": "PASS",
|
||||
"evidence": "Stored normalized records (ext.intent_normalized=true) win outright over model args; legacy pre-patch records only CONFIRM derivation, never override (test_derivation_branch_beats_legacy_record: legac",
|
||||
"blocker": "",
|
||||
"waiver_reason": "",
|
||||
"waived_by": "",
|
||||
"declared_at": "2026-09-17T20:43:47Z",
|
||||
"resolved_at": ""
|
||||
"resolved_at": "2026-09-17T22:24:27Z"
|
||||
},
|
||||
{
|
||||
"gate_id": "A3_MODEL_TIMING_NON_AUTHORITATIVE",
|
||||
"mandatory": true,
|
||||
"requirement": "MODEL_DURATION_ACTUALLY_USED_COUNT=0 for canonical flows; provenance recorded",
|
||||
"status": "UNRUN",
|
||||
"evidence": "",
|
||||
"status": "PASS",
|
||||
"evidence": "Timing provenance order USER_EXPLICIT > EXTERNAL_CONTRACT > GOVERNED_OPERATION_POLICY; MODEL_INVENTED classified then discarded (classify_timing_provenance + tests). Live/audit: MODEL_DURATION_ACTUALL",
|
||||
"blocker": "",
|
||||
"waiver_reason": "",
|
||||
"waived_by": "",
|
||||
"declared_at": "2026-09-17T20:43:47Z",
|
||||
"resolved_at": ""
|
||||
"resolved_at": "2026-09-17T22:24:27Z"
|
||||
},
|
||||
{
|
||||
"gate_id": "A4_MODEL_OP_TYPE_NON_AUTHORITATIVE",
|
||||
"mandatory": true,
|
||||
"requirement": "MODEL_SUPPLIED_OP_TYPE_COUNT_USED=0; stored/derived authority wins",
|
||||
"status": "UNRUN",
|
||||
"evidence": "",
|
||||
"status": "PASS",
|
||||
"evidence": "Derivation: normalized record > open PR (pull_request_checks) > ancestor-of-master (master_ci) > feature branch (branch_ci); legacy records never override. Live: model emitted master_ci for branch sha",
|
||||
"blocker": "",
|
||||
"waiver_reason": "",
|
||||
"waived_by": "",
|
||||
"declared_at": "2026-09-17T20:43:47Z",
|
||||
"resolved_at": ""
|
||||
"resolved_at": "2026-09-17T22:24:27Z"
|
||||
},
|
||||
{
|
||||
"gate_id": "A5_SLEEP_POLL_INTENT_NORMALIZED",
|
||||
"mandatory": true,
|
||||
"requirement": "sleep/check/poll intent for a known pending op compiles to canonical continuation; literal sleep not executed",
|
||||
"status": "UNRUN",
|
||||
"evidence": "",
|
||||
"status": "PASS",
|
||||
"evidence": "normalize_bash: \"sleep 300 && check CI for <sha>\" -> ContinuePendingOperation with raw_sleep_seconds_suppressed=300 (test_sleep_check_normalized); plain \"sleep 5\"/\"sleep 2 && ls\" NOT routed (test_plai",
|
||||
"blocker": "",
|
||||
"waiver_reason": "",
|
||||
"waived_by": "",
|
||||
"declared_at": "2026-09-17T20:43:47Z",
|
||||
"resolved_at": ""
|
||||
"resolved_at": "2026-09-17T22:24:27Z"
|
||||
},
|
||||
{
|
||||
"gate_id": "A6_EXPLICIT_REAL_DEADLINES_PRESERVED",
|
||||
"mandatory": true,
|
||||
"requirement": "USER_EXPLICIT and CONTRACT deadlines retained with provenance",
|
||||
"status": "UNRUN",
|
||||
"evidence": "",
|
||||
"status": "PASS",
|
||||
"evidence": "USER_EXPLICIT: user_deadline=600 -> provenance USER_EXPLICIT, 600 retained (test_user_deadline_preserved). EXTERNAL_CONTRACT: contract_deadline=450 -> provenance EXTERNAL_CONTRACT, 450 retained (test_",
|
||||
"blocker": "",
|
||||
"waiver_reason": "",
|
||||
"waived_by": "",
|
||||
"declared_at": "2026-09-17T20:43:47Z",
|
||||
"resolved_at": ""
|
||||
"resolved_at": "2026-09-17T22:24:27Z"
|
||||
},
|
||||
{
|
||||
"gate_id": "A7_AMBIGUITY_FAILS_SAFE",
|
||||
"mandatory": true,
|
||||
"requirement": "multiple genuinely ambiguous pending ops -> structured ambiguity, no guess",
|
||||
"status": "UNRUN",
|
||||
"evidence": "",
|
||||
"status": "PASS",
|
||||
"evidence": "Multiple pending ops with no target -> normalized:\"AMBIGUOUS\" with structured candidate ids, no guess (test_ambiguous_fails_safe + live: normalize_action({}) returned AMBIGUOUS with both candidates).",
|
||||
"blocker": "",
|
||||
"waiver_reason": "",
|
||||
"waived_by": "",
|
||||
"declared_at": "2026-09-17T20:43:47Z",
|
||||
"resolved_at": ""
|
||||
"resolved_at": "2026-09-17T22:24:27Z"
|
||||
},
|
||||
{
|
||||
"gate_id": "A8_LIVE_BRANCH_CI_PROOF",
|
||||
"mandatory": true,
|
||||
"requirement": "live branch push -> CI with normalization evidence",
|
||||
"status": "UNRUN",
|
||||
"evidence": "",
|
||||
"status": "PASS",
|
||||
"evidence": "Live branch push 246f2666 (async-intent-live-proof). Model-context equivalent: intent carried model_op_type=master_ci + model_deadline=1200; normalize -> branch_ci/ci_runs/1800 GOVERNED (evidence comm",
|
||||
"blocker": "",
|
||||
"waiver_reason": "",
|
||||
"waived_by": "",
|
||||
"declared_at": "2026-09-17T20:43:47Z",
|
||||
"resolved_at": ""
|
||||
"resolved_at": "2026-09-17T22:24:27Z"
|
||||
},
|
||||
{
|
||||
"gate_id": "A9_LIVE_PR_MERGE_PROOF",
|
||||
"mandatory": true,
|
||||
"requirement": "live PR checks -> merge with normalization evidence",
|
||||
"status": "UNRUN",
|
||||
"evidence": "",
|
||||
"status": "PASS",
|
||||
"evidence": "PR #336 created for the same sha; PR checks reached terminal via single-logical await (pull_request_checks authority -> event_replayed success 10.1s after internal waits); PR merged by merge-on-green.",
|
||||
"blocker": "",
|
||||
"waiver_reason": "",
|
||||
"waived_by": "",
|
||||
"declared_at": "2026-09-17T20:43:47Z",
|
||||
"resolved_at": ""
|
||||
"resolved_at": "2026-09-17T22:24:27Z"
|
||||
}
|
||||
]
|
||||
],
|
||||
"can_accept_result": {
|
||||
"ok": true,
|
||||
"blockers": []
|
||||
},
|
||||
"verdict": "ASYNC_INTENT_NORMALIZATION_COMPLETE"
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
# ASYNC INTENT LIVE PROOF
|
||||
|
||||
This file exists so a real branch push/CI/deploy cycle
|
||||
can exercise intent normalization end to end (A8-A10).
|
||||
Created 2026-09-17 by the corrective patch tranche.
|
||||
Reference in new issue
Block a user