ur-agent 1.15.0 → 1.16.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.
@@ -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`, shows a host picker, and persists the chosen host. |
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,101 @@
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 the session and persists it to user settings.
24
+
25
+ ### Enable discovery on every startup
26
+
27
+ Add to `~/.ur/settings.json`:
28
+
29
+ ```json
30
+ {
31
+ "ollama": {
32
+ "lanDiscovery": true
33
+ }
34
+ }
35
+ ```
36
+
37
+ The picker still appears even if no LAN hosts are found, so you can confirm the
38
+ local host or manually point to another one.
39
+
40
+ ### Point to a specific host without scanning
41
+
42
+ ```sh
43
+ ur --ollama-host http://192.168.1.50:11434
44
+ ```
45
+
46
+ This is session-only and does not write settings. It takes precedence over
47
+ settings and `OLLAMA_HOST`.
48
+
49
+ ### Persistent host via settings
50
+
51
+ ```json
52
+ {
53
+ "ollama": {
54
+ "host": "http://192.168.1.50:11434"
55
+ }
56
+ }
57
+ ```
58
+
59
+ When `ollama.host` is set, UR uses it automatically. Precedence is:
60
+
61
+ 1. `--ollama-host <url>` CLI flag
62
+ 2. `OLLAMA_HOST` environment variable
63
+ 3. `ollama.host` in user settings
64
+ 4. fallback `http://localhost:11434`
65
+
66
+ ## What Uses the Chosen Host
67
+
68
+ The resolved host is used everywhere UR talks to Ollama:
69
+
70
+ - interactive chat requests (`/api/chat`)
71
+ - installed-model listing (`/api/tags`)
72
+ - model metadata refresh (`/api/show`)
73
+ - local embeddings (`/api/embed`)
74
+ - `ur model-doctor`
75
+ - `ur doctor` / `ur sysinfo`
76
+ - startup preflight connectivity check
77
+
78
+ ## Security Notes
79
+
80
+ LAN scanning is opt-in only. It never runs automatically unless you pass
81
+ `--discover-ollama` or set `ollama.lanDiscovery: true`. The scan is limited to
82
+ active local IPv4 interfaces and ignores loopback and link-local addresses. It
83
+ uses bounded concurrency and short timeouts so it finishes in a few seconds on a
84
+ /24 subnet.
85
+
86
+ ## Release Verification
87
+
88
+ Run these before publishing:
89
+
90
+ ```sh
91
+ bun test test/ollamaDiscovery.test.ts test/ollamaModels.test.ts test/ollamaTimeout.test.ts
92
+ bun run typecheck
93
+ npm pack --dry-run
94
+ ```
95
+
96
+ Optional local smoke checks:
97
+
98
+ ```sh
99
+ bun src/entrypoints/cli.tsx --discover-ollama --help
100
+ bun src/entrypoints/cli.tsx --ollama-host http://localhost:11434 -p "hello"
101
+ ```
@@ -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,65 @@ 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
+ To make the picker appear on every startup, enable it in user settings:
54
+
55
+ ```json
56
+ {
57
+ "ollama": {
58
+ "lanDiscovery": true
59
+ }
60
+ }
61
+ ```
62
+
63
+ The scan is limited to active local IPv4 interfaces, ignores loopback/link-local
64
+ addresses, and uses bounded concurrency with short timeouts. It is opt-in and
65
+ never runs automatically unless enabled.
23
66
 
24
67
  ## CLI Flags
25
68
 
package/docs/USAGE.md CHANGED
@@ -64,7 +64,22 @@ 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
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
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
+ 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
83
 
69
84
  ## Project Instructions
70
85
 
@@ -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.0",
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.0",
4
4
  "description": "UR terminal coding agent CLI",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",