@gotcos/glasses-server 6.37.0 → 6.37.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.
- package/.env.example +8 -3
- package/CHANGELOG.md +30 -3
- package/package.json +1 -1
- package/server/lib/meeting-summary.ts +12 -3
package/.env.example
CHANGED
|
@@ -182,12 +182,17 @@ BIND_HOST=0.0.0.0
|
|
|
182
182
|
# WITHOUT the COS operations pipeline (no COS_SCRIPTS_DIR). Spawns one
|
|
183
183
|
# `claude -p --model haiku` per meeting, at the end of finalization.
|
|
184
184
|
#
|
|
185
|
-
# Default
|
|
186
|
-
#
|
|
185
|
+
# Default ON since 6.37.0. Set to 0 to opt out; only a literal 0 disables.
|
|
186
|
+
# With it off you still get the deterministic tier — speakers, talk-time, word
|
|
187
|
+
# count, opening excerpt — which costs nothing and always runs.
|
|
188
|
+
#
|
|
189
|
+
# This spends tokens on YOUR provider plan, unlike the display toggles. It is
|
|
190
|
+
# bounded by a per-day cap (below) counted only on a validated summary, a
|
|
191
|
+
# circuit breaker, a minimum word floor, a single-slot queue and a wall budget.
|
|
187
192
|
#
|
|
188
193
|
# Never runs when COS_SCRIPTS_DIR is set: overwriting the summary section would
|
|
189
194
|
# erase the markers sync_meetings.py uses to decide what to process.
|
|
190
|
-
# COS_MEETING_SUMMARY=
|
|
195
|
+
# COS_MEETING_SUMMARY=0
|
|
191
196
|
#
|
|
192
197
|
# Calls per local day before the summariser falls back to the deterministic
|
|
193
198
|
# tier for the rest of the day. Default 40.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
## 6.37.1
|
|
2
|
+
|
|
3
|
+
Standalone meeting summaries default ON.
|
|
4
|
+
|
|
5
|
+
6.37.0 shipped everything else in this release — the honest summary slot, the
|
|
6
|
+
two enrichment tiers, the voice-profile name validator, and Continue threads /
|
|
7
|
+
video uploads / adaptive audio cleanup all defaulting on — but it went out with
|
|
8
|
+
COS_MEETING_SUMMARY still defaulting OFF. That meant the headline fix, a meeting
|
|
9
|
+
that comes back with a real summary, reached nobody unless they found an
|
|
10
|
+
undocumented environment variable.
|
|
11
|
+
|
|
12
|
+
Only a literal '0' disables, so a stray or malformed value cannot silently
|
|
13
|
+
switch summaries off.
|
|
14
|
+
|
|
15
|
+
This is a different class of default from the display toggles in 6.37.0: it
|
|
16
|
+
spends tokens on the USER'S OWN provider plan. Every control in the module is
|
|
17
|
+
load-bearing rather than decorative — a per-day cap counted only on a validated
|
|
18
|
+
summary, a circuit breaker with its own accounting, a minimum word floor, a
|
|
19
|
+
single-slot queue, and a wall budget that keeps finalization under COS Control's
|
|
20
|
+
90s restart proof.
|
|
21
|
+
|
|
22
|
+
No other change. Anyone already on 6.37.0 who set COS_MEETING_SUMMARY=1 by hand
|
|
23
|
+
is unaffected.
|
|
24
|
+
|
|
1
25
|
## 6.37.0
|
|
2
26
|
|
|
3
27
|
Meetings recorded without the COS operations pipeline now get a real summary,
|
|
@@ -64,8 +88,11 @@ Two enrichment tiers, both standalone-only:
|
|
|
64
88
|
with talk-time split, opening excerpt. Fabricates nothing:
|
|
65
89
|
topics/decisions/actions come back empty rather than guessed.
|
|
66
90
|
|
|
67
|
-
llm
|
|
68
|
-
|
|
91
|
+
llm DEFAULT ON. One `claude -p --model haiku` per meeting at the
|
|
92
|
+
ops_pending phase of finalization. Set COS_MEETING_SUMMARY=0 to
|
|
93
|
+
opt out; only a literal 0 disables. This spends tokens on the
|
|
94
|
+
USER'S OWN provider plan, which is why every control below is
|
|
95
|
+
load-bearing rather than decorative.
|
|
69
96
|
|
|
70
97
|
It runs at ops_pending specifically because batch HQ transcription replaces the
|
|
71
98
|
whole transcript; summarising earlier would describe text the file no longer
|
|
@@ -79,7 +106,7 @@ erase them and the pipeline would skip the meeting entirely -- losing domain
|
|
|
79
106
|
reclassification, task extraction and the operations copy.
|
|
80
107
|
|
|
81
108
|
COST CONTROLS
|
|
82
|
-
- COS_MEETING_SUMMARY, read live (not frozen at module load)
|
|
109
|
+
- COS_MEETING_SUMMARY, read live (not frozen at module load), default ON
|
|
83
110
|
- haiku pinned explicitly, so it can never inherit an Opus session default
|
|
84
111
|
- own daily cap (COS_MEETING_SUMMARY_DAILY_CAP, default 40), never shared
|
|
85
112
|
with the archive counter; committed only after a validated summary, so a
|
package/package.json
CHANGED
|
@@ -87,10 +87,19 @@ export const meetingSummaryBreaker = breaker
|
|
|
87
87
|
|
|
88
88
|
/** Read LIVE, not at module load. COS Control rebuilds the runtime plist
|
|
89
89
|
* environment on update, and tests flip this per-case; a module-scope const
|
|
90
|
-
* would freeze the value at import and make both untestable.
|
|
90
|
+
* would freeze the value at import and make both untestable.
|
|
91
|
+
*
|
|
92
|
+
* DEFAULT ON since 6.37.0 (Miles 2026-08-25). Shipping this off meant the
|
|
93
|
+
* headline fix — a meeting that comes back with a real summary — reached
|
|
94
|
+
* nobody unless they found an undocumented env var.
|
|
95
|
+
*
|
|
96
|
+
* Unlike the display toggles that flipped on in the same release, this one
|
|
97
|
+
* spends tokens on the USER'S OWN provider plan, which is why every control in
|
|
98
|
+
* this module is load-bearing: a per-day cap committed only on a validated
|
|
99
|
+
* result, a breaker with its own accounting, a minimum word floor, a
|
|
100
|
+
* single-slot queue, and a wall budget. Only a literal '0' disables. */
|
|
91
101
|
export function meetingSummaryLLMEnabled(): boolean {
|
|
92
|
-
|
|
93
|
-
return raw === '1' || raw?.toLowerCase() === 'true'
|
|
102
|
+
return process.env.COS_MEETING_SUMMARY?.trim() !== '0'
|
|
94
103
|
}
|
|
95
104
|
|
|
96
105
|
// ── Transcript parsing ──────────────────────────────────────
|