Skip to content

W1: foundation — CI, lint gate, HTTP harness, logger, hardened workflows - #2

Open
EgerDev wants to merge 20 commits into
hardening/w0-containmentfrom
hardening/w1-foundation
Open

EgerDev wants to merge 20 commits into
hardening/w0-containmentfrom
hardening/w1-foundation

Conversation

@EgerDev

@EgerDev EgerDev commented Sep 25, 2026

Copy link
Copy Markdown
Owner

W1: Foundation (stacked on W0)

Plan: docs/superpowers/plans/2026-09-23-w1-foundation.md, Tasks 1–9. Task 10 is owner-only repository settings.

  • Build and dev. Node 24 pin, node-server build, dev server on loopback (VELO_DEV_HOST/VELO_DEV_PORT), and a build step that no longer runs migrations.
  • Lint. 189 warnings fixed. Every rule is now an error with --max-warnings 0. eval and new Function are banned, and so is console.* in server code.
  • HTTP harness. A black-box harness runs against the built server with an allowlisted child environment, plus the first HTTP tests.
  • Logger. A redacting structured logger (roadmap C4).
  • Media tests. The media-parser tests now use real synthetic fixtures (they used to pass without asserting) and assert on them.
  • Auto-update. Split into two jobs. The untrusted job has no write token and hands over only the manifest files. The trusted job validates those files before any git command runs, and its App token is narrowed.
  • Required CI. ci.yml runs unit tests on Ubuntu and Windows, and a verify job runs typecheck, lint, build, migrations twice, and HTTP tests against Postgres.
  • Security tooling. Dependabot, CodeQL, dependency review, Scorecard and CODEOWNERS, with every action pinned to a verified SHA.

Local results: typecheck and lint are clean; npm test has 0 failures; build passes; test:http passes. This is the first CI run. Merge only when every required check is green.

🤖 Generated with Claude Code

EgerDev and others added 19 commits September 24, 2026 01:30
…, Windows anchors)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…thout migrations

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ript components

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…gest bookmarklet

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…nsole

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ples

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… build

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…rrow the App token

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…HTTP tests

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- dependabot: jose is no longer ignored. Its exact pin plus CODEOWNERS
  review controls bumps, and a JWT library must receive security PRs.
- workflow-policy: PACKAGE_CODE also matches pip3, python[3] -m pip,
  yarn, pnpm and bun. The write-permission rule is now a strict subset
  of the privileged-job rule, so it is merged into it.
- dependency-review: drop the checkout; the action reads the diff from
  the API.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The live test only observes the bind address and the database source,
so its name no longer claims VELO_*/TRUST_* are checked over HTTP. The
buildChildEnv unit test covers the full allowlist.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ailer rule

- W1 plan: tick Tasks 1-9 (98 steps); Task 10 stays open for the owner.
- Hand-off W2: fail-closed boot needs a pre-listen hook; move
  projectRoot/isMainModule before deleting with-app-env.mjs.
- Hand-off W7: document npm start's 0.0.0.0:3000 default vs dev
  127.0.0.1:8080.
- Task 10: merge_group note for codeql and dependency-review.
- Roadmap: the commit trailer names the model that executed the task.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

Comment thread scripts/workflow-policy.test.mjs Fixed
…ot ignore check

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants