ur-agent 1.15.0 → 1.16.1

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.
@@ -32,8 +32,16 @@ ur claim-ledger add --claim "..." --source web:https://example.com
32
32
  ur claim-ledger validate
33
33
  ur browser-qa validate
34
34
  ur browser-qa run home-page-smoke --dry-run
35
+ ur --discover-ollama
36
+ ur --ollama-host http://192.168.1.50:11434
35
37
  ```
36
38
 
39
+ ## v1.16.0 Additions
40
+
41
+ | Addition | Surface | What it adds |
42
+ | --- | --- | --- |
43
+ | Network Ollama discovery | `ur --discover-ollama`, `ur --ollama-host <url>`, `settings.ollama` | Scans active local subnets for Ollama servers on port 11434, verifies via `/api/tags`, and shows a host picker for the current session. |
44
+
37
45
  ## v1.15.0 Additions
38
46
 
39
47
  Seven additions from the 2026 agent-platform gap list. They keep UR local-first
@@ -0,0 +1,102 @@
1
+ # UR Agent 1.16.0 Upgrade Notes
2
+
3
+ UR 1.16.0 adds local-network Ollama discovery. The agent can now find Ollama
4
+ servers on your LAN, let you pick one at startup, and remember the choice for
5
+ future sessions. The endpoint is no longer hardcoded to `localhost:11434`; it
6
+ can be set via settings, environment, or a CLI flag.
7
+
8
+ ## Network Ollama Discovery
9
+
10
+ ### One-time discovery at startup
11
+
12
+ ```sh
13
+ ur --discover-ollama
14
+ ```
15
+
16
+ UR scans the active local subnets (wired Ethernet and Wi-Fi/WLAN) for hosts
17
+ listening on port `11434`, verifies each one by fetching `/api/tags`, then shows
18
+ a picker with:
19
+
20
+ - `This computer` — your local `ollama serve` at `http://localhost:11434`
21
+ - every discovered LAN host and the number of models it advertises
22
+
23
+ Select a host and UR uses it for that session only. The choice is **not**
24
+ persisted, so plain `ur` continues to use `localhost:11434`.
25
+
26
+ ### Enable discovery on every startup
27
+
28
+ Add to `~/.ur/settings.json`:
29
+
30
+ ```json
31
+ {
32
+ "ollama": {
33
+ "lanDiscovery": true
34
+ }
35
+ }
36
+ ```
37
+
38
+ The picker appears on every startup. The choice is still session-only and is
39
+ not written to settings.
40
+
41
+ ### Point to a specific host without scanning
42
+
43
+ ```sh
44
+ ur --ollama-host http://192.168.1.50:11434
45
+ ```
46
+
47
+ This is session-only and does not write settings. It takes precedence over
48
+ settings and `OLLAMA_HOST`.
49
+
50
+ ### Persistent host via settings
51
+
52
+ ```json
53
+ {
54
+ "ollama": {
55
+ "host": "http://192.168.1.50:11434"
56
+ }
57
+ }
58
+ ```
59
+
60
+ When `ollama.host` is set, UR uses it automatically. Precedence is:
61
+
62
+ 1. `--ollama-host <url>` CLI flag
63
+ 2. `OLLAMA_HOST` environment variable
64
+ 3. `ollama.host` in user settings
65
+ 4. fallback `http://localhost:11434`
66
+
67
+ ## What Uses the Chosen Host
68
+
69
+ The resolved host is used everywhere UR talks to Ollama:
70
+
71
+ - interactive chat requests (`/api/chat`)
72
+ - installed-model listing (`/api/tags`)
73
+ - model metadata refresh (`/api/show`)
74
+ - local embeddings (`/api/embed`)
75
+ - `ur model-doctor`
76
+ - `ur doctor` / `ur sysinfo`
77
+ - startup preflight connectivity check
78
+
79
+ ## Security Notes
80
+
81
+ LAN scanning is opt-in only. It never runs automatically unless you pass
82
+ `--discover-ollama` or set `ollama.lanDiscovery: true`. The scan is limited to
83
+ active local IPv4 interfaces and ignores loopback and link-local addresses. It
84
+ uses bounded concurrency and short timeouts so it finishes in a few seconds on a
85
+ /24 subnet.
86
+
87
+ ## Release Verification
88
+
89
+ Run these before publishing:
90
+
91
+ ```sh
92
+ bun test test/ollamaDiscovery.test.ts test/ollamaModels.test.ts test/ollamaTimeout.test.ts
93
+ bun run typecheck
94
+ npm pack --dry-run
95
+ ```
96
+
97
+ Optional local smoke checks:
98
+
99
+ ```sh
100
+ bun src/entrypoints/cli.tsx --discover-ollama --help
101
+ bun src/entrypoints/cli.tsx --ollama-host http://localhost:11434 -p "hello"
102
+ ```
@@ -1,7 +1,7 @@
1
1
  # UR Agent code feature inventory
