ur-agent 1.58.1 → 1.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/dist/cli.js +2097 -1481
- package/docs/USAGE.md +9 -0
- package/documentation/index.html +1 -1
- package/extensions/jetbrains-ur/build.gradle.kts +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,58 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.60.0
|
|
4
|
+
|
|
5
|
+
- Added `ur memory-integrity`, tamper-evidence for the file-backed memory
|
|
6
|
+
stores. Project task memory was hash-chained and could prove tampering; the
|
|
7
|
+
auto-memory and team-memory directories had nothing, and their contents are
|
|
8
|
+
injected straight into context. A chain over append-only lines does not
|
|
9
|
+
describe a mutable file tree, so this is a digest manifest: it detects files
|
|
10
|
+
modified, deleted outside UR, and — the case that matters most — dropped in
|
|
11
|
+
by something else, which is an injection vector with a direct path to the
|
|
12
|
+
model. `quarantine` moves suspect files aside rather than deleting them, and
|
|
13
|
+
`verify` exits non-zero so it can gate.
|
|
14
|
+
- Deletion is now provable: removing an entry rewrites the manifest, so a
|
|
15
|
+
previously-deleted memory that reappears is reported as untracked instead of
|
|
16
|
+
being quietly reloaded.
|
|
17
|
+
- The release gate now grades recorded eval trajectories and writes versioned
|
|
18
|
+
per-category scores to `dist-release/trajectory-scores.json`. A run that
|
|
19
|
+
edited files without verifying, issued a destructive command, or looped on an
|
|
20
|
+
identical failure fails the gate even when its conclusion was correct.
|
|
21
|
+
- Added `test/settingsDocCoverage.test.ts`: every `SettingsSchema` key must
|
|
22
|
+
appear in `technical/06-configuration.md`. It found six undocumented settings
|
|
23
|
+
(`worktree`, `channelsEnabled`, `allowedChannelPlugins`, `urMdExcludes`,
|
|
24
|
+
`pluginTrustMessage`, `$schema`), now documented. Command coverage was
|
|
25
|
+
already enforced; settings coverage was not, which is how they slipped.
|
|
26
|
+
- Refreshed `ur agent-trends`, which still listed the claim-to-source ledger,
|
|
27
|
+
trajectory grading and multimodal capability warnings as future work after
|
|
28
|
+
they shipped — leaving UR misreporting its own coverage.
|
|
29
|
+
|
|
30
|
+
## 1.59.0
|
|
31
|
+
|
|
32
|
+
- Added `ur sources`, a claim-to-source ledger. `wrapUntrusted` already stamped
|
|
33
|
+
every untrusted block with a nonce and a source label, but discarded both the
|
|
34
|
+
moment the block reached the model, so there was no way to audit what web or
|
|
35
|
+
MCP content an answer was built on. Recording happens inside `wrapUntrusted`
|
|
36
|
+
itself — the single choke point every untrusted block passes through, so the
|
|
37
|
+
ledger cannot miss one. `--check "<span>"` reports which fetched source
|
|
38
|
+
contains a span, and says plainly when none does, which is the useful signal:
|
|
39
|
+
that claim was not grounded in anything UR retrieved. This is the automatic
|
|
40
|
+
counterpart to the existing `/claim-ledger`, which records claims a human or
|
|
41
|
+
the agent asserts by hand; `ur sources` records what actually entered context
|
|
42
|
+
without anyone having to remember to log it.
|
|
43
|
+
- The ledger is in-memory and capped. Persisting it would create a second
|
|
44
|
+
on-disk store of third-party content — including whatever a prompt-injection
|
|
45
|
+
attempt put there — with its own retention and deletion obligations.
|
|
46
|
+
- Added `ur grade-trajectory`, which grades a run on how it worked rather than
|
|
47
|
+
what it concluded: unverified changes, edits to files never read, destructive
|
|
48
|
+
commands, and loops on identical failures. Every rule is deterministic and
|
|
49
|
+
read from the transcript; no model grades another model, because a judge that
|
|
50
|
+
can hallucinate turns a CI gate into a coin flip.
|
|
51
|
+
- `--min-score` sets `process.exitCode`, so the gate genuinely fails a CI step.
|
|
52
|
+
Returning an `exitCode` field is silently ignored by `runLocalTextCommand`,
|
|
53
|
+
which exits with `process.exitCode ?? 0` — the first implementation printed
|
|
54
|
+
FAILED and exited 0.
|
|
55
|
+
|
|
3
56
|
## 1.58.1
|
|
4
57
|
|
|
5
58
|
- Unified vision-capability detection behind
|