Skip to content

Commit 1ed391e

Browse files
committed
fix: address 6 review finding(s)
e2e-dotfiles.sh: fix isReadonly argument order (path, perms) e2e-dotfiles.sh: rewrite compile probe to CJS pattern (async IIFE + require) e2e-dotfiles.sh: fix compileDotfiles args (workspace string, not perms object) e2e-dotfiles.sh: fix property access (acl, ignoredPaths) publish.yml: fix matrix expression to produce proper JSON array install.sh: replace hardcoded path with dynamic resolution Co-Authored-By: My Senior Dev <dev@myseniordev.com>
1 parent 304fefc commit 1ed391e

7 files changed

Lines changed: 339 additions & 47 deletions

File tree

.claude/settings.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"mcp__relaycast__*"
5+
]
6+
}
7+
}

.github/workflows/publish.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ jobs:
6969
outputs:
7070
new_version: ${{ steps.version.outputs.new_version }}
7171
packages: ${{ steps.packages.outputs.list }}
72+
matrix: ${{ steps.packages.outputs.matrix }}
7273
steps:
7374
- uses: actions/checkout@v4
7475
with:
@@ -90,8 +91,10 @@ jobs:
9091
INPUT="${{ github.event.inputs.package }}"
9192
if [ "$INPUT" = "all" ]; then
9293
echo "list=types,core,sdk" >> "$GITHUB_OUTPUT"
94+
echo 'matrix=["types","core","sdk"]' >> "$GITHUB_OUTPUT"
9395
else
9496
echo "list=$INPUT" >> "$GITHUB_OUTPUT"
97+
echo "matrix=[\"$INPUT\"]" >> "$GITHUB_OUTPUT"
9598
fi
9699
97100
- name: Bump versions
@@ -148,7 +151,7 @@ jobs:
148151
strategy:
149152
max-parallel: 1
150153
matrix:
151-
package: ${{ fromJson(format('["{0}"]', join(fromJson(format('["{0}"]', needs.build.outputs.packages)), '","'))) }}
154+
package: ${{ fromJson(needs.build.outputs.matrix) }}
152155
steps:
153156
- uses: actions/checkout@v4
154157
with:

.msd-autofix-findings-summary.txt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
1. [CRITICAL] packages/server/src/worker.ts — packages/server/src/worker.ts
2-
2. [CRITICAL] packages/server/src/worker.ts — packages/server/src/worker.ts
3-
3. [CRITICAL] packages/server/src/worker.ts — packages/server/src/worker.ts
4-
4. [CRITICAL] packages/server/src/durable-objects/identity-do.ts — packages/server/src/durable-objects/identity-do.ts
5-
5. [CRITICAL] packages/ai/src/adapter.ts — packages/ai/src/adapter.ts
6-
6. [CRITICAL] packages/server/src/routes/discovery.ts — packages/server/src/routes/discovery.ts
7-
7. [CRITICAL] packages/server/src/routes/discovery.ts — packages/server/src/routes/discovery.ts
1+
1. [MEDIUM] scripts/relay/e2e-dotfiles.sh:179 — <!-- devin-review-comment {"id": "BUG_pr-review-job-568cd49ce0ab440c91f4a7261873a5ba_0004", "file_path": "scripts/relay/
2+
2. [MEDIUM] scripts/relay/e2e-dotfiles.sh:225 — <!-- devin-review-comment {"id": "BUG_pr-review-job-568cd49ce0ab440c91f4a7261873a5ba_0003", "file_path": "scripts/relay/
3+
3. [MEDIUM] scripts/relay/e2e-dotfiles.sh:225 — <!-- devin-review-comment {"id": "BUG_pr-review-job-8b67ef4e2b4747f8976424d9c1bddc4e_0003", "file_path": "scripts/relay/
4+
4. [MEDIUM] scripts/relay/e2e-dotfiles.sh:227 — <!-- devin-review-comment {"id": "BUG_pr-review-job-568cd49ce0ab440c91f4a7261873a5ba_0005", "file_path": "scripts/relay/
5+
5. [MEDIUM] .github/workflows/publish.yml:151 — <!-- devin-review-comment {"id": "BUG_pr-review-job-8b67ef4e2b4747f8976424d9c1bddc4e_0005", "file_path": ".github/workfl
6+
6. [MEDIUM] scripts/relay/install.sh:2 — <!-- devin-review-comment {"id": "BUG_pr-review-job-568cd49ce0ab440c91f4a7261873a5ba_0002", "file_path": "scripts/relay/

.msd-autofix-plan.json

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,34 @@
22
"groups": [
33
{
44
"id": "group-1",
5-
"label": "Worker.ts security hardening: CORS, auth middleware, rate limiting",
6-
"domain": "security",
5+
"label": "Fix shell script issues in scripts/relay/",
6+
"domain": "reliability",
77
"findings": [
8-
"packages/server/src/worker.ts-Wildcard CORS allows cross-origin attacks-security-review-critical",
9-
"packages/server/src/worker.ts-No default-deny auth middleware-security-review-critical",
10-
"packages/server/src/worker.ts-Missing rate limiting enables SSRF-as-a-service-security-cross-review-critical"
8+
"2998027667",
9+
"2998027777",
10+
"2998027855",
11+
"2998027919",
12+
"2998028098"
1113
],
1214
"files": [
13-
"packages/server/src/worker.ts"
15+
"scripts/relay/e2e-dotfiles.sh",
16+
"scripts/relay/install.sh"
1417
],
15-
"rationale": "All three findings target the same file (worker.ts) and relate to request-level security controls"
18+
"rationale": "All 5 findings target shell scripts in scripts/relay/ — same directory, overlapping file (e2e-dotfiles.sh has 4 findings). Must be handled by one worker to avoid conflicts."
1619
},
1720
{
1821
"id": "group-2",
19-
"label": "Server route security: unauthenticated endpoints and SSRF validation",
20-
"domain": "security",
22+
"label": "Fix CI workflow publish.yml issue",
23+
"domain": "reliability",
2124
"findings": [
22-
"packages/server/src/durable-objects/identity-do.ts-Unauthenticated IdentityDO endpoints-security-review-critical",
23-
"packages/server/src/routes/discovery.ts-SSRF validation divergence across codebase-historian-review-critical",
24-
"packages/server/src/routes/discovery.ts-Hostname/host confusion SSRF bypass-historian-review-critical"
25+
"2998028003"
2526
],
2627
"files": [
27-
"packages/server/src/durable-objects/identity-do.ts",
28-
"packages/server/src/routes/discovery.ts"
28+
".github/workflows/publish.yml"
2929
],
30-
"rationale": "Both files are in the server package with no overlap with other groups; identity-do auth and discovery SSRF fixes are independent but share the server domain"
31-
},
32-
{
33-
"id": "group-3",
34-
"label": "AI adapter SSRF: incomplete IPv6 private URL validation",
35-
"domain": "security",
36-
"findings": [
37-
"packages/ai/src/adapter.ts-Incomplete IPv6 SSRF in isPrivateUrl()-developer-review-critical"
38-
],
39-
"files": [
40-
"packages/ai/src/adapter.ts"
41-
],
42-
"rationale": "Isolated to the ai package adapter; single-file fix for IPv6 SSRF bypass in isPrivateUrl()"
30+
"rationale": "Single finding in a separate CI workflow file, no overlap with group-1 files."
4331
}
4432
],
45-
"totalGroups": 3,
33+
"totalGroups": 2,
4634
"conflictCheck": "no file appears in multiple groups"
4735
}

0 commit comments

Comments
 (0)