@ralphkrauss/codex-account-switcher 0.1.7 → 0.2.0

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/remote.js CHANGED
@@ -1,13 +1,15 @@
1
1
  import { spawn } from 'node:child_process';
2
- import { randomBytes } from 'node:crypto';
2
+ import { createHash, randomBytes, randomUUID } from 'node:crypto';
3
3
  import { constants as fsConstants } from 'node:fs';
4
4
  import { access, chmod, mkdir, readFile, rename, rm, writeFile, } from 'node:fs/promises';
5
5
  import { dirname, join } from 'node:path';
6
- import { CxError, accountPathForName, getCodexPaths, listAccountNames, resolveExecutable, useAccount, validateAccountName, writebackCurrentAccount, } from './accounts.js';
6
+ import { CxError, accountPathForName, getCodexPaths, listAccountNames, readCurrentMarker, resolveExecutable, useAccount, validateAccountName, writebackCurrentAccount, } from './accounts.js';
7
7
  export const REMOTE_CONFIG_VERSION = 1;
8
8
  export const DEFAULT_ONEPASSWORD_ITEM_PREFIX = 'cx-';
9
9
  export const ONEPASSWORD_BACKEND = '1password';
10
10
  export const ONEPASSWORD_AUTH_FIELD = 'auth_json';
11
+ export const REMOTE_METADATA_FIELD = 'cx_metadata';
12
+ export const LOCAL_SYNC_METADATA_VERSION = 1;
11
13
  function isRecord(value) {
12
14
  return typeof value === 'object' && value !== null && !Array.isArray(value);
13
15
  }
@@ -70,6 +72,86 @@ async function writeFilePrivate(destination, contents) {
70
72
  throw error;
71
73
  }
72
74
  }
75
+ function sha256Hex(value) {
76
+ return createHash('sha256').update(value).digest('hex');
77
+ }
78
+ function metadataAssignment(metadata) {
79
+ return `${REMOTE_METADATA_FIELD}=${JSON.stringify(metadata)}`;
80
+ }
81
+ function buildRemoteAuthMetadata(account, authJson) {
82
+ return {
83
+ version: 1,
84
+ account,
85
+ authJsonSha256: sha256Hex(authJson),
86
+ updatedAt: new Date().toISOString(),
87
+ deviceId: getLocalDeviceId(),
88
+ };
89
+ }
90
+ function getLocalDeviceId() {
91
+ const key = 'CX_DEVICE_ID';
92
+ const existing = process.env[key];
93
+ if (existing && existing.trim().length > 0) {
94
+ return existing.trim();
95
+ }
96
+ return randomUUID();
97
+ }
98
+ function getLocalSyncMetadataPath(paths, account) {
99
+ return join(paths.accountsDir, '.sync', `${validateAccountName(account)}.json`);
100
+ }
101
+ async function readLocalSyncMetadata(paths, account) {
102
+ let raw;
103
+ try {
104
+ raw = await readFile(getLocalSyncMetadataPath(paths, account), 'utf8');
105
+ }
106
+ catch (error) {
107
+ if (isNotFoundError(error)) {
108
+ return null;
109
+ }
110
+ throw error;
111
+ }
112
+ try {
113
+ const parsed = JSON.parse(raw);
114
+ if (!isRecord(parsed)
115
+ || parsed.version !== LOCAL_SYNC_METADATA_VERSION
116
+ || parsed.backend !== ONEPASSWORD_BACKEND
117
+ || parsed.account !== account
118
+ || typeof parsed.remoteAuthJsonSha256 !== 'string'
119
+ || typeof parsed.lastSyncedAuthJsonSha256 !== 'string'
120
+ || typeof parsed.lastSyncedAt !== 'string'
121
+ || typeof parsed.deviceId !== 'string') {
122
+ return null;
123
+ }
124
+ return {
125
+ version: LOCAL_SYNC_METADATA_VERSION,
126
+ backend: ONEPASSWORD_BACKEND,
127
+ account,
128
+ ...(typeof parsed.vault === 'string' ? { vault: parsed.vault } : {}),
129
+ ...(typeof parsed.item === 'string' ? { item: parsed.item } : {}),
130
+ remoteAuthJsonSha256: parsed.remoteAuthJsonSha256,
131
+ lastSyncedAuthJsonSha256: parsed.lastSyncedAuthJsonSha256,
132
+ lastSyncedAt: parsed.lastSyncedAt,
133
+ deviceId: parsed.deviceId,
134
+ };
135
+ }
136
+ catch {
137
+ return null;
138
+ }
139
+ }
140
+ async function writeLocalSyncMetadata(paths, config, account, authJson, remoteMetadata) {
141
+ const hash = sha256Hex(authJson);
142
+ const metadata = {
143
+ version: LOCAL_SYNC_METADATA_VERSION,
144
+ backend: config.backend,
145
+ account,
146
+ vault: config.vault,
147
+ item: itemTitle(config, account),
148
+ remoteAuthJsonSha256: remoteMetadata?.authJsonSha256 ?? hash,
149
+ lastSyncedAuthJsonSha256: hash,
150
+ lastSyncedAt: new Date().toISOString(),
151
+ deviceId: getLocalDeviceId(),
152
+ };
153
+ await writeFilePrivate(getLocalSyncMetadataPath(paths, account), `${JSON.stringify(metadata, null, 2)}\n`);
154
+ }
73
155
  function remotePaths(options = {}) {
74
156
  return options.paths ?? getCodexPaths(options.env ?? process.env);
75
157
  }
