codex-overleaf-link 2.3.5 → 2.4.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/README.md +63 -31
- package/README.zh-CN.md +543 -0
- package/extension/bootstrap/manifest.template.json +1 -1
- package/extension/src/background.js +7 -0
- package/extension/src/backgroundUpdateCoordinator.js +88 -4
- package/extension/src/content/activeTurnControl.js +1 -0
- package/extension/src/content/assetTransferBroker.js +2 -0
- package/extension/src/content/contentRuntime.js +77 -57
- package/extension/src/content/contextTray.js +4 -0
- package/extension/src/content/diagnosticsController.js +17 -3
- package/extension/src/content/diagnosticsPanel.js +129 -5
- package/extension/src/content/generated/content.bundle.js +1422 -348
- package/extension/src/content/generated/content.bundle.meta.json +7 -3
- package/extension/src/content/legacyGlobalRegistry.js +3 -0
- package/extension/src/content/modelPicker.js +21 -9
- package/extension/src/content/modelPickerSupport.js +38 -1
- package/extension/src/content/nativeCompatibilityController.js +4 -1
- package/extension/src/content/otWarmMirror.js +126 -92
- package/extension/src/content/otWarmMirrorController.js +122 -1
- package/extension/src/content/pageBridgeClient.js +2 -0
- package/extension/src/content/panelMaintenance.js +26 -15
- package/extension/src/content/providerSettingsCoordinator.js +1 -0
- package/extension/src/content/runFailureNotice.js +104 -0
- package/extension/src/content/runResultActions.js +16 -1
- package/extension/src/content/runScrollLayout.js +124 -0
- package/extension/src/content/runTimelineView.js +37 -11
- package/extension/src/content/sessionForkController.js +20 -11
- package/extension/src/content/settingsPanel.js +28 -11
- package/extension/src/content/trackedChangeCaptureController.js +153 -0
- package/extension/src/content/updateNotice.js +24 -4
- package/extension/src/content/writebackOrchestrator.js +31 -0
- package/extension/src/page/binaryAssetUploader.js +101 -29
- package/extension/src/page/overleafRealtimeObserver.js +120 -25
- package/extension/src/page/textFileCreator.js +493 -0
- package/extension/src/page/trackedChangeCapture.js +342 -0
- package/extension/src/page/trackedChangesLifecycle.js +145 -149
- package/extension/src/page/treeOperations.js +30 -2
- package/extension/src/page/writebackRouter.js +94 -48
- package/extension/src/pageBridge.js +62 -25
- package/extension/src/shared/compatibility.js +1 -1
- package/extension/src/shared/i18n.js +77 -37
- package/extension/src/shared/managedUpdateProjection.js +1 -1
- package/extension/src/shared/otText.js +0 -1
- package/extension/src/shared/pageRpcContract.js +2 -1
- package/extension/src/shared/sessionState.js +23 -23
- package/extension/src/shared/sessionTitle.js +120 -0
- package/extension/src/shared/storageDb.js +10 -12
- package/extension/src/shared/storageRunActions.js +29 -1
- package/extension/src/shared/updateRuntimeIdentity.js +32 -0
- package/extension/src/shared/writebackSettlement.js +19 -5
- package/extension/styles/panel.css +128 -24
- package/native-host/src/mirrorWorkspace.js +20 -1
- package/native-host/src/releaseProxy.js +177 -0
- package/native-host/src/releaseTransport.js +154 -0
- package/native-host/src/taskRunnerRuntime.js +25 -0
- package/native-host/src/updateManager.js +40 -39
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<img src="extension/assets/icons/codex-overleaf-icon.png" width="96" alt="Codex Overleaf Link">
|
|
3
3
|
<h1>Codex Overleaf Link</h1>
|
|
4
|
+
<p><strong>English</strong> | <a href="README.zh-CN.md" lang="zh-CN">简体中文</a></p>
|
|
4
5
|
<p><strong>Empower Overleaf with Codex.</strong></p>
|
|
5
6
|
<p>
|
|
6
|
-
<img src="https://img.shields.io/badge/version-2.
|
|
7
|
+
<img src="https://img.shields.io/badge/version-2.4.0-blue" alt="version">
|
|
7
8
|
<img src="https://img.shields.io/badge/platform-macOS%20%2F%20Windows%20%2F%20Linux-lightgrey" alt="platform">
|
|
8
9
|
<img src="https://img.shields.io/badge/chrome-MV3-green" alt="chrome manifest v3">
|
|
9
10
|
<img src="https://img.shields.io/badge/node-%3E%3D20-brightgreen" alt="node version">
|
|
@@ -38,12 +39,14 @@ Codex Overleaf Link adds a Codex panel directly inside Overleaf and mirrors the
|
|
|
38
39
|
- **Project rules and preflight** — read-only / writable path rules gate browser writes; sensitive-content detection checks task context before sending it to Codex. File focus prioritizes context; use project rules to enforce writable paths.
|
|
39
40
|
- **Models and skills** — discover local Codex models, choose supported reasoning and speed settings, and install or select Codex Overleaf skills from the slash menu. Skill loading and individual skill enablement are configurable.
|
|
40
41
|
- **Local records and diagnostics** — preserve run outcomes and recovery evidence, inspect diagnostics, and export redacted issue-report bundles. Plugin Codex sessions use an isolated home.
|
|
42
|
+
- **OT warm mirror** (Operational Transformation) keeps focused mirror files warm through optional, read-only observation of active Overleaf text edits. It is off by default and falls back to the normal snapshot path when unavailable, stale, or inconsistent. Overleaf writeback still uses the page bridge.
|
|
43
|
+
|
|
44
|
+
OT freshness expires after 30 seconds, and focused warm starts still verify current file content through the page bridge. OT observation never establishes whole-project freshness or replaces the Overleaf writeback path.
|
|
41
45
|
|
|
42
46
|
### Experimental features
|
|
43
47
|
|
|
44
48
|
- **Third-party model providers** — configure Responses API, OpenAI-compatible Chat Completions, or Anthropic Messages endpoints in Settings. The local Codex CLI remains the agent runtime, with local protocol bridges adapting the selected endpoint. Compatibility varies by model and gateway; the built-in Codex provider remains the default.
|
|
45
49
|
- **Parallel subagents** — enable the `parallel-subagents` skill for decomposable tasks. The native host runs workers with assigned files; the skill can split a single file into section jobs. Worker progress appears in the timeline, and detected ownership violations are withheld from Overleaf writeback.
|
|
46
|
-
- **OT warm mirror** — optional, read-only observation of active Overleaf text edits keeps focused mirror files warm. It is off by default and falls back to the normal snapshot path when unavailable, stale, or inconsistent. Overleaf writeback still uses the page bridge.
|
|
47
50
|
|
|
48
51
|
## Requirements
|
|
49
52
|
|
|
@@ -59,36 +62,50 @@ Codex Overleaf Link adds a Codex panel directly inside Overleaf and mirrors the
|
|
|
59
62
|
|
|
60
63
|
## Install
|
|
61
64
|
|
|
62
|
-
Codex Overleaf Link has two parts: a **native host** (a local Node bridge) and the **Chrome extension**.
|
|
65
|
+
Codex Overleaf Link has two parts: a **native host** (a local Node bridge) and the **Chrome extension**. Installation with Codex is recommended; the installer script and npm commands remain available below.
|
|
66
|
+
|
|
67
|
+
Chrome may require a manual **Load unpacked** or **Reload** action. Codex should explain any remaining browser step and respect browser and operating-system permission boundaries.
|
|
63
68
|
|
|
64
|
-
|
|
69
|
+
### Option A: Let Codex install it (recommended)
|
|
65
70
|
|
|
66
|
-
|
|
71
|
+
Give the following prompt to Codex with terminal access on the computer where Chrome runs:
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
Install Codex Overleaf Link from https://github.com/Ghqqqq/codex-overleaf-link on this computer.
|
|
75
|
+
|
|
76
|
+
Read the official README and installation scripts first. Detect the operating system and check Node.js >= 20, Codex CLI, and any other prerequisites required by the selected installation method.
|
|
77
|
+
Use the latest published stable GitHub release, excluding drafts and prereleases, unless a specific version was requested. Use the documented managed installation method and install matching Extension and Native Host versions; do not substitute an unreleased main checkout.
|
|
78
|
+
Reuse the existing Chrome profile and managed installation when available. Preserve project files, session history, settings, and provider credentials. Do not print secrets or remove an existing installation without approval.
|
|
79
|
+
Complete the terminal-side setup and checks. If Chrome requires a manual Load unpacked or Reload action, provide the exact managed extension folder and the remaining steps; do not bypass browser restrictions.
|
|
80
|
+
Report the chosen release, installed Extension and Native Host versions, the browser-loaded version when observable, and the native connection check. Matching on-disk versions alone do not prove Chrome has loaded the update. Clearly identify anything still requiring manual action.
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Option B: installer script
|
|
67
84
|
|
|
68
85
|
One command installs the managed native host **and** managed extension runtime. On macOS/Linux it also creates the visible `~/Codex Overleaf Link Extension` shortcut when that path is available. The script attempts to copy the extension path on macOS and Windows; on macOS it also attempts to open Chrome's extensions page. Every platform prints the folder to load. Future signed stable updates target this same managed directory.
|
|
69
86
|
|
|
70
87
|
macOS / Linux:
|
|
71
88
|
|
|
72
89
|
```bash
|
|
73
|
-
CODEX_OVERLEAF_REF=v2.
|
|
90
|
+
CODEX_OVERLEAF_REF=v2.4.0 bash -c "$(curl -fsSL https://raw.githubusercontent.com/Ghqqqq/codex-overleaf-link/v2.4.0/install.sh)"
|
|
74
91
|
```
|
|
75
92
|
|
|
76
93
|
Windows PowerShell:
|
|
77
94
|
|
|
78
95
|
```powershell
|
|
79
|
-
iwr https://raw.githubusercontent.com/Ghqqqq/codex-overleaf-link/v2.
|
|
80
|
-
$env:CODEX_OVERLEAF_REF='v2.
|
|
96
|
+
iwr https://raw.githubusercontent.com/Ghqqqq/codex-overleaf-link/v2.4.0/install.ps1 -OutFile install.ps1
|
|
97
|
+
$env:CODEX_OVERLEAF_REF='v2.4.0'
|
|
81
98
|
powershell -ExecutionPolicy Bypass -File install.ps1
|
|
82
99
|
```
|
|
83
100
|
|
|
84
101
|
Then open `chrome://extensions`, enable **Developer mode**, click **Load unpacked**, and choose the extension folder printed by the installer. If the installer reports that it copied the path, you can paste it into the folder picker.
|
|
85
102
|
|
|
86
|
-
### Option
|
|
103
|
+
### Option C: npm managed install
|
|
87
104
|
|
|
88
105
|
`npm exec` installs the same managed native host and extension runtime without keeping a source checkout. Use it if you prefer a pinned npm package.
|
|
89
106
|
|
|
90
107
|
```bash
|
|
91
|
-
npm exec --yes codex-overleaf-link@2.
|
|
108
|
+
npm exec --yes codex-overleaf-link@2.4.0 -- install-managed
|
|
92
109
|
```
|
|
93
110
|
|
|
94
111
|
Then, in `chrome://extensions`, enable **Developer mode**, click **Load unpacked**, and select the managed extension path printed by the command. The Release extension zip remains available for explicitly unmanaged/manual installations.
|
|
@@ -130,7 +147,10 @@ There are two task modes, Ask and Auto. Track is a separate setting for Auto wri
|
|
|
130
147
|
|
|
131
148
|
Auto text writes do not wait for a per-hunk approval step. Deletes and binary create/overwrite operations require separate confirmation. Track applies to supported text edits; it does not make every file-tree or binary operation reversible.
|
|
132
149
|
|
|
133
|
-
**Accept**
|
|
150
|
+
**Accept** is intended to finalize a run's tracked text edits and leaves Overleaf in Editing mode. If the operation unexpectedly creates new tracked changes, the extension attempts to roll it back and reports what could be verified.
|
|
151
|
+
|
|
152
|
+
> [!WARNING]
|
|
153
|
+
> Do not use the run card's **Accept** action when the affected files contain unrelated pending tracked changes from other runs or collaborators. Review and accept those changes individually in Overleaf's native Review panel. An Accepted badge or successful compilation alone does not prove that unrelated pending changes were preserved.
|
|
134
154
|
|
|
135
155
|
**Undo** uses the run's saved recovery information. Concurrent changes or incomplete verification can prevent a full restoration. Cancel stops further work but does not automatically undo writes that already reached Overleaf; inspect the run card for the written parts and available recovery actions.
|
|
136
156
|
|
|
@@ -185,6 +205,10 @@ Generated binary writeback is a separate operation: supported assets up to **10
|
|
|
185
205
|
|
|
186
206
|
## Update
|
|
187
207
|
|
|
208
|
+
Update downloads retry transient network failures within a bounded time budget, including stalled response bodies. The updater respects HTTP/HTTPS environment proxies and supported macOS/Windows system proxy settings. TLS certificate and release-signature failures remain blocking errors. SOCKS/PAC-only configurations require an HTTP proxy endpoint.
|
|
209
|
+
|
|
210
|
+
After a manual reinstall, installed files and running components are shown separately. Use the reload action once Overleaf is saved and idle; pending Overleaf tabs can then refresh. A disk replacement alone is not reported as a successfully health-confirmed update.
|
|
211
|
+
|
|
188
212
|
Managed installations **check** for signed stable updates automatically. When an update is available, choose **Update now** in the update notice or **Settings → Software updates** to authorize that version. The updater then downloads and verifies the coordinated extension/native bundle, waits until connected Overleaf tabs are saved and idle and the native host has no active work, and applies both components together. A failed health check restores the previous version. The update notice also offers postponement and progress details.
|
|
189
213
|
|
|
190
214
|
Stable updates use signed release metadata and artifact hashes; draft and prerelease versions are not selected. Releases that require a different Bootstrap protocol need a managed reinstall. The updater does not silently add Chrome permissions.
|
|
@@ -201,9 +225,9 @@ npm installs, updates, and uninstalls the coordinated managed extension/native p
|
|
|
201
225
|
|
|
202
226
|
| Action | Command |
|
|
203
227
|
|--------|---------|
|
|
204
|
-
| Install / recover / migrate | `npm exec --yes codex-overleaf-link@2.
|
|
205
|
-
| Diagnose | `npm exec --yes codex-overleaf-link@2.
|
|
206
|
-
| Uninstall | `npm exec --yes codex-overleaf-link@2.
|
|
228
|
+
| Install / recover / migrate | `npm exec --yes codex-overleaf-link@2.4.0 -- install-managed` |
|
|
229
|
+
| Diagnose | `npm exec --yes codex-overleaf-link@2.4.0 -- doctor` |
|
|
230
|
+
| Uninstall | `npm exec --yes codex-overleaf-link@2.4.0 -- uninstall-managed` |
|
|
207
231
|
|
|
208
232
|
Use `--extension-id <chrome-extension-id>` only for a custom/dev unpacked extension id that differs from the official bundled id.
|
|
209
233
|
|
|
@@ -214,7 +238,7 @@ Use `--extension-id <chrome-extension-id>` only for a custom/dev unpacked extens
|
|
|
214
238
|
Remove the managed extension/native installation (append `--browser chromium` on Linux Chromium):
|
|
215
239
|
|
|
216
240
|
```bash
|
|
217
|
-
npm exec --yes codex-overleaf-link@2.
|
|
241
|
+
npm exec --yes codex-overleaf-link@2.4.0 -- uninstall-managed
|
|
218
242
|
```
|
|
219
243
|
|
|
220
244
|
The same command works in Windows PowerShell. It also applies to current `install.sh` / `install.ps1` installations, which install the managed pair.
|
|
@@ -222,7 +246,7 @@ The same command works in Windows PowerShell. It also applies to current `instal
|
|
|
222
246
|
For an unmanaged checkout or native-only installation, use `npm run uninstall:native` from the checkout, or:
|
|
223
247
|
|
|
224
248
|
```bash
|
|
225
|
-
npm exec --yes codex-overleaf-link@2.
|
|
249
|
+
npm exec --yes codex-overleaf-link@2.4.0 -- uninstall-native
|
|
226
250
|
```
|
|
227
251
|
|
|
228
252
|
If you are removing an older native-only source installation and still have its source checkout, its bundled uninstaller can also be invoked directly:
|
|
@@ -232,7 +256,7 @@ node ~/.codex-overleaf/source/scripts/uninstall-native-host.mjs
|
|
|
232
256
|
```
|
|
233
257
|
|
|
234
258
|
```powershell
|
|
235
|
-
node $env:LOCALAPPDATA\CodexOverleaf\source\scripts\uninstall-native-host.mjs
|
|
259
|
+
node "$env:LOCALAPPDATA\CodexOverleaf\source\scripts\uninstall-native-host.mjs"
|
|
236
260
|
```
|
|
237
261
|
|
|
238
262
|
`uninstall-managed` removes the registered Native Messaging host, bridge executable, managed extension, and versioned native runtime. `uninstall-native` removes the native-only registration and runtime copy. Neither command clears browser session history/settings, project mirrors, plugin Codex history, provider credentials, or stored skills.
|
|
@@ -248,7 +272,7 @@ Remove the extension entry from `chrome://extensions` as well. To erase saved Co
|
|
|
248
272
|
For a managed installation, rerun the [managed installer](#install), reload the extension in `chrome://extensions`, then refresh the Overleaf tab. This recovers the coordinated extension/native pair after an incomplete installation or incompatible runtime update.
|
|
249
273
|
|
|
250
274
|
```bash
|
|
251
|
-
npm exec --yes codex-overleaf-link@2.
|
|
275
|
+
npm exec --yes codex-overleaf-link@2.4.0 -- install-managed
|
|
252
276
|
```
|
|
253
277
|
|
|
254
278
|
For an unmanaged checkout, rebuild the extension and reinstall its native host from the same checkout. Use PowerShell installation commands on Windows.
|
|
@@ -277,6 +301,8 @@ The stale-write guard checks the original content and expected patch ranges. It
|
|
|
277
301
|
|
|
278
302
|
Track requires an Overleaf Reviewing state that the extension can verify. Accept and Undo depend on the run's actual writes and saved recovery evidence; some operations or later collaborator edits prevent full recovery. Follow the run card's specific next action. Turning Track off selects ordinary Editing for future Auto runs.
|
|
279
303
|
|
|
304
|
+
If files were written but Accept is missing, inspect the actual changes in Overleaf before retrying. Repeating a task solely to recover the button can duplicate edits. Export redacted diagnostics with the run result when reporting the issue.
|
|
305
|
+
|
|
280
306
|
**Governance blocked write**
|
|
281
307
|
|
|
282
308
|
Project governance rules can mark paths read-only or restrict writable paths. Switch to ask-only mode, adjust the project governance settings, or narrow the requested edit to an allowed path.
|
|
@@ -369,13 +395,13 @@ The shipped extension targets `https://overleaf.com/project` and `https://www.ov
|
|
|
369
395
|
Linux Chromium install or update:
|
|
370
396
|
|
|
371
397
|
```bash
|
|
372
|
-
CODEX_OVERLEAF_REF=v2.
|
|
398
|
+
CODEX_OVERLEAF_REF=v2.4.0 bash -c "$(curl -fsSL https://raw.githubusercontent.com/Ghqqqq/codex-overleaf-link/v2.4.0/install.sh)" -- --browser chromium
|
|
373
399
|
```
|
|
374
400
|
|
|
375
401
|
Linux Chromium uninstall:
|
|
376
402
|
|
|
377
403
|
```bash
|
|
378
|
-
npm exec --yes codex-overleaf-link@2.
|
|
404
|
+
npm exec --yes codex-overleaf-link@2.4.0 -- uninstall-managed --browser chromium
|
|
379
405
|
```
|
|
380
406
|
|
|
381
407
|
## Extension ID
|
|
@@ -389,27 +415,27 @@ illdpneeeopfffmiepaejglgmhpmdhdc
|
|
|
389
415
|
The installer uses this id by default. For a managed installation with a custom id, rerun the managed installer with the id shown in `chrome://extensions`:
|
|
390
416
|
|
|
391
417
|
```bash
|
|
392
|
-
npm exec --yes codex-overleaf-link@2.
|
|
418
|
+
npm exec --yes codex-overleaf-link@2.4.0 -- install-managed --extension-id "<your-chrome-extension-id>"
|
|
393
419
|
```
|
|
394
420
|
|
|
395
421
|
For an unmanaged extension, use the native-only installer:
|
|
396
422
|
|
|
397
423
|
```bash
|
|
398
|
-
npm exec --yes codex-overleaf-link@2.
|
|
424
|
+
npm exec --yes codex-overleaf-link@2.4.0 -- install-native --extension-id "<your-chrome-extension-id>"
|
|
399
425
|
```
|
|
400
426
|
|
|
401
427
|
Both npm commands work in PowerShell. Source installers also accept the `CODEX_OVERLEAF_EXTENSION_ID` environment variable. The Native Messaging manifest's `allowed_origins` must match the loaded extension id.
|
|
402
428
|
|
|
403
429
|
## GitHub Release Artifacts
|
|
404
430
|
|
|
405
|
-
The v2.
|
|
431
|
+
The v2.4.0 GitHub Release contains:
|
|
406
432
|
|
|
407
|
-
- `codex-overleaf-link-extension-v2.
|
|
408
|
-
- `codex-overleaf-native-host-v2.
|
|
409
|
-
- `codex-overleaf-update-v2.
|
|
410
|
-
- `codex-overleaf-link-2.
|
|
411
|
-
- `install.sh`: release-pinned macOS / Linux installer that defaults to `v2.
|
|
412
|
-
- `install.ps1`: release-pinned Windows PowerShell installer that defaults to `v2.
|
|
433
|
+
- `codex-overleaf-link-extension-v2.4.0.zip`: loadable Chrome extension package for manual unpacked installation.
|
|
434
|
+
- `codex-overleaf-native-host-v2.4.0.tar.gz`: native host runtime files used by the installer and release verification.
|
|
435
|
+
- `codex-overleaf-update-v2.4.0.tar.gz`: coordinated extension/native bundle used by the managed updater.
|
|
436
|
+
- `codex-overleaf-link-2.4.0.tgz`: npm native host CLI package for pinned install, doctor, and uninstall flows.
|
|
437
|
+
- `install.sh`: release-pinned macOS / Linux installer that defaults to `v2.4.0` when run directly from the release artifact.
|
|
438
|
+
- `install.ps1`: release-pinned Windows PowerShell installer that defaults to `v2.4.0` when run directly from the release artifact.
|
|
413
439
|
- `uninstall-native-host.mjs`: native host uninstaller that removes the Chrome Native Messaging manifest, bridge executable, and runtime copy.
|
|
414
440
|
- `nativeHostPlatform.js`, `manifest.js`, `runtimeInstaller.js`: helper files required by the loose uninstaller asset.
|
|
415
441
|
- `SHA256SUMS`, `release-manifest.json`, and `release-manifest.sig`: checksums, release metadata, and its Ed25519 signature.
|
|
@@ -460,6 +486,8 @@ Full uninstall and data deletion:
|
|
|
460
486
|
3. Remove the extension entry from `chrome://extensions` in each browser profile. Chrome removes that extension's `chrome.storage.local` settings when it is uninstalled. See the [Chrome storage API documentation](https://developer.chrome.com/docs/extensions/reference/api/storage#storage_areas).
|
|
461
487
|
4. To erase all remaining default filesystem data, including project mirrors, plugin Codex history, provider credentials, skills, and source checkouts, use the appropriate command below. Also remove any custom installation roots you configured.
|
|
462
488
|
|
|
489
|
+
**The following commands permanently delete data in the listed directories. Back up any project mirrors, history, or configuration that must be kept before running them.**
|
|
490
|
+
|
|
463
491
|
macOS/Linux:
|
|
464
492
|
|
|
465
493
|
```bash
|
|
@@ -484,8 +512,8 @@ Use this matrix for release-candidate signoff and compatibility reports. Record
|
|
|
484
512
|
| Browser/channel/version | Google Chrome channel and version. | Google Chrome channel and version. | Google Chrome channel and version. | Chromium channel/package and version. |
|
|
485
513
|
| Install mode | Managed pair recommended; unmanaged Release zip or checkout also available. | Same as macOS Chrome. | Same as macOS Chrome. | Managed or unmanaged; register with `--browser chromium`. |
|
|
486
514
|
| Extension id | Bundled id `illdpneeeopfffmiepaejglgmhpmdhdc`, or actual custom id passed with `--extension-id`. | Bundled id `illdpneeeopfffmiepaejglgmhpmdhdc`, or actual custom id passed with `--extension-id`. | Bundled id `illdpneeeopfffmiepaejglgmhpmdhdc`, or actual custom id passed with `--extension-id`. | Bundled id `illdpneeeopfffmiepaejglgmhpmdhdc`, or actual custom id passed with `--extension-id`. |
|
|
487
|
-
| Installer/update command | `npm exec --yes codex-overleaf-link@2.
|
|
488
|
-
| Uninstall command | `npm exec --yes codex-overleaf-link@2.
|
|
515
|
+
| Installer/update command | `npm exec --yes codex-overleaf-link@2.4.0 -- install-managed` | `npm exec --yes codex-overleaf-link@2.4.0 -- install-managed` | `npm exec --yes codex-overleaf-link@2.4.0 -- install-managed` | `npm exec --yes codex-overleaf-link@2.4.0 -- install-managed --browser chromium` |
|
|
516
|
+
| Uninstall command | `npm exec --yes codex-overleaf-link@2.4.0 -- uninstall-managed` | `npm exec --yes codex-overleaf-link@2.4.0 -- uninstall-managed` | `npm exec --yes codex-overleaf-link@2.4.0 -- uninstall-managed` | `npm exec --yes codex-overleaf-link@2.4.0 -- uninstall-managed --browser chromium` |
|
|
489
517
|
| Manifest/registry path | `~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.codex.overleaf.json` | `HKCU\Software\Google\Chrome\NativeMessagingHosts\com.codex.overleaf` -> `%LOCALAPPDATA%\CodexOverleaf\native-host-runtime\com.codex.overleaf.json` | `~/.config/google-chrome/NativeMessagingHosts/com.codex.overleaf.json` | `~/.config/chromium/NativeMessagingHosts/com.codex.overleaf.json` |
|
|
490
518
|
| Managed runtime paths | `~/.codex-overleaf/managed/extension` and `~/.codex-overleaf/managed/native`. | `%LOCALAPPDATA%\CodexOverleaf\managed\extension` and `%LOCALAPPDATA%\CodexOverleaf\managed\native`. | Same as macOS Chrome. | Same as macOS Chrome. |
|
|
491
519
|
| Node/Git/Codex/TeX | Record exact versions; see [Requirements](#requirements) for installation and provider prerequisites. | Same as macOS Chrome. | Same as macOS Chrome. | Same as macOS Chrome. |
|
|
@@ -506,6 +534,10 @@ Contributions are welcome. Please open an issue before submitting large changes
|
|
|
506
534
|
3. Run `npm test` and ensure all tests pass.
|
|
507
535
|
4. Submit a pull request with a clear description.
|
|
508
536
|
|
|
537
|
+
Keep [README.md](README.md) and [README.zh-CN.md](README.zh-CN.md) aligned when changing behavior, version pins, installation commands, or troubleshooting. Translate prose while preserving commands, file paths, and API identifiers.
|
|
538
|
+
|
|
509
539
|
## License
|
|
510
540
|
|
|
511
541
|
[MIT](LICENSE)
|
|
542
|
+
|
|
543
|
+
<p align="center"><strong>English</strong> | <a href="README.zh-CN.md" lang="zh-CN">简体中文</a></p>
|