2
2
 
3
3
  This file is a code-derived inventory of what this agent can do in the
4
- `ur-agent` 1.15.0 source tree. It is meant to cover behavior that is easy to
4
+ `ur-agent` 1.16.0 source tree. It is meant to cover behavior that is easy to
5
5
  miss in user-facing documentation.
6
6
 
7
7
  Sources traced include:
@@ -4,22 +4,69 @@ UR reads configuration from CLI flags, environment variables, and project or use
4
4
 
5
5
  ## Model Provider
6
6
 
7
- UR runs models strictly through the local Ollama app. The request endpoint is fixed and cannot be reconfigured from UR:
7
+ UR runs models strictly through the local Ollama app. The default request endpoint is:
8
8
 
9
9
  ```text
10
10
  http://localhost:11434/api
11
11
  ```
12
12
 
13
- Any model exposed by that local Ollama app can be used, including local models and Ollama Cloud-backed models. UR does not call remote provider APIs directly and does not manage model API keys.
13
+ Any model exposed by that Ollama app can be used, including local models and Ollama Cloud-backed models. UR does not call remote provider APIs directly and does not manage model API keys.
14
14
 
15
- Model selection environment variables:
15
+ ### Reconfiguring the Ollama host
16
+
17
+ The endpoint can be changed from UR in three ways, in order of precedence:
18
+
19
+ 1. `--ollama-host <url>` CLI flag (session only)
20
+ 2. `OLLAMA_HOST` environment variable
21
+ 3. `ollama.host` in user settings (`~/.ur/settings.json`)
22
+
23
+ Examples:
24
+
25
+ ```sh
26
+ # Session-only
27
+ ur --ollama-host http://192.168.1.50:11434
28
+
29
+ # Via environment
30
+ OLLAMA_HOST=http://192.168.1.50:11434 ur
31
+
32
+ # Persistent setting
33
+ ur --settings '{"ollama":{"host":"http://192.168.1.50:11434"}}'
34
+ ```
35
+
36
+ Model selection environment variables still work the same way:
16
37
 
17
38
  ```sh
18
39
  OLLAMA_MODEL=qwen3-coder:480b-cloud
19
40
  UR_MODEL=qwen3-coder:480b-cloud
20
41
  ```
21
42
 
22
- `OLLAMA_MODEL` selects the model name and takes precedence over `UR_MODEL`. If neither is set, UR lets its Ollama router choose from the model list advertised by the local Ollama app. If that discovery fails, the built-in fallback is `qwen3-coder:480b-cloud`. Neither variable can change the endpoint.
43
+ `OLLAMA_MODEL` selects the model name and takes precedence over `UR_MODEL`. If neither is set, UR lets its Ollama router choose from the model list advertised by the configured Ollama app. If that discovery fails, the built-in fallback is `qwen3-coder:480b-cloud`.
44
+
45
+ ### Discovering LAN Ollama servers
46
+
47
+ UR can scan your active local subnets for other Ollama servers and show a picker. This works for both wired Ethernet and wireless (Wi-Fi/WLAN) interfaces:
48
+
49
+ ```sh
50
+ ur --discover-ollama
51
+ ```
52
+
53
+ This is **session-only**: the picker appears and the chosen host is used for
54
+ that session, but plain `ur` continues to use `localhost:11434` unless you set
55
+ `ollama.host` explicitly.
56
+
57
+ To make the picker appear on every startup, enable it in user settings:
58
+
59
+ ```json
60
+ {
61
+ "ollama": {
62
+ "lanDiscovery": true
63
+ }
64
+ }
65
+ ```
66
+
67
+ The scan is limited to active local IPv4 interfaces, ignores loopback/link-local
68
+ addresses, and uses bounded concurrency with short timeouts. It is opt-in and
69
+ never runs automatically unless enabled.
23
70
 
