Commit Graph
36 Commits
Author SHA1 Message Date
thePR0M3TH3ANandClaude Fable 5 5d0709f5f4 [ci] Fix baseline workflow YAML — literal block was terminated early [update-visual-baselines]
The multi-line git commit message inside the run block dropped below the
literal block's indentation, ending the block mid-command and failing the
whole workflow file at parse time (0s failure, no jobs). Use two -m flags on
one shell line instead. YAML now validated locally before push.

Token included so this push performs the regeneration.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01LHH3wPBsoruwCaJo8Rpf6a
2026-07-30 11:15:26 -04:00
thePR0M3TH3ANandClaude Fable 5 350feae907 [ci] Allow triggering baseline regeneration from unstable [update-visual-baselines]
workflow_dispatch only works for workflows on the default branch, which this
file will not reach until the next promotion. Gate the job on an explicit
[update-visual-baselines] commit-message token instead so it is dispatchable
from unstable now; the workflow's own commit omits the token, so it cannot
retrigger itself.

This commit carries the token, so pushing it performs the first regeneration.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01LHH3wPBsoruwCaJo8Rpf6a
2026-07-30 11:14:17 -04:00
thePR0M3TH3ANandClaude Fable 5 31be84ba82 [ci] Add a workflow to regenerate visual baselines on the CI runner
The visual-regression job pixel-compares tests/visual/baselines.json on
ubuntu-latest, but the committed baselines were captured on developer machines.
Chromium builds and font fallbacks differ between environments — the token
stack's "Inter"/"Fira Code" are not shipped or installed anywhere, so every
machine renders its own system fallback — and the kitchen-sink default-theme
diff drifted past MAX_DIFF_RATIO on CI while passing 13/13 locally. ci.yml
documents exactly this mismatch as the reason the job is quarantined from
blocking deploys.

The CI diff artifact confirms it: baseline and actual render identically except
for ghosted/offset text in the high-contrast lower half — font-metric drift,
not a design change. (The dark upper half diffs too little to trip the 0.2
pixelmatch threshold, which is why only the default theme fails.)

Fix the class of problem instead of the instance: capture baselines in the SAME
runner image, browser install and font stack that the comparison job uses.
workflow_dispatch only — regenerating baselines is an explicit decision made
when a visual change is intentional, never a side effect of a push. The
workflow re-runs the comparison against its own output before committing, so a
bad capture cannot land.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01LHH3wPBsoruwCaJo8Rpf6a
2026-07-30 11:11:14 -04:00
thePR0M3TH3ANandClaude Opus 4.8 676844edfc ci: bump upload-artifact→v7 and download-artifact→v8 for Node 24
The v5 line of these two actions still targets Node.js 20 (unlike
checkout/setup-node@v5, which are already on Node 24), so the deprecation
warning persisted. upload-artifact reaches Node 24 at v6+ and
download-artifact at v7+; move to the current latest (v7 / v8), which
share the same v4-generation artifact backend and pair correctly.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01DwbE3uTiFaKRNjx5vP2muV
2026-07-14 10:11:44 -04:00
thePR0M3TH3ANandClaude Opus 4.8 c35b60c539 ci: bump checkout/setup-node/upload+download-artifact v4 → v5
The v4 actions target Node.js 20, which GitHub now force-runs on Node 24
and flags as deprecated. Bump all four across every workflow to v5 (their
native Node-24 line) to clear the warning. Mechanical version-only change;
upload/download-artifact stay on matching majors as required.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01DwbE3uTiFaKRNjx5vP2muV
2026-07-14 10:09:42 -04:00
thePR0M3TH3ANandClaude Opus 4.8 bff716948d ci(nsite): cut a GitHub Release with the site archive on main pushes
Add a `release` job (main only, contents: write) that builds the archive
and publishes it as an immutable GitHub Release tagged
site-<date>-<shortsha>, marked --latest, with bitvid-site.zip attached.
This gives a stable download URL for the current production archive:
  https://github.com/PR0M3TH3AN/bitvid/releases/latest/download/bitvid-site.zip

