ur-agent 1.66.1 → 1.68.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 CHANGED
@@ -1,5 +1,84 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.68.0
4
+
5
+ - Removed `@ts-nocheck` from 73 files, putting 21,503 previously unchecked lines
6
+ under `tsc`. Every one of those files produced **zero** errors once the
7
+ suppression was lifted — they were not suppressed because they were broken,
8
+ they were suppressed and then fixed, or never needed it. The blind spot was
9
+ 33% larger than the actual debt. Typecheck remains clean at exit 0.
10
+ - Added `test/typeCheckCoverage.test.ts`, a ratchet: the `@ts-nocheck` count may
11
+ fall but never rise, and the budget must be lowered when files come off the
12
+ list so it cannot silently stop ratcheting. It also asserts that `query.ts`,
13
+ `permissions.ts`, `filesystem.ts` and `toolExecution.ts` are still suppressed
14
+ — a standing reminder that the highest-consequence files are the unchecked
15
+ ones, with instructions to delete the test when that stops being true.
16
+ - Remaining debt, measured rather than estimated: 150 files, ~870 errors, but
17
+ concentrated — 3 files hold 231 of them, while 95 files have 3 or fewer each
18
+ and 135 have 10 or fewer. Of the total, 32 are dead build-constant comparisons
19
+ from the fork (`'external' === 'ant'`) and 562 are property-access-on-`any`.
20
+ The 95 cheap files are the next batch.
21
+
22
+ - Restored the worked examples in the TodoWrite tool prompt, with their
23
+ narrated tool use removed. After 1.65.5 that
24
+ prompt was cut from 184 lines to 48, which removed every demonstration and
25
+ left only abstract rules ("work is non-trivial when it needs planning,
26
+ investigation, multiple deliverables..."). A large model infers intent from
27
+ rules; a small local model pattern-matches on examples. Task lists stopped
28
+ being produced, and the task-list gate was then hardened over five successive
29
+ commits to force what the prompt no longer taught — which is what produced
30
+ refused writes and retry loops on small models. The newer lifecycle rules are
31
+ good and are kept; what returns is seven worked examples covering when to use
32
+ the list, when not to, and why, including the single-file case where one Write
33
+ call still warrants a plan.
34
+
35
+ ### Also in this release (was staged as 1.67.0)
36
+
37
+ - Two subsystems loaded behind feature flags were not merely disabled, they
38
+ were broken in a way that only showed if you enabled them.
39
+ `services/compact/reactiveCompact.ts` did not exist on disk at all, yet
40
+ `query.ts` requires it by path and `/compact` calls two functions on it;
41
+ `services/contextCollapse/index.ts` was a stub exporting four names while
42
+ `query.ts` called four different ones, three of which were absent. Setting
43
+ either flag would have failed on the first turn with MODULE_NOT_FOUND or
44
+ "is not a function" rather than degrading to "feature off". Both modules now
45
+ export the full surface their callers use, returning result-shaped objects
46
+ instead of null so property access on the result cannot throw.
47
+ - Neither was reachable in shipped builds — the bundler passes only VOICE_MODE
48
+ and CHICAGO_MCP, and live context management runs through
49
+ `services/compact/autoCompact.ts`, which is real and unaffected.
50
+ - Added `test/optionalSubsystems.test.ts`, which derives the required exports
51
+ from what `query.ts` actually calls rather than from a hand-written list, so
52
+ a new call site cannot reintroduce the gap. It also asserts autoCompact has
53
+ not itself become a stub.
54
+ - Audit note: 223 files carry `@ts-nocheck` and are invisible to
55
+ `tsc --noEmit`. Stripping the suppressions in a scratch copy surfaces 872
56
+ errors across ~108k lines, including `query.ts`, `permissions.ts` and
57
+ `filesystem.ts`. Both defects above sat inside that blind spot.
58
+
59
+
60
+ - The original examples narrated tool use as prose ("* Uses the Edit tool to
61
+ add a comment *", "*Executes: npm install*"), which is the exact anti-pattern
62
+ the same prompt forbids in its closing paragraph — and what a small model
63
+ copies when it reports a file as written without calling Write. That is why
64
+ the examples were cut, and cutting them was not baseless; it just took the
65
+ decision guidance with it. They now return without the narration.
66
+
67
+ ## 1.66.2
68
+
69
+ - A long session on Ollama now says when it has run out of context instead of
70
+ quietly getting worse. Ollama truncates an oversized prompt from the front
71
+ rather than returning an error, and the front of the prompt is the system
72
+ prompt — so the first thing discarded is the instruction set. The model then
73
+ answers with no tool guidance and no task-list requirement, which from the
74
+ outside looks like the model degrading on long prompts rather than like
75
+ context running out. Both numbers needed to detect this were already computed
76
+ on every request; they were never compared. A near-full context now warns at
77
+ 85% and a full one explains what was dropped and offers `/compact`, a fresh
78
+ session, a larger-context model, or `UR_OLLAMA_NUM_CTX`.
79
+ - Added `test/contextPressure.test.ts`, including that unknown sizing produces
80
+ no warning — an unmeasured context is not a full one.
81
+
3
82
  ## 1.66.1
4
83
 
5
84
  - Corrected the warning-state result used by reactive compaction and context