24
71
  ## CLI Flags
25
72
 
package/docs/USAGE.md CHANGED
@@ -64,7 +64,25 @@ ur --model qwen3-coder:480b-cloud
64
64
  ur --model qwen2.5-coder:latest
65
65
  ```
66
66
 
67
- UR talks only to the local Ollama app at the fixed endpoint `http://localhost:11434/api`. The endpoint cannot be changed from UR. Models exposed by that local app are valid, including Ollama Cloud-backed models. UR does not call provider APIs directly or manage model API keys.
67
+ UR talks to the local Ollama app at `http://localhost:11434/api` by default, but you can point it at another Ollama server on your LAN or in another location:
68
+
69
+ ```sh
70
+ # Discover and pick a LAN Ollama server at startup (session only)
71
+ ur --discover-ollama
72
+
73
+ # Point to a specific Ollama server for this session
74
+ ur --ollama-host http://192.168.1.50:11434
75
+
76
+ # Persistent setting (plain `ur` uses this host automatically)
77
+ ur --settings '{"ollama":{"host":"http://192.168.1.50:11434"}}'
78
+ ```
79
+
80
+ Precedence: `--ollama-host` > `OLLAMA_HOST` env > `ollama.host` setting > `localhost:11434`.
81
+
82
+ `--discover-ollama` shows the picker every time but does **not** save the choice;
83
+ use `ollama.host` in settings if you want plain `ur` to default to a LAN host.
84
+
85
+ Models exposed by the chosen Ollama app are valid, including local models and Ollama Cloud-backed models. UR does not call provider APIs directly or manage model API keys.
68
86
 
69
87
  ## Project Instructions
70
88
 
@@ -8,7 +8,8 @@ You need:
8
8
 
9
9
  - A running Ollama server (`ollama serve`) with at least one model available
10
10
  in the local Ollama app. Local models and Ollama Cloud-backed models both
11
- work because UR talks to the local app.
11
+ work because UR talks to the configured Ollama host.
12
+ - A second Ollama server on the LAN if you want to test network discovery.
12
13
  - UR installed globally (`npm install -g ur-agent`) or this repo installed
13
14
  globally (`bun add -g github:Maitham16/UR-mapek`) or a
14
15
  local checkout (`bun run dev`).
@@ -17,7 +18,25 @@ You need:
17
18
 
18
19
  ```sh
19
20
  ur --version
20
- # expected: 1.15.0 (Ur)
21
+ # expected: 1.16.0 (Ur)
22
+ ```
23
+
24
+ ## 0.1 Network Ollama discovery (1.16.0)
25
+
26
+ With at least one other Ollama server reachable on your LAN:
27
+
28
+ ```sh
29
+ ur --discover-ollama
30
+ ```
31
+
32
+ Expected: a picker appears listing `This computer` plus the LAN host(s). Select
33
+ the LAN host, then run a prompt and confirm traffic goes to the selected host.
34
+
35
+ Without a LAN host, you can still verify host configuration:
36
+
37
+ ```sh
38
+ ur --ollama-host http://localhost:11434 -p "say hi"
39
+ ur --settings '{"ollama":{"host":"http://localhost:11434"}}' -p "say hi"
21
40
  ```
22
41
 
23
42
  ## 1. Marketplace tree resolves
@@ -2,7 +2,7 @@
2
2
  "name": "ur-inline-diffs",
3
3
  "displayName": "UR Inline Diffs",
4
4
  "description": "Review UR inline diff bundles from .ur/ide/diffs inside VS Code.",
5
- "version": "1.15.0",
5
+ "version": "1.16.1",
6
6
  "publisher": "ur-agent",
7
7
  "engines": {
8
8
  "vscode": "^1.92.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.15.0",
3
+ "version": "1.16.1",
4
4
  "description": "UR terminal coding agent CLI",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",