@@ -341,7 +423,8 @@ async function onePasswordItemExists(config, item, env) {
341
423
  function authFieldAssignment(authJson) {
342
424
  return `${ONEPASSWORD_AUTH_FIELD}[concealed]=${authJson}`;
343
425
  }
344
- async function upsertOnePasswordAuthJson(config, item, authJson, env) {
426
+ async function upsertOnePasswordAuthJson(config, item, account, authJson, env) {
427
+ const metadata = buildRemoteAuthMetadata(account, authJson);
345
428
  if (await onePasswordItemExists(config, item, env)) {
346
429
  await runOp([
347
430
  'item',
@@ -350,8 +433,9 @@ async function upsertOnePasswordAuthJson(config, item, authJson, env) {
350
433
  '--vault',
351
434
  config.vault,
352
435
  authFieldAssignment(authJson),
436
+ metadataAssignment(metadata),
353
437
  ], env, `updating 1Password item '${item}'`, { sensitive: true });
354
- return 'updated';
438
+ return { operation: 'updated', metadata };
355
439
  }
356
440
  await runOp([
357
441
  'item',
@@ -363,8 +447,9 @@ async function upsertOnePasswordAuthJson(config, item, authJson, env) {
363
447
  '--title',
364
448
  item,
365
449
  authFieldAssignment(authJson),
450
+ metadataAssignment(metadata),
366
451
  ], env, `creating 1Password item '${item}'`, { sensitive: true });
367
- return 'created';
452
+ return { operation: 'created', metadata };
368
453
  }
369
454
  function stripOneTrailingLineEnding(value) {
370
455
  if (value.endsWith('\r\n')) {
@@ -394,7 +479,35 @@ function decodeAuthJsonField(stdout, item) {
394
479
  return stdout;
395
480
  }
396
481
  }
482
+ function parseRemoteAuthMetadata(value) {
483
+ if (typeof value !== 'string' || value.trim().length === 0) {
484
+ return null;
485
+ }
486
+ try {
487
+ const parsed = JSON.parse(value);
488
+ if (!isRecord(parsed)
489
+ || parsed.version !== 1
490
+ || typeof parsed.account !== 'string'
491
+ || typeof parsed.authJsonSha256 !== 'string'
492
+ || typeof parsed.updatedAt !== 'string') {
493
+ return null;
494
+ }
495
+ return {
496
+ version: 1,
497
+ account: parsed.account,
498
+ authJsonSha256: parsed.authJsonSha256,
499
+ updatedAt: parsed.updatedAt,
500
+ ...(typeof parsed.deviceId === 'string' ? { deviceId: parsed.deviceId } : {}),
501
+ };
502
+ }
503
+ catch {
504
+ return null;
505
+ }
506
+ }
397
507
  function decodeAuthJsonFieldFromItemJson(stdout, item) {
508
+ return decodeOnePasswordAccountFromItemJson(stdout, item).authJson;
509
+ }
510
+ function decodeOnePasswordAccountFromItemJson(stdout, item) {
398
511
  let parsed;
399
512
  try {
400
513
  parsed = JSON.parse(stdout);
@@ -413,9 +526,16 @@ function decodeAuthJsonFieldFromItemJson(stdout, item) {
413
526
  throw new CxError(`1Password item '${item}' field '${ONEPASSWORD_AUTH_FIELD}' did not contain a string value`, 1);
414
527
  }
415
528
  parseAuthJsonString(field.value, `auth_json field in 1Password item '${item}'`);
416
- return field.value;
529
+ const metadataField = parsed.fields.find((candidate) => (isRecord(candidate) && candidate.label === REMOTE_METADATA_FIELD));
530
+ return {
531
+ authJson: field.value,
532
+ metadata: parseRemoteAuthMetadata(metadataField?.value),
533
+ };
417
534
  }
418
535
  async function readOnePasswordAuthJson(config, item, env) {
536
+ return (await readOnePasswordAccount(config, item, env)).authJson;
537
+ }
538
+ async function readOnePasswordAccount(config, item, env) {
419
539
  const jsonResult = await runOpRaw([
420
540
  'item',
421
541
  'get',
@@ -427,7 +547,7 @@ async function readOnePasswordAuthJson(config, item, env) {
427
547
  ], env);
428
548
  if (jsonResult.exitCode === 0) {
429
549
  try {
430
- return decodeAuthJsonFieldFromItemJson(jsonResult.stdout, item);
550
+ return decodeOnePasswordAccountFromItemJson(jsonResult.stdout, item);
431
551
  }
432
552
  catch (error) {
433
553
  if (!errorMessage(error).includes(`'${ONEPASSWORD_AUTH_FIELD}'`)) {
@@ -453,7 +573,7 @@ async function readOnePasswordAuthJson(config, item, env) {
453
573
  '--reveal',
454
574
  ], env);
455
575
  if (fieldResult.exitCode === 0) {
456
- return decodeAuthJsonField(fieldResult.stdout, item);
576
+ return { authJson: decodeAuthJsonField(fieldResult.stdout, item), metadata: null };
457
577
  }
458
578
  if (looksLikeMissingField(fieldResult)) {
459
579
  throw new CxError(`1Password item '${item}' does not contain a revealable '${ONEPASSWORD_AUTH_FIELD}' field`, 1);
@@ -479,6 +599,13 @@ async function readLocalAccountAuthJson(account, paths) {
479
599
  parseAuthJsonString(authJson, `Codex account '${safeAccount}' at ${accountFile}`);
480
600
  return { account: safeAccount, accountFile, authJson };
481
601
  }
602
+ async function writebackCurrentAccountIfSyncTarget(targetAccount, paths) {
603
+ const current = await readCurrentMarker(paths);
604
+ if (current.state === 'valid' && current.name !== targetAccount) {
605
+ return;
606
+ }
607
+ await writebackCurrentAccount({ paths });
608
+ }
482
609
  async function writeLocalAccountAuthJson(account, authJson, paths, force) {
483
610
  const safeAccount = validateAccountName(account);
484
611
  const accountFile = accountPathForName(paths, safeAccount);
@@ -495,20 +622,18 @@ export async function syncPushAccount(account, options = {}) {
495
622
  const paths = remotePaths(options);
496
623
  const config = await requireRemoteConfig({ paths });
497
624
  const safeAccount = validateRemoteSyncAccountName(account);
498
- const writeback = await writebackCurrentAccount({ paths });
499
- if (writeback.performed === true && writeback.account !== safeAccount) {
500
- throw new CxError(`unexpected writeback account '${writeback.account}' while syncing '${safeAccount}'`, 1);
501
- }
625
+ await writebackCurrentAccountIfSyncTarget(safeAccount, paths);
502
626
  const local = await readLocalAccountAuthJson(safeAccount, paths);
503
627
  const item = itemTitle(config, local.account);
504
- const operation = await upsertOnePasswordAuthJson(config, item, local.authJson, env);
628
+ const upload = await upsertOnePasswordAuthJson(config, item, local.account, local.authJson, env);
629
+ await writeLocalSyncMetadata(paths, config, local.account, local.authJson, upload.metadata);
505
630
  return {
506
631
  account: local.account,
507
632
  accountFile: local.accountFile,
508
633
  backend: config.backend,
509
634
  vault: config.vault,
510
635
  item,
511
- operation,
636
+ operation: upload.operation,
512
637
  };
513
638
  }
514
639
  export async function syncPullAccount(account, options = {}) {
@@ -517,8 +642,14 @@ export async function syncPullAccount(account, options = {}) {
517
642
  const config = await requireRemoteConfig({ paths });
518
643
  const safeAccount = validateRemoteSyncAccountName(account);
519
644
  const item = itemTitle(config, safeAccount);
520
- const authJson = await readOnePasswordAuthJson(config, item, env);
521
- const local = await writeLocalAccountAuthJson(safeAccount, authJson, paths, options.force === true);
645
+ const remote = await readOnePasswordAccount(config, item, env);
646
+ const verifiedMetadata = remote.metadata
647
+ && remote.metadata.account === safeAccount
648
+ && remote.metadata.authJsonSha256 === sha256Hex(remote.authJson)
649
+ ? remote.metadata
650
+ : null;
651
+ const local = await writeLocalAccountAuthJson(safeAccount, remote.authJson, paths, options.force === true);
652
+ await writeLocalSyncMetadata(paths, config, safeAccount, remote.authJson, verifiedMetadata);
522
653
  return {
523
654
  account: local.account,
524
655
  accountFile: local.accountFile,
@@ -556,6 +687,167 @@ export async function syncPushAllAccounts(options = {}) {
556
687
  }
557
688
  return results;
558
689
  }
690
+ function autoSyncDisabled(env) {
691
+ return env.CX_AUTO_SYNC === '0' || env.CX_MAGIC_SYNC === '0' || env.CX_NO_MAGIC_SYNC === '1';
692
+ }
693
+ async function readLocalAuthHash(account, paths) {
694
+ try {
695
+ const raw = await readFile(accountPathForName(paths, account), 'utf8');
696
+ parseAuthJsonString(raw, `Codex account '${account}'`);
697
+ return sha256Hex(raw);
698
+ }
699
+ catch (error) {
700
+ if (isNotFoundError(error)) {
701
+ return null;
702
+ }
703
+ throw error;
704
+ }
705
+ }
706
+ async function readRemoteAccountMetadata(account, config, env) {
707
+ const item = itemTitle(config, account);
708
+ const remote = await readOnePasswordAccount(config, item, env);
709
+ const actualHash = sha256Hex(remote.authJson);
710
+ const metadata = remote.metadata
711
+ && remote.metadata.account === account
712
+ && remote.metadata.authJsonSha256 === actualHash
713
+ ? remote.metadata
714
+ : null;
715
+ return { metadata, authJson: remote.authJson };
716
+ }
717
+ function classifyHashes(localHash, localMetadata, remoteMetadata) {
718
+ if (!remoteMetadata || !localHash || !localMetadata) {
719
+ return 'unknown';
720
+ }
721
+ if (localHash === remoteMetadata.authJsonSha256) {
722
+ return 'in-sync';
723
+ }
724
+ const localChangedSinceSync = localHash !== localMetadata.lastSyncedAuthJsonSha256;
725
+ const remoteChangedSinceSync = remoteMetadata.authJsonSha256 !== localMetadata.remoteAuthJsonSha256
726
+ || remoteMetadata.authJsonSha256 !== localMetadata.lastSyncedAuthJsonSha256;
727
+ if (!localChangedSinceSync && remoteChangedSinceSync) {
728
+ return 'remote-newer';
729
+ }
730
+ if (localChangedSinceSync && !remoteChangedSinceSync) {
731
+ return 'local-newer';
732
+ }
733
+ if (localChangedSinceSync && remoteChangedSinceSync) {
734
+ return 'diverged';
735
+ }
736
+ return 'unknown';
737
+ }
738
+ async function inspectAccountSyncState(account, config, env, paths) {
739
+ if (!config) {
740
+ return { state: 'unknown', error: 'remote backend is not configured' };
741
+ }
742
+ try {
743
+ const [localHash, localMetadata, remote] = await Promise.all([
744
+ readLocalAuthHash(account, paths),
745
+ readLocalSyncMetadata(paths, account),
746
+ readRemoteAccountMetadata(account, config, env),
747
+ ]);
748
+ return { state: classifyHashes(localHash, localMetadata, remote.metadata), error: null };
749
+ }
750
+ catch (error) {
751
+ return { state: 'unknown', error: errorMessage(error) };
752
+ }
753
+ }
754
+ export async function autoPullAccountForUse(account, options = {}) {
755
+ const env = options.env ?? process.env;
756
+ const paths = remotePaths(options);
757
+ const safeAccount = validateAccountName(account);
758
+ if (safeAccount === 'default') {
759
+ return { action: 'skipped', account: safeAccount, reason: 'reserved default account' };
760
+ }
761
+ if (autoSyncDisabled(env)) {
762
+ return { action: 'skipped', account: safeAccount, reason: 'auto sync disabled' };
763
+ }
764
+ const config = await readRemoteConfig({ paths });
765
+ if (!config) {
766
+ return { action: 'skipped', account: safeAccount, reason: 'remote backend is not configured' };
767
+ }
768
+ const item = itemTitle(config, safeAccount);
769
+ const accountFile = accountPathForName(paths, safeAccount);
770
+ const localExists = await pathExists(accountFile);
771
+ if (!localExists) {
772
+ const pulled = await syncPullAccount(safeAccount, { env, paths });
773
+ return { action: 'pulled', account: pulled.account, item: pulled.item, backend: pulled.backend, reason: 'local account missing' };
774
+ }
775
+ const localHash = await readLocalAuthHash(safeAccount, paths);
776
+ const localMetadata = await readLocalSyncMetadata(paths, safeAccount);
777
+ const remote = await readRemoteAccountMetadata(safeAccount, config, env).catch((error) => ({
778
+ metadata: null,
779
+ error: errorMessage(error),
780
+ }));
781
+ if ('error' in remote) {
782
+ return { action: 'skipped', account: safeAccount, item, backend: config.backend, reason: `remote unavailable: ${remote.error}` };
783
+ }
784
+ const state = classifyHashes(localHash, localMetadata, remote.metadata);
785
+ if (state === 'remote-newer') {
786
+ const pulled = await syncPullAccount(safeAccount, { env, paths, force: true });
787
+ return { action: 'pulled', account: pulled.account, item: pulled.item, backend: pulled.backend, reason: 'remote newer' };
788
+ }
789
+ if (state === 'diverged') {
790
+ throw new CxError(`sync conflict for '${safeAccount}': local and remote credentials diverged; use 'cx sync status ${safeAccount}', then resolve with explicit 'cx sync pull ${safeAccount} --force' or 'cx sync push ${safeAccount}'`, 1);
791
+ }
792
+ return { action: 'skipped', account: safeAccount, item, backend: config.backend, reason: state };
793
+ }
794
+ export async function autoPushAccountIfChanged(account, options = {}) {
795
+ const env = options.env ?? process.env;
796
+ const paths = remotePaths(options);
797
+ const safeAccount = validateAccountName(account);
798
+ if (safeAccount === 'default') {
799
+ return { action: 'skipped', account: safeAccount, reason: 'reserved default account' };
800
+ }
801
+ if (autoSyncDisabled(env)) {
802
+ return { action: 'skipped', account: safeAccount, reason: 'auto sync disabled' };
803
+ }
804
+ const config = await readRemoteConfig({ paths });
805
+ if (!config) {
806
+ return { action: 'skipped', account: safeAccount, reason: 'remote backend is not configured' };
807
+ }
808
+ const localHash = await readLocalAuthHash(safeAccount, paths);
809
+ if (!localHash) {
810
+ return { action: 'skipped', account: safeAccount, reason: 'local account missing' };
811
+ }
812
+ const localMetadata = await readLocalSyncMetadata(paths, safeAccount);
813
+ const remote = await readRemoteAccountMetadata(safeAccount, config, env).then((value) => ({ ...value, missing: false, unavailable: null }), (error) => {
814
+ const message = errorMessage(error);
815
+ if (message.includes('was not found')) {
816
+ return { metadata: null, missing: true, unavailable: null };
817
+ }
818
+ return { metadata: null, missing: false, unavailable: message };
819
+ });
820
+ if (remote.unavailable) {
821
+ return { action: 'skipped', account: safeAccount, item: itemTitle(config, safeAccount), backend: config.backend, reason: `remote unavailable: ${remote.unavailable}` };
822
+ }
823
+ if (remote.missing) {
824
+ if (localMetadata) {
825
+ return { action: 'skipped', account: safeAccount, item: itemTitle(config, safeAccount), backend: config.backend, reason: 'remote missing after previous sync' };
826
+ }
827
+ const pushed = await syncPushAccount(safeAccount, { env, paths });
828
+ return { action: 'pushed', account: pushed.account, item: pushed.item, backend: pushed.backend, reason: 'remote missing' };
829
+ }
830
+ const state = classifyHashes(localHash, localMetadata, remote.metadata);
831
+ if (state === 'in-sync') {
832
+ return { action: 'skipped', account: safeAccount, item: itemTitle(config, safeAccount), backend: config.backend, reason: 'in-sync' };
833
+ }
834
+ if (state === 'diverged') {
835
+ throw new CxError(`sync conflict for '${safeAccount}': local and remote credentials diverged; use 'cx sync status ${safeAccount}', then resolve with explicit 'cx sync pull ${safeAccount} --force' or 'cx sync push ${safeAccount}'`, 1);
836
+ }
837
+ if (state !== 'local-newer') {
838
+ return { action: 'skipped', account: safeAccount, item: itemTitle(config, safeAccount), backend: config.backend, reason: state };
839
+ }
840
+ const pushed = await syncPushAccount(safeAccount, { env, paths });
841
+ return { action: 'pushed', account: pushed.account, item: pushed.item, backend: pushed.backend, reason: state };
842
+ }
843
+ export async function writebackAndAutoPushCurrentAccount(options = {}) {
844
+ const paths = remotePaths(options);
845
+ const writeback = await writebackCurrentAccount({ paths });
846
+ if (!writeback.performed || !writeback.account) {
847
+ return null;
848
+ }
849
+ return await autoPushAccountIfChanged(writeback.account, options);
850
+ }
559
851
  export async function setupOnePasswordProfiles(input, options = {}) {
560
852
  const env = options.env ?? process.env;
561
853
  const paths = remotePaths(options);
@@ -620,6 +912,7 @@ export async function inspectSyncStatus(account, options = {}) {
620
912
  remoteError = errorMessage(error);
621
913
  }
622
914
  }
915
+ const sync = await inspectAccountSyncState(accountName, config, env, paths);
623
916
  statuses.push({
624
917
  account: accountName,
625
918
  item: remoteItem,
@@ -631,6 +924,7 @@ export async function inspectSyncStatus(account, options = {}) {
631
924
  presence,
632
925
  error: remoteError,
633
926
  },
927
+ sync,
634
928
  });
635
929
  }
636
930
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ Tasks:
31
31
  - `cx ls`
32
32
  - `cx run <PROFILE_NAME> -- --version`
33
33
  6. If a requested profile exists in 1Password but is not local, rely on `cx use <PROFILE_NAME>` or `cx run <PROFILE_NAME> -- ...` to auto-pull it.
34
- 7. If a profile's Codex session has ended, run `cx login <PROFILE_NAME> --device-auth`, ask me to complete the browser/device flow, then run `cx sync push <PROFILE_NAME>`.
34
+ 7. If a profile's Codex session has ended, run `cx login <PROFILE_NAME> --force --device-auth`, ask me to complete the browser/device flow, then verify with `cx sync status <PROFILE_NAME>`. The refreshed profile auto-pushes when remote sync is configured.
35
35
 
36
36
  Use `<VAULT_NAME>` for the 1Password vault that contains the `cx-*` items and `<PROFILE_NAME>` for the profile I want active, for example `gi` or `personal`.
37
37
  ```
@@ -126,7 +126,7 @@ If 1Password does not have any `cx-*` items yet, bootstrap from a machine where
126
126
  If you need to log in a new account:
127
127
 
128
128
  ```bash
129
- cx login personal --device-auth
129
+ cx login personal --force --device-auth
130
130
  ```
131
131
 
132
132
  2. Configure the vault.
@@ -135,7 +135,7 @@ If 1Password does not have any `cx-*` items yet, bootstrap from a machine where
135
135
  cx 1password setup --vault <VAULT_NAME>
136
136
  ```
137
137
 
138
- 3. Push named profiles.
138
+ 3. Push named profiles if needed. With remote sync configured, `cx save <profile>` and `cx login <profile>` auto-push safely; explicit sync remains available for bootstrapping or repair.
139
139
 
140
140
  ```bash
141
141
  cx sync push gi
@@ -201,11 +201,11 @@ Run Codex under a profile:
201
201
  cx run gi -- exec "fix the failing tests"
202
202
  ```
203
203
 
204
- Login or refresh a profile, then push the refreshed token to 1Password:
204
+ Login or refresh a profile. With 1Password sync configured, `cx login` saves the refreshed credentials and auto-pushes them to the remote backend:
205
205
 
206
206
  ```bash
207
- cx login personal --device-auth
208
- cx sync push personal
207
+ cx login personal --force --device-auth
208
+ cx sync status personal
209
209
  ```
210
210
 
211
211
  Pull a new remote profile:
@@ -234,7 +234,9 @@ cx sync status
234
234
  - `cx use <profile>` chooses which named profile is active on that machine.
235
235
  - Do not copy `auth.json` through chat, git, shared folders, or plain text notes.
236
236
  - Do not run a fresh `cx login <profile>` on a secondary machine unless you intentionally want to rotate/replace that OAuth session. Pulling from 1Password is safer for shared profiles.
237
- - If Codex says a session has ended, run `cx login <profile> --device-auth` and then `cx sync push <profile>`.
237
+ - If Codex says a session has ended, run `cx login <profile> --force --device-auth`; with remote sync configured, `cx` auto-pushes the refreshed profile. Confirm with `cx sync status <profile>`.
238
+ - If local and remote both changed, `cx` reports a sync conflict and refuses to overwrite either side. Resolve deliberately with explicit `cx sync pull <profile> --force` or `cx sync push <profile>`.
239
+ - To temporarily disable magic sync for debugging, set `CX_AUTO_SYNC=0`; explicit `cx sync ...` commands still work.
238
240
 
239
241
  ## Troubleshooting
240
242
 
@@ -297,6 +299,31 @@ Use force deliberately:
297
299
  cx sync pull <PROFILE_NAME> --force
298
300
  ```
299
301
 
302
+ ### I ran raw `codex login` while another profile was active
303
+
304
+ If the live `~/.codex/auth.json` is now the refreshed profile but `cx ls` still marks a different profile active, first save the live auth into the intended profile slot:
305
+
306
+ ```bash
307
+ cx save <PROFILE_NAME> --force
308
+ cx sync status <PROFILE_NAME>
309
+ ```
310
+
311
+ `cx save` auto-pushes when remote sync is configured. If you disabled auto-sync, run `cx sync push <PROFILE_NAME>` manually.
312
+
313
+ Example:
314
+
315
+ ```bash
316
+ cx save personal --force
317
+ cx sync status personal
318
+ ```
319
+
320
+ Then restore/switch any other profile from 1Password if needed:
321
+
322
+ ```bash
323
+ cx sync pull gi --force
324
+ cx use gi
325
+ ```
326
+
300
327
  ### Need to migrate from the old shell script
301
328
 
302
329
  Keep credential data, remove only the sourced script/hook: