@gotcos/glasses-server 6.43.1 → 6.43.2
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,17 +1,32 @@
|
|
|
1
|
+
## 6.43.2
|
|
2
|
+
|
|
3
|
+
Managed-server updates pass their Claude readiness proof again.
|
|
4
|
+
|
|
5
|
+
- **The proof no longer loads your MCP catalog.** COS Control verifies a
|
|
6
|
+
candidate server by running one real `claude -p --model haiku` query with
|
|
7
|
+
no tools. On Claude Code 2.1.251, `--tools ''` still loads every MCP
|
|
8
|
+
server's tool definitions, and on a Mac with a large fleet that alone was
|
|
9
|
+
about 244,000 tokens against Haiku's 200,000-token window: "Prompt is too
|
|
10
|
+
long", exit 1, zero API time, and the update rolled back to the previous
|
|
11
|
+
server every time (six attempts on 6.43.1). The proof now passes
|
|
12
|
+
`--strict-mcp-config` with an empty MCP config, which keeps it under
|
|
13
|
+
20,000 tokens and answers in about two seconds. Nothing else changed.
|
|
14
|
+
|
|
1
15
|
## 6.43.1
|
|
2
16
|
|
|
3
17
|
Two things the first night of the morning brief taught us, plus the depth
|
|
4
18
|
behind each source.
|
|
5
19
|
|
|
6
|
-
- **A running brief no longer
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
not-yet-terminal durable jobs (and by the brief's own
|
|
11
|
-
exists before the job does) now count toward the ceiling.
|
|
12
|
-
`lib/message-reservations.ts` registry; the job store keeps the number
|
|
13
|
-
its always-in-memory identity so the answer is synchronous and survives
|
|
14
|
-
restart.
|
|
20
|
+
- **A running brief can no longer collide with your next message.** A brief
|
|
21
|
+
holds its number for the minutes it runs, but `/api/message-counter` only
|
|
22
|
+
counted exchanges that had already been projected, so a phone whose counter
|
|
23
|
+
last synced at boot could mint the same number for its next prompt. Numbers
|
|
24
|
+
held by admitted, not-yet-terminal durable jobs (and by the brief's own
|
|
25
|
+
ledger row, which exists before the job does) now count toward the ceiling.
|
|
26
|
+
New `lib/message-reservations.ts` registry; the job store keeps the number
|
|
27
|
+
on its always-in-memory identity so the answer is synchronous and survives
|
|
28
|
+
a restart. (The double #74 reported on 6.9.443 was the companion showing one
|
|
29
|
+
exchange twice; companion 6.9.445 fixes that side.)
|
|
15
30
|
- **Sources show what is behind them.** `GET /api/morning-brief` now carries
|
|
16
31
|
`coverage`: one row per source with a state (`ready`, `empty`,
|
|
17
32
|
`unavailable`, `runtime`) and a summary line such as "2,312 meetings
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gotcos/glasses-server",
|
|
3
|
-
"version": "6.43.
|
|
3
|
+
"version": "6.43.2",
|
|
4
4
|
"description": "COS Glasses \u2014 self-hosted AI heads-up-display server for Even G2 smart glasses, powered by Claude Code, Codex, Cursor Agent CLI, or local Ollama",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -4,9 +4,12 @@
|
|
|
4
4
|
// reports, and a durable job carries the number it was minted with until its
|
|
5
5
|
// terminal projection writes the exchange into the session. Between admission
|
|
6
6
|
// and projection the number existed nowhere the counter looked, so a second
|
|
7
|
-
// producer
|
|
8
|
-
//
|
|
9
|
-
//
|
|
7
|
+
// producer could mint it again: a running morning brief holds its number for
|
|
8
|
+
// minutes while the phone's counter, which only re-syncs at boot, still sits
|
|
9
|
+
// below it. (The double "#74" seen on 2026-09-01 turned out to be the phone
|
|
10
|
+
// showing ONE exchange twice, a display-bus placeholder plus the hydrated
|
|
11
|
+
// row, fixed in companion 6.9.445. The window this closes is real all the
|
|
12
|
+
// same: the same night's ledger shows the brief holding #74 for 6m35s.)
|
|
10
13
|
//
|
|
11
14
|
// Every holder of a not-yet-projected number registers a source here. The
|
|
12
15
|
// counter route and the brief's own reservation read the union. Sources
|
|
@@ -110,12 +110,23 @@ export function runBounded(
|
|
|
110
110
|
export const CLAUDE_PROOF_MODEL = 'haiku'
|
|
111
111
|
export const CLAUDE_PROOF_TIMEOUT_MS = 45_000
|
|
112
112
|
|
|
113
|
+
/** No MCP servers for the proof. Claude Code 2.1.251 turns `--tools ''`
|
|
114
|
+
* into "load the whole catalog, expose none of it", and on a Mac with a
|
|
115
|
+
* large MCP fleet that catalog alone was ~244K tokens against Haiku's 200K
|
|
116
|
+
* window: "Prompt is too long", exit 1, zero API time. Six 6.43.1 update
|
|
117
|
+
* attempts rolled back on 2026-09-01/02 before a single request was made.
|
|
118
|
+
* An explicit empty config with --strict-mcp-config keeps the proof under
|
|
119
|
+
* 20K tokens and is what a readiness check should be anyway. */
|
|
120
|
+
export const CLAUDE_PROOF_MCP_CONFIG = '{"mcpServers":{}}'
|
|
121
|
+
|
|
113
122
|
export function claudeProofArgs(): string[] {
|
|
114
123
|
return [
|
|
115
124
|
'-p',
|
|
116
125
|
'--model', CLAUDE_PROOF_MODEL,
|
|
117
126
|
'--output-format', 'json',
|
|
118
127
|
'--permission-mode', 'dontAsk',
|
|
128
|
+
'--strict-mcp-config',
|
|
129
|
+
'--mcp-config', CLAUDE_PROOF_MCP_CONFIG,
|
|
119
130
|
'--tools', '',
|
|
120
131
|
'--allowedTools', '',
|
|
121
132
|
'--system-prompt', PROOF_PROMPT,
|