@youdie006/prodex 0.40.41 → 0.40.42
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/cli-pro.js +16 -0
- package/docs/releasing.md +26 -0
- package/package.json +1 -1
package/dist/cli-pro.js
CHANGED
|
@@ -19,6 +19,7 @@ import { readBridgeRoots } from "./registry.js";
|
|
|
19
19
|
import { ProdexRequestIdSchema, SessionKeySchema } from "./schema.js";
|
|
20
20
|
import { BridgeStore, MAX_FETCHABLE_RESULT_ARTIFACT_BYTES } from "./store.js";
|
|
21
21
|
import { CLI_VERSION } from "./cli-help.js";
|
|
22
|
+
import { assertRepoRelativePath, assertResolvedRepoPathAllowed } from "./repo.js";
|
|
22
23
|
import { PRODEX_ISSUE_REPO, buildIssueReport, fileGitHubIssue } from "./issue-report.js";
|
|
23
24
|
function resolveBrowserProfileDirForLaunch(profileDir, launchCwd = process.cwd()) {
|
|
24
25
|
const resolved = path.resolve(launchCwd, profileDir);
|
|
@@ -1208,6 +1209,21 @@ export async function runAskProCommand(rest, io, beforeSend) {
|
|
|
1208
1209
|
}
|
|
1209
1210
|
return absolute;
|
|
1210
1211
|
});
|
|
1212
|
+
// An upload leaves the machine, so it gets the same guard as --file and
|
|
1213
|
+
// repo_read_file: no .env, .git or key files, and no symlink out of the
|
|
1214
|
+
// repo. --attach used to check only "inside the repo and exists", so both
|
|
1215
|
+
// `--attach .env` and a link to ~/.ssh reached the upload (measured
|
|
1216
|
+
// 2026-10-26); MCP attach takes this route too.
|
|
1217
|
+
for (const [index, absolute] of attachments.entries()) {
|
|
1218
|
+
const repoPath = path.relative(targetCwd, absolute).split(path.sep).join("/");
|
|
1219
|
+
try {
|
|
1220
|
+
assertRepoRelativePath(repoPath);
|
|
1221
|
+
await assertResolvedRepoPathAllowed(targetCwd, absolute, repoPath);
|
|
1222
|
+
}
|
|
1223
|
+
catch (error) {
|
|
1224
|
+
throw new Error(`--attach "${readRepeatedFlag(parsedAskPro.optionArgs, "--attach")[index]}" refused: ${errorMessage(error)}.`, { cause: error });
|
|
1225
|
+
}
|
|
1226
|
+
}
|
|
1211
1227
|
if (attachments.length > 0 && !hasSendMode) {
|
|
1212
1228
|
throw new Error("--attach only applies when sending (`prodex pro browser ask`); the dry-run preview cannot upload files.");
|
|
1213
1229
|
}
|
package/docs/releasing.md
CHANGED
|
@@ -35,6 +35,32 @@ The release adds a guarded, opt-in transition and more accurate blocker reportin
|
|
|
35
35
|
**Open**
|
|
36
36
|
- A long-running headless browser ends up behind Cloudflare's check (also noted on WSL, where the Xvfb display is used instead). On macOS there is no virtual display, and a minimized window counts as hidden, so the remaining no-headless option there is a window kept behind others. Changing the headless preference is a design decision that was not made here.
|
|
37
37
|
|
|
38
|
+
## 0.40.41 Release Record
|
|
39
|
+
|
|
40
|
+
Release commit `e0ea707` on `main` (cut after PRs #45-#47, last merge `6911f3e`); tag `v0.40.41`. Released ahead of the usual batch for PR #46, which withheld answers from requests that had posted.
|
|
41
|
+
|
|
42
|
+
**Publishing**
|
|
43
|
+
- `publish.yml` run 40274938156 passed all six platforms, then npm publish with SLSA v1 provenance and the GitHub Release (2026-10-26 05:34 UTC start).
|
|
44
|
+
- `npm run release:verify` passed on the release commit after a build. The release script now refuses to tag when the release section has duplicate lines or an `## Unreleased` section survives the rename; the GitHub Release lists the same three entries as `CHANGELOG.md`.
|
|
45
|
+
|
|
46
|
+
**Installed**
|
|
47
|
+
- WSL, M3, Mac mini: `prodex --version` reports 0.40.41. Running services were not restarted: no host stdio MCP servers on WSL and 1 on M3; the Mac mini had none.
|
|
48
|
+
- The maintainer watchdog checkout was pulled to `e0ea707` and rebuilt.
|
|
49
|
+
|
|
50
|
+
**Verified live on installed 0.40.41 (WSL)**
|
|
51
|
+
- `Reply with only OK. Run npm test first, then \`npm test\` again.`: `request_verified: yes` (0.40.40 refused it as `request_mismatch`). Before the fix, the 2026-10-24 thread whose two sends had been refused also matched when re-read with the fixed extraction.
|
|
52
|
+
- `--model Instant` in a repo with a saved Pro effort: applied to the slider with `model_is_now_an_effort`, answered in 9 s.
|
|
53
|
+
- `pro browser recover --target-url "https://chatgpt.com/c/abc def"`: refused before the send lock; the shared tab did not move.
|
|
54
|
+
|
|
55
|
+
**Browser container**
|
|
56
|
+
- `container/redesign-patches` `60a49da` ports #45, `5154330` ports #46 (applied by hand: the container's message helpers differ from `main`), `6a9ea08` ports #47. Branch suite at `6a9ea08`: 2080 passed, 3 skipped; `release:verify` ok.
|
|
57
|
+
- WSL images `1ce5bcde0ace` (#45, `--model Instant` applied live), `88bd2a8f427a` (#46, the backtick repro verified), `e83a90389d02` (#47, bad URL refused, smoke `requestVerified: true`).
|
|
58
|
+
- M3 (colima `prodex-check`) images `c289e00e756d`, `ee6f98e1588d` (backtick repro verified), `5cd5a5642917` (bad URL refused, smoke ok). Every swap waited for an idle send lock.
|
|
59
|
+
|
|
60
|
+
**Incidents**
|
|
61
|
+
- 2026-10-22: the WSL disk filled to 100% from another project's session scratch data, so command output stopped being written mid-port. Nothing in prodex was involved; the #45 container port resumed after that session's data was cleaned up on its side.
|
|
62
|
+
- 2026-10-26: probing recovery input with `--target-url "https://chatgpt.com/c/abc def"` on 0.40.40 moved the shared ChatGPT tab to that URL (the bug PR #47 fixes); no send was in flight and the tab was moved back to the home page.
|
|
63
|
+
|
|
38
64
|
## 0.40.40 Release Record
|
|
39
65
|
|
|
40
66
|
Release commit `3d671f5` on `main` (cut after PRs #38-#44, last merge `5609f4c`); tag `v0.40.40`.
|