Skip to content

feat(storage): gate dictation on durable session health - #114

Merged
douglasjarquin merged 35 commits into
mainfrom
codex/issue-86-storage-health
Aug 18, 2026
Merged

feat(storage): gate dictation on durable session health#114
douglasjarquin merged 35 commits into
mainfrom
codex/issue-86-storage-health

Conversation

@douglasjarquin

Copy link
Copy Markdown
Owner

Closes #86

Summary

  • Adds injectable durable-session bootstrap phases for root validation, store construction, unfinished-session recovery, and initial History enumeration.
  • Adds typed storage health states, stable sanitized failure categories, descriptor-relative root identity checks, write probing, malformed-child isolation, and bounded shutdown.
  • Gates microphone, Speech, cleanup, insertion, and global shortcut activation until session metadata is persisted by a healthy store.
  • Adds persistent Storage unavailable status and Retry Storage behavior with generation fencing, retry coalescing, runtime degradation, and relaunch preservation.
  • Preserves existing session data and rejects reset, delete, symlink-following, and alternate-root recovery shortcuts.
  • Keeps ordinary diagnostics content-free; diagnosticsExport() is the explicit Phase A exception that may retain the local underlying error for export.
  • Keeps timeout classification typed through TranscriptionTimeoutEvidence, including a regression for caller-supplied timeout prose.
  • Includes DurableSessionBootstrap.swift in the native OigoCore target.

Verification

  • Final review head: ff3f3f41f733e0ef5d9c8e93f480d777c23833f4.
  • Live base and merge-base: c7441f9739b1cac0b211de630645ba8e29609ea5.
  • swift build passed.
  • All 16 workflow products passed: Oigo, spike, spike contract, issue3 through issue10, issue11 performance, issue76, issue78, issue82, and issue86.
  • Issue [V1 Phase 0 · P0] Bound Speech startup, finalization, cancellation, retry, and shutdown #78 and issue [V1 Phase 0 · P0] Block dictation until durable session storage is healthy #86 contract harnesses passed all scenarios.
  • SourceKit diagnostics returned No diagnostics found for the changed coordinator, lifecycle, bootstrap, app delegate, and issue78/issue86 harness files.
  • Exact Xcode Release bundle /tmp/oigo-issue86-xcode-final8-zuvz40/Build/Products/Release/Oigo.app passed plist lint, arm64 Mach-O inspection, and a bounded three-second direct launch probe for the unchanged source tree in final head ff3f3f41f733e0ef5d9c8e93f480d777c23833f4; the temporary derived-data directory was removed.
  • Native menu, Settings, onboarding, microphone, Speech, TCC, Accessibility, Input Monitoring, and target-application surfaces are explicitly INCONCLUSIVE because this host lacks the permissioned UI evidence path. No shared configuration, permissions, daemons, or target application were mutated.

The PR is intentionally left open for human merge.

douglasjarquin and others added 30 commits August 18, 2026 08:20
…e-health

# Conflicts:
#	.github/workflows/verify.yml
#	Package.swift
#	Sources/Oigo/OigoAppDelegate.swift
#	Sources/Oigo/OnboardingWindowController.swift
#	Sources/OigoCore/DictationCoordinator.swift
#	Sources/OigoCore/SessionStore.swift
…e-health

# Conflicts:
#	.github/workflows/verify.yml
#	Sources/Oigo/OigoAppDelegate.swift
#	Sources/Oigo/OnboardingWindowController.swift
#	Sources/Oigo/SettingsWindowController.swift
@douglasjarquin
douglasjarquin merged commit 8d97c08 into main Aug 18, 2026
1 check passed
@douglasjarquin
douglasjarquin deleted the codex/issue-86-storage-health branch August 18, 2026 17:26
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.

[V1 Phase 0 · P0] Block dictation until durable session storage is healthy

1 participant