Skip to content

Make canonical Workshop transcripts authoritative - #1056

Merged
dcellison merged 1 commit into
mainfrom
feat/workshop-transcript-authority
Aug 22, 2026
Merged

Make canonical Workshop transcripts authoritative#1056
dcellison merged 1 commit into
mainfrom
feat/workshop-transcript-authority

Conversation

@dcellison

Copy link
Copy Markdown
Owner

Summary

  • make canonical Workshop messages the sole transcript authority for protected Telegram and browser private-text runs
  • record a durable schema-v25 cutover position instead of inferring authority from table existence
  • stop protected private-text JSONL reads and writes while retaining older JSONL as a non-authoritative archive for excluded compatibility routes and historical memory provenance
  • derive bounded prompt context from the canonical channel timeline and semantic-memory episode context from completed runs in the exact principal/channel/agent lane
  • resolve new memory source views from exact completed canonical exchanges, with fail-closed principal, runtime-profile, channel, agent, run, and message validation
  • add a deterministic, incremental, recoverable canonical-transcript.ndjson projection and an explicit kai workshop transcript export command for deliberate older-history access
  • split installation diagnostics into canonical message integrity, durable transcript authority, and classified legacy JSONL archive status
  • document the cutover, remaining compatibility exclusions, and installed qualification gate

Authority and compatibility boundary

SQLite remains authoritative. The NDJSON transcript is derived and recoverable; projection writes and fsync occur outside the shared database lock. Projection failure does not make a canonical run unavailable.

This PR changes protected Telegram/browser private text only. Media, commands, groups, schedules, integrations, and older memory provenance retain their existing compatibility paths until their own bounded migrations. Historical JSONL files are not deleted.

Security and data safety

  • transcript files and channel directories retain protected per-user read access and private modes
  • unsafe symlink/non-file transcript targets are rejected
  • malformed or partial canonical provenance never falls back to JSONL
  • canonical source lookup rejects cross-principal or mismatched runtime-profile/channel/agent/run/message metadata
  • episode context excludes incomplete or failed runs, other principals, other agents, notifications, interleaved work, and the current inbound turn
  • diagnostics remain content-free and classify intentional canonical-only records separately from unexplained historical gaps

Verification

  • make test — 6,101 passed, 1 skipped
  • make check
  • make typecheck
  • make client-check — 40 client tests passed; generated assets verified
  • git diff --check

Installed gate

This advances #1047 but intentionally does not close it. After merge and installation, the issue still requires qualification of Workshop-only restart continuity, deliberate older-history retrieval, canonical and historical memory source views, hybrid Telegram/Workshop continuity, unchanged Telegram private-text and GitHub notification delivery, and clean authoritative status.

@dcellison
dcellison merged commit 674794b into main Aug 22, 2026
2 checks passed
@dcellison
dcellison deleted the feat/workshop-transcript-authority branch August 22, 2026 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants