Recovering Observal
Execution contract
- Execute commands with a 60 second timeout unless the operation documents a longer wait.
- Use machine output by default: add
--output jsonwhenever supported. Parse list results fromitemsand pagination fields. - Run
--helpbefore acting when a path or flag is uncertain. - Use dry run before reconciliation when scope or session volume is uncertain.
- Supply documented force flags so version operations never prompt.
- Verify cursor, outbox, installed version, checksum, and rollback state after recovery operations.
- Fail openly. Never hide an unavailable server behind automatic local writes.
- Never retry reconciliation, version changes, or fallback writes without checking resulting state.
Read Recovery workflows completely before executing.
Decision rules
- Healthy telemetry does not need routine reconciliation.
- Reconcile repairs missed local session delivery. It does not replace hook or extension installation.
- Upgrade, downgrade, and rollback are distinct requests. Do not substitute one for another.
- Local fallback is allowed only after the CLI explicitly reports
Connection failedorNot configured, and only when the user still wants local files written. - Local fallback creates harness-native Agent files. It does not publish Registry state and must be reported as local-only.
- Never invent telemetry environment variables or wrappers.
Completion
Report sessions discovered, queued, skipped, or failed for reconciliation; old and new versions for CLI changes; or exact local paths for fallback. Include unresolved warnings and the command needed once the server is reachable.