codex-overleaf-link 2.3.6 → 2.4.1
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 +62 -34
- package/README.zh-CN.md +546 -0
- package/extension/bootstrap/manifest.template.json +1 -1
- package/extension/src/background.js +3 -0
- package/extension/src/content/activeTurnControl.js +1 -0
- package/extension/src/content/assetTransferBroker.js +2 -0
- package/extension/src/content/contentRuntime.js +122 -118
- package/extension/src/content/contextTray.js +4 -0
- package/extension/src/content/diagnosticsController.js +4 -0
- package/extension/src/content/diagnosticsPanel.js +128 -4
- package/extension/src/content/generated/content.bundle.js +1233 -550
- package/extension/src/content/generated/content.bundle.meta.json +4 -3
- package/extension/src/content/legacyGlobalRegistry.js +1 -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 +34 -30
- package/extension/src/content/otWarmMirrorController.js +20 -0
- package/extension/src/content/pageBridgeClient.js +2 -0
- package/extension/src/content/panelMaintenance.js +8 -4
- package/extension/src/content/recentProjects.js +354 -355
- package/extension/src/content/runResultActions.js +16 -1
- package/extension/src/content/runTimelineView.js +9 -11
- package/extension/src/content/scopedPersistenceCoordinator.js +2 -1
- package/extension/src/content/scopedPersistencePanelState.js +45 -2
- package/extension/src/content/sessionForkController.js +20 -11
- package/extension/src/content/sessionPersistence.js +4 -1
- package/extension/src/content/settingsPanel.js +16 -2
- package/extension/src/content/trackedChangeCaptureController.js +153 -0
- package/extension/src/content/writebackOrchestrator.js +31 -0
- package/extension/src/page/binaryAssetUploader.js +101 -29
- package/extension/src/page/overleafRealtimeObserver.js +4 -1
- package/extension/src/page/saveState.js +44 -1
- package/extension/src/page/textFileCreator.js +493 -0
- package/extension/src/page/trackedChangeCapture.js +342 -0
- package/extension/src/page/trackedChangesLifecycle.js +149 -150
- package/extension/src/page/treeOperations.js +40 -29
- package/extension/src/page/writebackRouter.js +95 -49
- package/extension/src/pageBridge.js +65 -25
- package/extension/src/shared/compatibility.js +1 -1
- package/extension/src/shared/i18n.js +94 -40
- package/extension/src/shared/pageRpcContract.js +2 -1
- package/extension/src/shared/sessionState.js +6 -2
- package/extension/src/shared/storageDb.js +11 -12
- package/extension/src/shared/storageRunActions.js +73 -1
- package/extension/src/shared/writebackSettlement.js +19 -5
- package/extension/styles/panel.css +254 -405
- package/native-host/src/codexSessionRunner.js +41 -38
- package/native-host/src/codexSessionTiming.js +68 -0
- package/native-host/src/readProgressGuard.js +84 -17
- package/native-host/src/taskRunnerRuntime.js +25 -0
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
> [!NOTE]
|
|
2
|
+
> This development branch can contain unreleased changes. Version-pinned commands below apply after the corresponding release is published. Published installers are available from the [latest stable release](https://github.com/Ghqqqq/codex-overleaf-link/releases/latest).
|
|
3
|
+
|
|
1
4
|
<div align="center">
|
|
2
5
|
<img src="extension/assets/icons/codex-overleaf-icon.png" width="96" alt="Codex Overleaf Link">
|
|
3
6
|
<h1>Codex Overleaf Link</h1>
|
|
7
|
+
<p><strong>English</strong> | <a href="README.zh-CN.md" lang="zh-CN">简体中文</a></p>
|
|
4
8
|
<p><strong>Empower Overleaf with Codex.</strong></p>
|
|
5
9
|
<p>
|
|
6
|
-
<img src="https://img.shields.io/badge/version-2.
|
|
10
|
+
<img src="https://img.shields.io/badge/version-2.4.1-blue" alt="version">
|
|
7
11
|
<img src="https://img.shields.io/badge/platform-macOS%20%2F%20Windows%20%2F%20Linux-lightgrey" alt="platform">
|
|
8
12
|
<img src="https://img.shields.io/badge/chrome-MV3-green" alt="chrome manifest v3">
|
|
9
13
|
<img src="https://img.shields.io/badge/node-%3E%3D20-brightgreen" alt="node version">
|
|
@@ -38,14 +42,14 @@ Codex Overleaf Link adds a Codex panel directly inside Overleaf and mirrors the
|
|
|
38
42
|
- **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
43
|
- **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
44
|
- **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.
|
|
45
|
+
- **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.
|
|
46
|
+
|
|
47
|
+
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
48
|
|
|
42
49
|
### Experimental features
|
|
43
50
|
|
|
44
51
|
- **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
52
|
- **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
|
-
|
|
48
|
-
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.
|
|
49
53
|
|
|
50
54
|
## Requirements
|
|
51
55
|
|
|
@@ -61,36 +65,50 @@ OT freshness expires after 30 seconds, and focused warm starts still verify curr
|
|
|
61
65
|
|
|
62
66
|
## Install
|
|
63
67
|
|
|
64
|
-
Codex Overleaf Link has two parts: a **native host** (a local Node bridge) and the **Chrome extension**.
|
|
68
|
+
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.
|
|
69
|
+
|
|
70
|
+
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.
|
|
71
|
+
|
|
72
|
+
### Option A: Let Codex install it (recommended)
|
|
73
|
+
|
|
74
|
+
Give the following prompt to Codex with terminal access on the computer where Chrome runs:
|
|
65
75
|
|
|
66
|
-
|
|
76
|
+
```text
|
|
77
|
+
Install Codex Overleaf Link from https://github.com/Ghqqqq/codex-overleaf-link on this computer.
|
|
67
78
|
|
|
68
|
-
|
|
79
|
+
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.
|
|
80
|
+
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.
|
|
81
|
+
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.
|
|
82
|
+
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.
|
|
83
|
+
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.
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Option B: installer script
|
|
69
87
|
|
|
70
88
|
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.
|
|
71
89
|
|
|
72
90
|
macOS / Linux:
|
|
73
91
|
|
|
74
92
|
```bash
|
|
75
|
-
CODEX_OVERLEAF_REF=v2.
|
|
93
|
+
CODEX_OVERLEAF_REF=v2.4.1 bash -c "$(curl -fsSL https://raw.githubusercontent.com/Ghqqqq/codex-overleaf-link/v2.4.1/install.sh)"
|
|
76
94
|
```
|
|
77
95
|
|
|
78
96
|
Windows PowerShell:
|
|
79
97
|
|
|
80
98
|
```powershell
|
|
81
|
-
iwr https://raw.githubusercontent.com/Ghqqqq/codex-overleaf-link/v2.
|
|
82
|
-
$env:CODEX_OVERLEAF_REF='v2.
|
|
99
|
+
iwr https://raw.githubusercontent.com/Ghqqqq/codex-overleaf-link/v2.4.1/install.ps1 -OutFile install.ps1
|
|
100
|
+
$env:CODEX_OVERLEAF_REF='v2.4.1'
|
|
83
101
|
powershell -ExecutionPolicy Bypass -File install.ps1
|
|
84
102
|
```
|
|
85
103
|
|
|
86
104
|
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.
|
|
87
105
|
|
|
88
|
-
### Option
|
|
106
|
+
### Option C: npm managed install
|
|
89
107
|
|
|
90
108
|
`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.
|
|
91
109
|
|
|
92
110
|
```bash
|
|
93
|
-
npm exec --yes codex-overleaf-link@2.
|
|
111
|
+
npm exec --yes codex-overleaf-link@2.4.1 -- install-managed
|
|
94
112
|
```
|
|
95
113
|
|
|
96
114
|
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.
|
|
@@ -132,7 +150,10 @@ There are two task modes, Ask and Auto. Track is a separate setting for Auto wri
|
|
|
132
150
|
|
|
133
151
|
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.
|
|
134
152
|
|
|
135
|
-
**Accept**
|
|
153
|
+
**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.
|
|
154
|
+
|
|
155
|
+
> [!WARNING]
|
|
156
|
+
> 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.
|
|
136
157
|
|
|
137
158
|
**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.
|
|
138
159
|
|
|
@@ -191,7 +212,6 @@ Update downloads retry transient network failures within a bounded time budget,
|
|
|
191
212
|
|
|
192
213
|
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.
|
|
193
214
|
|
|
194
|
-
|
|
195
215
|
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.
|
|
196
216
|
|
|
197
217
|
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.
|
|
@@ -208,9 +228,9 @@ npm installs, updates, and uninstalls the coordinated managed extension/native p
|
|
|
208
228
|
|
|
209
229
|
| Action | Command |
|
|
210
230
|
|--------|---------|
|
|
211
|
-
| Install / recover / migrate | `npm exec --yes codex-overleaf-link@2.
|
|
212
|
-
| Diagnose | `npm exec --yes codex-overleaf-link@2.
|
|
213
|
-
| Uninstall | `npm exec --yes codex-overleaf-link@2.
|
|
231
|
+
| Install / recover / migrate | `npm exec --yes codex-overleaf-link@2.4.1 -- install-managed` |
|
|
232
|
+
| Diagnose | `npm exec --yes codex-overleaf-link@2.4.1 -- doctor` |
|
|
233
|
+
| Uninstall | `npm exec --yes codex-overleaf-link@2.4.1 -- uninstall-managed` |
|
|
214
234
|
|
|
215
235
|
Use `--extension-id <chrome-extension-id>` only for a custom/dev unpacked extension id that differs from the official bundled id.
|
|
216
236
|
|
|
@@ -221,7 +241,7 @@ Use `--extension-id <chrome-extension-id>` only for a custom/dev unpacked extens
|
|
|
221
241
|
Remove the managed extension/native installation (append `--browser chromium` on Linux Chromium):
|
|
222
242
|
|
|
223
243
|
```bash
|
|
224
|
-
npm exec --yes codex-overleaf-link@2.
|
|
244
|
+
npm exec --yes codex-overleaf-link@2.4.1 -- uninstall-managed
|
|
225
245
|
```
|
|
226
246
|
|
|
227
247
|
The same command works in Windows PowerShell. It also applies to current `install.sh` / `install.ps1` installations, which install the managed pair.
|
|
@@ -229,7 +249,7 @@ The same command works in Windows PowerShell. It also applies to current `instal
|
|
|
229
249
|
For an unmanaged checkout or native-only installation, use `npm run uninstall:native` from the checkout, or:
|
|
230
250
|
|
|
231
251
|
```bash
|
|
232
|
-
npm exec --yes codex-overleaf-link@2.
|
|
252
|
+
npm exec --yes codex-overleaf-link@2.4.1 -- uninstall-native
|
|
233
253
|
```
|
|
234
254
|
|
|
235
255
|
If you are removing an older native-only source installation and still have its source checkout, its bundled uninstaller can also be invoked directly:
|
|
@@ -239,7 +259,7 @@ node ~/.codex-overleaf/source/scripts/uninstall-native-host.mjs
|
|
|
239
259
|
```
|
|
240
260
|
|
|
241
261
|
```powershell
|
|
242
|
-
node $env:LOCALAPPDATA\CodexOverleaf\source\scripts\uninstall-native-host.mjs
|
|
262
|
+
node "$env:LOCALAPPDATA\CodexOverleaf\source\scripts\uninstall-native-host.mjs"
|
|
243
263
|
```
|
|
244
264
|
|
|
245
265
|
`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.
|
|
@@ -255,7 +275,7 @@ Remove the extension entry from `chrome://extensions` as well. To erase saved Co
|
|
|
255
275
|
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.
|
|
256
276
|
|
|
257
277
|
```bash
|
|
258
|
-
npm exec --yes codex-overleaf-link@2.
|
|
278
|
+
npm exec --yes codex-overleaf-link@2.4.1 -- install-managed
|
|
259
279
|
```
|
|
260
280
|
|
|
261
281
|
For an unmanaged checkout, rebuild the extension and reinstall its native host from the same checkout. Use PowerShell installation commands on Windows.
|
|
@@ -284,6 +304,8 @@ The stale-write guard checks the original content and expected patch ranges. It
|
|
|
284
304
|
|
|
285
305
|
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.
|
|
286
306
|
|
|
307
|
+
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.
|
|
308
|
+
|
|
287
309
|
**Governance blocked write**
|
|
288
310
|
|
|
289
311
|
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.
|
|
@@ -376,13 +398,13 @@ The shipped extension targets `https://overleaf.com/project` and `https://www.ov
|
|
|
376
398
|
Linux Chromium install or update:
|
|
377
399
|
|
|
378
400
|
```bash
|
|
379
|
-
CODEX_OVERLEAF_REF=v2.
|
|
401
|
+
CODEX_OVERLEAF_REF=v2.4.1 bash -c "$(curl -fsSL https://raw.githubusercontent.com/Ghqqqq/codex-overleaf-link/v2.4.1/install.sh)" -- --browser chromium
|
|
380
402
|
```
|
|
381
403
|
|
|
382
404
|
Linux Chromium uninstall:
|
|
383
405
|
|
|
384
406
|
```bash
|
|
385
|
-
npm exec --yes codex-overleaf-link@2.
|
|
407
|
+
npm exec --yes codex-overleaf-link@2.4.1 -- uninstall-managed --browser chromium
|
|
386
408
|
```
|
|
387
409
|
|
|
388
410
|
## Extension ID
|
|
@@ -396,27 +418,27 @@ illdpneeeopfffmiepaejglgmhpmdhdc
|
|
|
396
418
|
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`:
|
|
397
419
|
|
|
398
420
|
```bash
|
|
399
|
-
npm exec --yes codex-overleaf-link@2.
|
|
421
|
+
npm exec --yes codex-overleaf-link@2.4.1 -- install-managed --extension-id "<your-chrome-extension-id>"
|
|
400
422
|
```
|
|
401
423
|
|
|
402
424
|
For an unmanaged extension, use the native-only installer:
|
|
403
425
|
|
|
404
426
|
```bash
|
|
405
|
-
npm exec --yes codex-overleaf-link@2.
|
|
427
|
+
npm exec --yes codex-overleaf-link@2.4.1 -- install-native --extension-id "<your-chrome-extension-id>"
|
|
406
428
|
```
|
|
407
429
|
|
|
408
430
|
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.
|
|
409
431
|
|
|
410
432
|
## GitHub Release Artifacts
|
|
411
433
|
|
|
412
|
-
The v2.
|
|
434
|
+
The v2.4.1 GitHub Release contains:
|
|
413
435
|
|
|
414
|
-
- `codex-overleaf-link-extension-v2.
|
|
415
|
-
- `codex-overleaf-native-host-v2.
|
|
416
|
-
- `codex-overleaf-update-v2.
|
|
417
|
-
- `codex-overleaf-link-2.
|
|
418
|
-
- `install.sh`: release-pinned macOS / Linux installer that defaults to `v2.
|
|
419
|
-
- `install.ps1`: release-pinned Windows PowerShell installer that defaults to `v2.
|
|
436
|
+
- `codex-overleaf-link-extension-v2.4.1.zip`: loadable Chrome extension package for manual unpacked installation.
|
|
437
|
+
- `codex-overleaf-native-host-v2.4.1.tar.gz`: native host runtime files used by the installer and release verification.
|
|
438
|
+
- `codex-overleaf-update-v2.4.1.tar.gz`: coordinated extension/native bundle used by the managed updater.
|
|
439
|
+
- `codex-overleaf-link-2.4.1.tgz`: npm native host CLI package for pinned install, doctor, and uninstall flows.
|
|
440
|
+
- `install.sh`: release-pinned macOS / Linux installer that defaults to `v2.4.1` when run directly from the release artifact.
|
|
441
|
+
- `install.ps1`: release-pinned Windows PowerShell installer that defaults to `v2.4.1` when run directly from the release artifact.
|
|
420
442
|
- `uninstall-native-host.mjs`: native host uninstaller that removes the Chrome Native Messaging manifest, bridge executable, and runtime copy.
|
|
421
443
|
- `nativeHostPlatform.js`, `manifest.js`, `runtimeInstaller.js`: helper files required by the loose uninstaller asset.
|
|
422
444
|
- `SHA256SUMS`, `release-manifest.json`, and `release-manifest.sig`: checksums, release metadata, and its Ed25519 signature.
|
|
@@ -467,6 +489,8 @@ Full uninstall and data deletion:
|
|
|
467
489
|
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).
|
|
468
490
|
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.
|
|
469
491
|
|
|
492
|
+
**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.**
|
|
493
|
+
|
|
470
494
|
macOS/Linux:
|
|
471
495
|
|
|
472
496
|
```bash
|
|
@@ -491,8 +515,8 @@ Use this matrix for release-candidate signoff and compatibility reports. Record
|
|
|
491
515
|
| Browser/channel/version | Google Chrome channel and version. | Google Chrome channel and version. | Google Chrome channel and version. | Chromium channel/package and version. |
|
|
492
516
|
| 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`. |
|
|
493
517
|
| 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`. |
|
|
494
|
-
| Installer/update command | `npm exec --yes codex-overleaf-link@2.
|
|
495
|
-
| Uninstall command | `npm exec --yes codex-overleaf-link@2.
|
|
518
|
+
| Installer/update command | `npm exec --yes codex-overleaf-link@2.4.1 -- install-managed` | `npm exec --yes codex-overleaf-link@2.4.1 -- install-managed` | `npm exec --yes codex-overleaf-link@2.4.1 -- install-managed` | `npm exec --yes codex-overleaf-link@2.4.1 -- install-managed --browser chromium` |
|
|
519
|
+
| Uninstall command | `npm exec --yes codex-overleaf-link@2.4.1 -- uninstall-managed` | `npm exec --yes codex-overleaf-link@2.4.1 -- uninstall-managed` | `npm exec --yes codex-overleaf-link@2.4.1 -- uninstall-managed` | `npm exec --yes codex-overleaf-link@2.4.1 -- uninstall-managed --browser chromium` |
|
|
496
520
|
| 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` |
|
|
497
521
|
| 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. |
|
|
498
522
|
| 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. |
|
|
@@ -513,6 +537,10 @@ Contributions are welcome. Please open an issue before submitting large changes
|
|
|
513
537
|
3. Run `npm test` and ensure all tests pass.
|
|
514
538
|
4. Submit a pull request with a clear description.
|
|
515
539
|
|
|
540
|
+
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.
|
|
541
|
+
|
|
516
542
|
## License
|
|
517
543
|
|
|
518
544
|
[MIT](LICENSE)
|
|
545
|
+
|
|
546
|
+
<p align="center"><strong>English</strong> | <a href="README.zh-CN.md" lang="zh-CN">简体中文</a></p>
|