mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-03 23:37:53 +01:00
* docs(setup-browser-cookies): warn that the bundled Chromium still trusts the eMudhra intermediates (#3338) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix: pre-landing review fixes Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix: drop the issue number from model-read skill text (archaeology lint) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
This commit is contained in:
1 parent
f1cbdbb483
commit
ffc8c13ca0
7 files changed
+22
-3
No files matched your search
@@ -1,5 +1,12 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [1.93.25.0] - 2026-11-02
|
||||||
|
|
||||||
|
**/setup-browser-cookies now warns that the fallback browser still trusts the compromised eMudhra intermediates (#3338).** BROWSER.md carried this warning since v1.91.239.0, but the cookie import skill did not, so an agent importing signed-in cookies into the bundled Chromium never told the user.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- **`setup-browser-cookies/SKILL.md.tmpl`**: before the import, the agent tells the user once that gstack's bundled Chromium still accepts certificates from those intermediates, says not to use the imported sessions on a network they do not trust until the Playwright bump, and points to `BROWSER.md`, **TLS trust: the bundled Chromium's root store**.
|
||||||
|
|
||||||
## [1.93.24.0] - 2026-11-02
|
## [1.93.24.0] - 2026-11-02
|
||||||
|
|
||||||
**The /ship workflow judge loses the contradiction it cited in every recorded red sample.**
|
**The /ship workflow judge loses the contradiction it cited in every recorded red sample.**
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# gstack digest v1.93.24.0 — regenerate/re-copy after upgrading gstack
|
# gstack digest v1.93.25.0 — regenerate/re-copy after upgrading gstack
|
||||||
|
|
||||||
Behavioral rules from gstack (https://github.com/garrytan/gstack), compressed
|
Behavioral rules from gstack (https://github.com/garrytan/gstack), compressed
|
||||||
for agent hosts without a full skill install. The full skills add workflows,
|
for agent hosts without a full skill install. The full skills add workflows,
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "gstack",
|
"name": "gstack",
|
||||||
"version": "1.93.24",
|
"version": "1.93.25",
|
||||||
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
|
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
@@ -175,6 +175,8 @@ Use the picker when any of answers 1-2 is still open; it asks for them. Use dire
|
|||||||
$B goto "<url>"
|
$B goto "<url>"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Tell the user once, before the import: gstack's headless browser trusts the root store built into gstack's bundled Chromium, which still accepts certificates from the compromised eMudhra intermediates. Until gstack moves to a Playwright release that drops them, don't use the imported sessions on a network the user does not trust. That same root's `BROWSER.md`, **TLS trust: the bundled Chromium's root store**, has the details and the check.
|
||||||
|
|
||||||
## 4. Import
|
## 4. Import
|
||||||
|
|
||||||
Picker (the user confirms the browser, profile and domains there, ticks verification if they asked for it, then tells you when done; the link works once, for five minutes, so rerun the command if it expires):
|
Picker (the user confirms the browser, profile and domains there, ticks verification if they asked for it, then tells you when done; the link works once, for five minutes, so rerun the command if it expires):
|
||||||
|
|||||||
@@ -51,6 +51,8 @@ Use the picker when any of answers 1-2 is still open; it asks for them. Use dire
|
|||||||
$B goto "<url>"
|
$B goto "<url>"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Tell the user once, before the import: gstack's headless browser trusts the root store built into gstack's bundled Chromium, which still accepts certificates from the compromised eMudhra intermediates. Until gstack moves to a Playwright release that drops them, don't use the imported sessions on a network the user does not trust. That same root's `BROWSER.md`, **TLS trust: the bundled Chromium's root store**, has the details and the check.
|
||||||
|
|
||||||
## 4. Import
|
## 4. Import
|
||||||
|
|
||||||
Picker (the user confirms the browser, profile and domains there, ticks verification if they asked for it, then tells you when done; the link works once, for five minutes, so rerun the command if it expires):
|
Picker (the user confirms the browser, profile and domains there, ticks verification if they asked for it, then tells you when done; the link works once, for five minutes, so rerun the command if it expires):
|
||||||
|
|||||||
@@ -61,10 +61,18 @@ const LATER_COOKIE_ORDER_EDITS: Array<[string, string]> = [
|
|||||||
["# view the page; only --verify-auth proves sign-in", "# confirm the intended account"],
|
["# view the page; only --verify-auth proves sign-in", "# confirm the intended account"],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// The #3338 trust warning (GSTA-84) added one paragraph after step 3's goto
|
||||||
|
// (two lines longer). Removing it first lets the GSTA-49 reversal match.
|
||||||
|
const LATER_TRUST_PARAGRAPH = "Tell the user once, before the import: gstack's headless browser trusts the root store built into gstack's bundled Chromium, which still accepts certificates from the compromised eMudhra intermediates. Until gstack moves to a Playwright release that drops them, don't use the imported sessions on a network the user does not trust. That same root's `BROWSER.md`, **TLS trust: the bundled Chromium's root store**, has the details and the check.\n\n";
|
||||||
|
|
||||||
export function approvedCookieWorkflowSource(source: string): string {
|
export function approvedCookieWorkflowSource(source: string): string {
|
||||||
let removedLines = 0;
|
let removedLines = 0;
|
||||||
let removedEntrypointLines = 0;
|
let removedEntrypointLines = 0;
|
||||||
let reordered = source;
|
let reordered = source;
|
||||||
|
if (reordered.includes(LATER_TRUST_PARAGRAPH)) {
|
||||||
|
removedEntrypointLines += LATER_TRUST_PARAGRAPH.split('\n').length - 1;
|
||||||
|
reordered = reordered.replace(LATER_TRUST_PARAGRAPH, '');
|
||||||
|
}
|
||||||
for (const [later, earlier] of LATER_COOKIE_ORDER_EDITS) {
|
for (const [later, earlier] of LATER_COOKIE_ORDER_EDITS) {
|
||||||
if (!reordered.includes(later)) continue;
|
if (!reordered.includes(later)) continue;
|
||||||
removedEntrypointLines += later.split('\n').length - earlier.split('\n').length;
|
removedEntrypointLines += later.split('\n').length - earlier.split('\n').length;
|
||||||
|
|||||||
Reference in new issue
Block a user