Re-runs of the same commit refresh the asset instead of failing. The
Release holds only the public compiled dist/ (same as Vercel serves) and
no Nostr signing key — publishing to nsite stays a manual, client-signed
step. Per-branch artifact upload is unchanged. Docs updated.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01DwbE3uTiFaKRNjx5vP2muV
2026-07-14 09:35:50 -04:00
thePR0M3TH3ANandClaude Opus 4.8 10b93efa02 ci(nsite): build a downloadable site archive on every push
Add .github/workflows/nsite-archive.yml (push to any branch +
workflow_dispatch): npm ci + npm run build, then upload dist/ as an
artifact (bitvid-site-<branch>-<shortsha>, 30d retention). GitHub serves
it as a .zip with index.html at the root, ready for a manual nsite
publish. The workflow holds no signing key and publishes nothing.

Also add an `archive` npm script for the same output locally
(bitvid-site.zip, now gitignored), and land docs/nsite-mirror-plan.md
revised to the manual-publish + auto-archive model: sign client-side via
NIP-07 or local nsyte, never an nsec/nbunksec in CI. The prior CI-signing
workflow is retained as a labeled Phase-3 reference option.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01DwbE3uTiFaKRNjx5vP2muV
2026-07-14 09:29:41 -04:00
thePR0M3TH3ANandClaude Opus 4.8 73a06069ad ci: run visual regression in its own job (don't gate deploy on it)
The visual-regression step lived inside the build job, and deploy-cache-state
(the Cloudflare CDN cache-purge that makes new content visible) needs: build.
So an environment-sensitive pixel diff — CI's Chromium/font rendering differs
from the committed baseline (locally the baseline is byte-identical, so it's not
a content regression) — failed the build job and silently blocked every deploy.
The unstable.bitvid.network CDN was stuck on the 2026-06-17 build as a result.

Move the visual steps into a standalone visual-regression job so they still run
and report a failure, but no longer block the build job or the deploy. Real
lint/build/artifact failures still gate the deploy via build.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-20 13:16:11 -04:00
thePR0M3TH3AN 812bfb03d6 [ci] stabilize flaky e2e assertions and non-secret deploy checks 2026-02-23 09:21:15 -05:00
google-labs-jules[bot]andPR0M3TH3AN 7a8c738a09 fix(ci): install firefox in e2e-headless and fix admin list race condition
- Update .github/workflows/ci.yml to install firefox for e2e-headless job
- Update js/adminListStore.js to await nostrClient.initPromise if pool is not ready, preventing race conditions during app startup

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-22 19:05:27 +00:00
thePR0M3TH3AN 0cf1dc0f55 improved playright integration 2026-02-21 20:45:47 -05:00
google-labs-jules[bot]andPR0M3TH3AN 5c68bb9b36 ci: fix build failure by removing microsoft-prod apt source
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 18:04:41 +00:00
google-labs-jules[bot]andPR0M3TH3AN 3571b52b13 fix(ci): unskip visual tests and align node versions
- Unskip `mobile sidebar shares desktop rail behavior` in `tests/visual/overlay-layers.spec.ts`.
- Enable visibility check in `tests/visual/moderation.spec.ts` (removed TODO).
- Update `daily-design-system-audit.yml` and `agent-pr-review.yml` to use Node.js 22.
- Set `fetch-depth: 0` in `ci.yml` build job to ensure `sw-compat` lint check runs.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-11 22:41:18 +00:00
google-labs-jules[bot]andPR0M3TH3AN 7c462693a5 fix(ci): authenticate git fetch upstream with GITHUB_TOKEN
Explicitly injects the GITHUB_TOKEN into the upstream remote URL in the agent-pr-review workflow. This prevents authentication failures when fetching the upstream repository in CI environments where plain HTTPS URLs trigger interactive credential prompts.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-11 15:26:50 +00:00
thePR0M3TH3AN 9992fc3acb [ci] verify deployed index artifact and enforce release checks 2026-02-10 17:20:42 -05:00
thePR0M3TH3AN 6fce210044 [ci] verify dist deploy artifact and force HTML cache purge 2026-02-10 16:52:05 -05:00
thePR0M3TH3AN c36a240394 Add cache-safe deploy smoke checks for unstable releases 2026-02-10 01:16:17 -05:00
thePR0M3TH3AN 492bc61a6b [ci] add CAS-based unstable cache-state deploy flow 2026-02-10 01:07:34 -05:00
thePR0M3TH3AN 17f7282a86 [ci] add dist hash diffing and targeted cache purge flow 2026-02-10 01:00:42 -05:00
Claude 696a30051b Fix lint failures, console.* convention violations, and CI Node version mismatch
- Add docs/capacitor-native-app-plan.md to hex-lint ignore list (code examples
  naturally reference hex colors in Capacitor config)
- Replace direct console.error/console.log calls with logger utility in
  historyView.js, profileCache.js, EventDetailsModal.js, ZapInterface.js,
  and notificationController.js
- Update CI workflow from Node 20 to Node 22 to match package.json engines

https://claude.ai/code/session_01LzErpH9FNw4hAPsjoYb1v9
2026-02-10 02:35:24 +00:00
google-labs-jules[bot]andPR0M3TH3AN 1726d27c77 feat: Automate Daily Design System Audit
- Added .github/workflows/daily-design-system-audit.yml
- Updated scripts/daily-design-system-audit.mjs with auto-fix support
- Implemented hex color and simple palette token replacements

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-27 16:05:53 +00:00
google-labs-jules[bot]andPR0M3TH3AN 15a196f69b fix(ci): robustly verify upstream branch in PR review workflow
Replaces `git rev-parse` with `git ls-remote` to verify the existence of the upstream base branch before attempting to fetch and diff. This prevents workflow failures when the PR targets a branch that does not exist on the upstream remote (e.g. `unstable` or other feature branches), gracefully skipping the diff step with a warning instead.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-27 03:41:10 +00:00
google-labs-jules[bot]andPR0M3TH3AN c6cc797f80 fix(ci): robust upstream fetch in agent pr review
Updates the `agent-pr-review.yml` workflow to prevent failures when calculating diffs against the upstream repository.

Changes:
- Reverts `git fetch` to a full fetch to ensure all remote-tracking branches (like `refs/remotes/upstream/unstable`) are correctly updated in the local environment.
- Adds a mandatory `Verify upstream branch and diff` step that checks for the existence of the target base branch (`upstream/${{ github.base_ref }}`) using `git rev-parse`.
- Performs a dry-run `git diff` to confirm connectivity before running the main review script.
- Ensures the job fails explicitly with a clear error message if the upstream branch is missing, rather than crashing later with an obscure exit code 1.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-27 03:33:44 +00:00
google-labs-jules[bot]andPR0M3TH3AN fbd4c217c2 fix(ci): fix upstream fetch depth in agent review (agent)
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-23 16:35:13 +00:00
thePR0M3TH3AN cecf4c0779 Add concurrency for agent PR review workflow 2026-01-23 01:46:41 -05:00
thePR0M3TH3AN 5bcb71789e Add workflow to cancel stuck runs 2026-01-23 01:42:43 -05:00
thePR0M3TH3AN 4cdba26333 Add CI job timeouts 2026-01-23 01:41:00 -05:00
thePR0M3TH3AN 91e7bd9f0a Add CI workflow concurrency 2026-01-23 01:39:16 -05:00
google-labs-jules[bot] 8126403b10 feat(ci): add automated agent PR review script and workflow
- Add `scripts/automated-pr-review.mjs` to run format, lint, tests, and security checks.
- Add `.github/workflows/agent-pr-review.yml` to trigger the review on PRs.
- Script flags sensitive file changes (crypto/storage) and posts comments.
- Script attempts to commit formatting micro-fixes if permissions allow.
2026-01-22 23:12:45 +00:00
thePR0M3TH3AN 054fca8433 Add unit test sharding and timeouts 2026-01-22 09:58:18 -05:00
thePR0M3TH3AN 89e82778d6 Add DM test suites and headless e2e CI 2026-01-19 13:43:13 -05:00
thePR0M3TH3AN 1c13122ba0 Ignore generated Tailwind CSS and update build commands 2025-11-03 11:36:48 -05:00
thePR0M3TH3AN 2d28bfaa51 Install ripgrep in CI workflow 2025-10-19 13:14:44 -04:00
thePR0M3TH3AN 693bd2bef2 Add inline style guard to lint suite 2025-10-13 16:51:06 -04:00
thePR0M3TH3AN 9c6174cc1f Add consolidated CI pipeline with cached deps and tests 2025-10-11 15:53:05 -04:00
thePR0M3TH3AN 4460865efa Store visual baselines as text assets 2025-10-11 14:55:00 -04:00