hotsheet 0.20.0-beta.5 → 0.20.0-beta.7

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/dist/channel.js CHANGED
@@ -10476,10 +10476,46 @@ var GlobalConfigSchema = z2.object({
10476
10476
  // `Model` is the concrete local model name (e.g. `llama3.1`). Both global.
10477
10477
  announcerLocalEndpoint: z2.string().optional(),
10478
10478
  announcerLocalModel: z2.string().optional(),
10479
+ // HS-8891 — optional fallback model used ONLY when the primary is Apple
10480
+ // Foundation Models and it fails at inference (the HS-8883 "code 4" class). A
10481
+ // non-apple id: a `claude-*` model (cloud backup, spends on the user's key) or
10482
+ // the local pseudo-id. Empty string / unset = no fallback (Apple failure → no
10483
+ // narration, the pre-HS-8891 behavior). The auto-selected-on-device fallback
10484
+ // (HS-8805) is separate and unaffected.
10485
+ announcerFallbackModel: z2.string().refine(
10486
+ (v) => v === "" || v === LOCAL_MODEL_ID || v.startsWith("claude-"),
10487
+ { message: "must be empty, the local provider id, or a claude-* model id" }
10488
+ ).optional(),
10479
10489
  // HS-8781 — verbally announce permission checks (TTS only, no API cost).
10480
10490
  // Global; default ON, so `undefined`/unset is treated as enabled by the
10481
10491
  // client (`announcerSpeakPermissions !== false`).
10482
- announcerSpeakPermissions: z2.boolean().optional()
10492
+ announcerSpeakPermissions: z2.boolean().optional(),
10493
+ // HS-8874 — one-time marker that the per-project telemetry migration
10494
+ // (`migratePerProjectTelemetry`) has run. Set after a successful, non-
10495
+ // destructive copy of legacy launch-default telemetry rows into each row's
10496
+ // owning project DB / the central store. Skipped on subsequent startups.
10497
+ telemetryMigratedV1: z2.boolean().optional(),
10498
+ // HS-8874 (migration efficiency) — per-source-DB resumability for the
10499
+ // telemetry migration. Each source project dir is appended here once all its
10500
+ // foreign rows have been copied, so a crash/quit mid-migration resumes at the
10501
+ // first incomplete DB instead of restarting from zero (the boot-loop the
10502
+ // end-only `telemetryMigratedV1` flag caused). Cleared when migration completes.
10503
+ telemetryMigrationV1DoneDirs: z2.array(z2.string()).optional(),
10504
+ // HS-8877 — retention window (days) for the centralized non-project telemetry
10505
+ // store (`~/.hotsheet/telemetry`). Projects have a per-project
10506
+ // `telemetry_retention_days`; central isn't a project, so its sweep window
10507
+ // lives here. Unset → the §67.6 default (30 days). `0` keeps central forever.
10508
+ centralTelemetryRetentionDays: z2.number().int().min(0).optional(),
10509
+ // HS-8890 (§85.2.2) — retention window (days) for `otel_spans` in the central
10510
+ // store. Spans (§68 enhanced tracing) are high-volume, so they age out faster
10511
+ // than metrics/events: unset → the §85 default of 7 days (vs 30 for
10512
+ // metrics/events via `centralTelemetryRetentionDays`); `0` keeps spans forever.
10513
+ centralSpanRetentionDays: z2.number().int().min(0).optional(),
10514
+ // HS-8884 — last time a `VACUUM FULL` reclaim ran per telemetry DB dir
10515
+ // (`<dataDir>/db` or the central store), keyed by that dir's absolute path →
10516
+ // ISO timestamp. Throttles the heavy, exclusive-lock full reclaim to at most
10517
+ // once per `FULL_VACUUM_THROTTLE_DAYS`; routine plain VACUUMs aren't tracked.
10518
+ telemetryVacuumFullAt: z2.record(z2.string(), z2.string()).optional()
10483
10519
  }).strict();
10484
10520
  var PluginActionSchema = z2.object({
10485
10521
  actionId: z2.string(),