@bman654/clodex 2.1.1 → 2.1.3

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/README.md CHANGED
@@ -214,17 +214,39 @@ clodex --version # version
214
214
  ## Configuration
215
215
 
216
216
  - Config home: `~/.clodex` (override with `CLODEX_HOME`). On first run, config is migrated automatically from a legacy `~/.relay-ai` directory if present; the legacy directory is never modified.
217
- - The config-home filesystem must support hard links because registry locks are
218
- published atomically. Keep `CLODEX_HOME` on a local filesystem rather than
219
- FAT, exFAT, or a network mount that rejects hard links. An abrupt process kill
220
- during lock publication can leave a `*.lock.*.tmp` file; it does
221
- not block later lock acquisition and can be removed when no Clodex process is
217
+ - The config-home filesystem and the native account home must support hard
218
+ links because registry and credential locks are published atomically. Keep
219
+ `CLODEX_HOME` and `~/.clodex/credential-locks` on local filesystems rather
220
+ than FAT, exFAT, or a network mount that rejects hard links. An abrupt process
221
+ kill during lock publication can leave a `*.lock.*.tmp` file; it does not
222
+ block later lock acquisition and can be removed when no Clodex process is
222
223
  running. A canonical `providers.json.lock` whose recorded PID is no longer
223
- running is reclaimed automatically on the next lock acquisition. If it remains
224
- while that PID is active, stop every Clodex process and verify the recorded PID
225
- before removing the lock manually. Never remove the canonical lock while a
226
- Clodex process is active.
227
- - Credentials live in the OS credential store (Keychain / Windows Credential Manager / Secret Service) under the `clodex` service. Set `CLODEX_CREDENTIAL_HELPER` to an absolute executable path to use an external secure store instead; see [credential helpers](docs/credential-helpers.md).
224
+ running is reclaimed automatically on the next lock acquisition. If it
225
+ remains while that PID is active, stop every Clodex process and verify the
226
+ recorded PID before removing the lock manually. Never remove the canonical
227
+ lock while a Clodex process is active.
228
+ - Credentials live in the OS credential store (Keychain / Windows Credential
229
+ Manager / Secret Service). The `clodex` service holds the main value or
230
+ published marker; `clodex-chunks` holds current long-credential chunks;
231
+ `clodex-journal` holds crash-recovery metadata and a deletion marker; and
232
+ `clodex-deleted` holds a redundant non-secret deletion guard. A
233
+ `clodex-state-key` entry protects each account's recovery metadata. Use
234
+ Clodex provider removal instead of deleting these entries individually.
235
+ Authenticated encrypted per-account managed-state markers live under the
236
+ native OS account home at `~/.clodex/keyring-state`; before each journal
237
+ write they record the exact recovery intent so a retry can replay and verify
238
+ it. The encryption key remains in the OS credential store, so the filesystem
239
+ marker alone cannot be used to test credential guesses. The marker also
240
+ prevents a temporarily unavailable keyring journal from being mistaken for
241
+ an absent one. If the OS credential store was completely reset, Clodex
242
+ permits direct reauthorization only after sentinel checks prove the main and
243
+ chunk namespaces are empty. Hidden, locked, or partially restored state
244
+ remains fail-closed. Credential mutation locks live beside that state at
245
+ `~/.clodex/credential-locks`. Both paths are independent of `CLODEX_HOME` and
246
+ runtime or temporary-directory environment overrides. This keeps concurrent
247
+ processes serialized when they use different config homes. Set
248
+ `CLODEX_CREDENTIAL_HELPER` to an absolute executable path to use an external
249
+ secure store instead; see [credential helpers](docs/credential-helpers.md).
228
250
  - Proxied routes forward configured provider headers for API-key and OAuth authentication. Anonymous routes preserve non-credential headers while removing authorization, API-key, cookie, token, secret, and credential-bearing header names before dispatch.
229
251
  - `CLODEX_CLAUDE_PATH` overrides Claude Code binary discovery.
230
252
  - **Outbound proxy:** when `HTTP_PROXY`/`HTTPS_PROXY` (and optionally `NO_PROXY`) are set in clodex's environment, all clodex-originated network calls honor them — OAuth sign-in and token refresh, model-list and models.dev refreshes, upstream OpenAI API calls, and the ChatGPT/Codex OAuth WebSocket transport (tunneled via HTTP CONNECT).