Skip to content

docs: retire Docker, Nginx, and finished plans; document Vercel hosting - #74

Merged
Programcode merged 2 commits into
mainfrom
claude/vibrant-cerf-qfe0bj
Sep 30, 2026
Merged

Programcode merged 2 commits into
mainfrom
claude/vibrant-cerf-qfe0bj

Conversation

@Programcode

@Programcode Programcode commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

Outcome

The docs now match how DebateLab runs today: Vercel hosting, Current Debate, a hidden Workspace, and a clear rule for when GitHub Actions is blocked by billing. All plans now live in plans/, and .hermes/ is gone. AGENTS.md and README.md were the priority.

Removed

  • Dockerfile, nginx.conf, .dockerignore, and the Nginx assertions in src/test/vercel-deployment-config.test.ts. Every vercel.json assertion stays.
  • Finished plans and the Hungarian parity plan.
  • docs/performance/, docs/evidence/, docs/superpowers/, docs/pricing-snapshots/, docs/decisions/, the three 2026-07-05 SEO logs, security/scans/, and .audit/. That's about 12 MB, mostly videos and JSON traces. Git history keeps all of it.

Moved

  • The two Current Debate plans and the two on-hold Workspace plans moved from .hermes/plans/ to plans/, and .hermes/ is deleted. References inside those plans and across the docs point to the new paths.

CI change

deploy.yml is renamed from "Build and Push Docker Image" to Quality, since #73 already removed the Docker job. staging-e2e.yml starts off that workflow's name, so its workflow_run trigger and error text are updated too. The job names (quality, database-tests, browser-tests) are unchanged, so the required checks on main still match.

Rewritten

  • README.md is now a short overview: features, quick start, checks, how the pieces fit, the repository map, and doc links.
  • AGENTS.md now covers:
    • Vercel hosting, and that a merge to main deploys the frontend
    • the Current Debate store
    • the hidden Workspace
    • the billing rule: Actions jobs that fail within 2 to 5 seconds with no logs never ran, so run the same checks locally and record the results in the PR
    • plans/ as the only plan location
  • docs/operations.md replaces the Docker/Nginx section with a Vercel hosting section. It also gains a section on what to do when Actions can't run, and Vercel rollback steps.
  • docs/architecture.md, docs/testing.md, docs/development.md, supabase/README.md and docs/README.md get targeted fixes.
  • plans/README.md now lists what's in progress (PR 2), the backlog, what's on hold, and what shipped, with PR numbers.
  • scripts/check-docs.mjs no longer excludes the deleted folders, and its test is updated to match.

Verification (local)

At dfb8a62:

  • npm run docs:check, npm run lint and npm run typecheck passed.
  • npm test -- --coverage: 108 files and 1,074 tests passed.
  • npm run build passed.

At 6ccec31:

  • npm run docs:check and npm run lint passed.
  • The docs-checker and Vercel config tests passed (45 tests).
  • A grep for .hermes references found only the home-directory token path in scripts/gsc_submit.py, which is unrelated.

Not run: Playwright E2E, the database gate, and GitHub Actions (blocked by billing). No runtime code changed.

🤖 Generated with Claude Code

https://claude.ai/code/session_01L6qeHSDkqzoR9piKnn9XW3

Summary by CodeRabbit

  • Documentation
    • Updated product, setup, and operations guides to reflect current hosting and deployment practices.
    • Clarified that the Collaborative Workspace is hidden and on hold.
    • Reorganized planning references and removed several historical and outdated reference documents.
  • Maintenance
    • Updated the quality-check workflow naming and related staging workflow references.
    • Removed Docker and Nginx deployment configuration. Frontend hosting is documented as handled by Vercel, separately from Supabase changes.

Production runs on Vercel, so the Dockerfile, nginx.conf, and .dockerignore
go, along with the Nginx assertions in the Vercel config test. The quality
workflow is renamed from "Build and Push Docker Image" to "Quality", and the
staging workflow's trigger follows the new name.

Removes plans that have shipped, old evidence media and traces, SEO work
logs, pricing snapshots, the old security scan, and .audit checklists. The
Current Debate plans and the on-hold Workspace plans stay in .hermes/plans.

Rewrites README as a short overview and updates AGENTS.md, the docs index,
architecture, operations, testing, development, and the Supabase README for
Vercel hosting, Current Debate, hidden Workspace, and local verification
while GitHub Actions is unavailable. plans/README.md now lists in-progress,
backlog, on-hold, and shipped work.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L6qeHSDkqzoR9piKnn9XW3
Copilot AI lite review requested due to automatic review settings September 27, 2026 19:56
@vercel

vercel Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
debate-navigator Ready Ready Preview Sep 27, 2026 7:59pm UTC

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Programcode has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@coderabbitai

coderabbitai Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Free

Run ID: c7bc57fe-dee8-422b-a915-24fe5e430552

📥 Commits

Reviewing files that changed from the base of the PR and between 0bda733 and 6ccec31.

⛔ Files ignored due to path filters (22)
  • .audit/agent-verification-loop.tsv is excluded by !**/*.tsv
  • .audit/animation-polish.tsv is excluded by !**/*.tsv
  • .audit/auth-email-and-demo-code-sign-in.tsv is excluded by !**/*.tsv
  • .audit/crossfire.tsv is excluded by !**/*.tsv
  • .audit/model-cost-accounting.tsv is excluded by !**/*.tsv
  • docs/evidence/retained-ui-bugs-before-after.mp4 is excluded by !**/*.mp4
  • docs/performance/smooth-navigation-baseline/desktop-delayed-filmstrip.png is excluded by !**/*.png
  • docs/performance/smooth-navigation-baseline/desktop-delayed.webm is excluded by !**/*.webm
  • docs/performance/smooth-navigation-baseline/pixel-5-delayed-filmstrip.png is excluded by !**/*.png
  • docs/performance/smooth-navigation-baseline/pixel-5-delayed.webm is excluded by !**/*.webm
  • docs/performance/smooth-navigation-final/desktop-delayed-filmstrip.png is excluded by !**/*.png
  • docs/performance/smooth-navigation-final/desktop-delayed.webm is excluded by !**/*.webm
  • docs/performance/smooth-navigation-final/pixel-5-delayed-filmstrip.png is excluded by !**/*.png
  • docs/performance/smooth-navigation-final/pixel-5-delayed.webm is excluded by !**/*.webm
  • docs/performance/startup-navigation-2026-09-19/after-desktop-filmstrip.png is excluded by !**/*.png
  • docs/performance/startup-navigation-2026-09-19/after-desktop.webm is excluded by !**/*.webm
  • docs/performance/startup-navigation-2026-09-19/after-mobile-filmstrip.png is excluded by !**/*.png
  • docs/performance/startup-navigation-2026-09-19/after-mobile.webm is excluded by !**/*.webm
  • docs/performance/startup-navigation-2026-09-19/before-desktop-filmstrip.png is excluded by !**/*.png
  • docs/performance/startup-navigation-2026-09-19/before-desktop.webm is excluded by !**/*.webm
  • docs/performance/startup-navigation-2026-09-19/before-mobile-filmstrip.png is excluded by !**/*.png
  • docs/performance/startup-navigation-2026-09-19/before-mobile.webm is excluded by !**/*.webm
📒 Files selected for processing (57)
  • .dockerignore
  • .github/workflows/deploy.yml
  • .github/workflows/staging-e2e.yml
  • .hermes/plans/2026-09-21_081509-hungarian-parity.md
  • AGENTS.md
  • Dockerfile
  • README.md
  • docs/README.md
  • docs/architecture.md
  • docs/decisions/001-agent-friendly-documentation.md
  • docs/development.md
  • docs/operations.md
  • docs/performance/performance-playbook.md
  • docs/performance/smooth-navigation-baseline/README.md
  • docs/performance/smooth-navigation-baseline/run-1.json
  • docs/performance/smooth-navigation-baseline/run-2.json
  • docs/performance/smooth-navigation-baseline/task-10-after-final.json
  • docs/performance/smooth-navigation-baseline/task-10-before.json
  • docs/performance/smooth-navigation-final/README.md
  • docs/performance/smooth-navigation-final/final-1.json
  • docs/performance/smooth-navigation-final/final-3.json
  • docs/performance/smooth-navigation-final/task-11-audit.json
  • docs/performance/startup-navigation-2026-09-19/README.md
  • docs/pricing-snapshots/anthropic.md
  • docs/pricing-snapshots/google-gemini.html
  • docs/pricing-snapshots/metadata.json
  • docs/pricing-snapshots/openai.md
  • docs/seo-authority-opportunities-2026-07-05.md
  • docs/seo-debatelab-2026-07-05.md
  • docs/seo-escalation-2026-07-05.md
  • docs/superpowers/plans/2026-09-06-documentation-system.md
  • docs/superpowers/plans/2026-09-21-jev-decisions.md
  • docs/superpowers/specs/2026-09-06-documentation-system-design.md
  • docs/superpowers/specs/2026-09-21-jev-decisions-design.md
  • docs/testing.md
  • nginx.conf
  • plans/2026-09-20_131317-debate-workspace.md
  • plans/2026-09-21-debate-workspace-no-bs.md
  • plans/2026-09-25_074255-current-debate-foundation.md
  • plans/2026-09-25_074255-debate-ai-quality-modules.md
  • plans/README.md
  • plans/auth-email-and-demo-code-sign-in.plan
  • plans/bugs.md
  • plans/control-honesty.md
  • plans/model-cost-accounting.md
  • plans/pr11-salvage.md
  • plans/prompt-eval-sheet.md
  • plans/rate-limit-ui-cleanup.md
  • plans/startup-navigation-performance.md
  • plans/supabase-staging.md
  • plans/system-prompt-improvement.md
  • scripts/check-docs.mjs
  • security/scans/2026-08-19-codex-security-06d93a47/README.md
  • security/scans/2026-08-19-codex-security-06d93a47/findings.json
  • src/test/docs/check-docs.test.ts
  • src/test/vercel-deployment-config.test.ts
  • supabase/README.md
💤 Files with no reviewable changes (33)
  • .dockerignore
  • plans/startup-navigation-performance.md
  • docs/performance/smooth-navigation-baseline/README.md
  • Dockerfile
  • plans/model-cost-accounting.md
  • docs/pricing-snapshots/anthropic.md
  • docs/pricing-snapshots/openai.md
  • docs/performance/smooth-navigation-final/README.md
  • docs/decisions/001-agent-friendly-documentation.md
  • docs/pricing-snapshots/metadata.json
  • plans/bugs.md
  • docs/superpowers/specs/2026-09-06-documentation-system-design.md
  • plans/prompt-eval-sheet.md
  • plans/pr11-salvage.md
  • docs/superpowers/plans/2026-09-21-jev-decisions.md
  • security/scans/2026-08-19-codex-security-06d93a47/README.md
  • plans/auth-email-and-demo-code-sign-in.plan
  • docs/performance/performance-playbook.md
  • docs/seo-escalation-2026-07-05.md
  • src/test/docs/check-docs.test.ts
  • docs/performance/startup-navigation-2026-09-19/README.md
  • plans/system-prompt-improvement.md
  • docs/superpowers/plans/2026-09-06-documentation-system.md
  • nginx.conf
  • plans/supabase-staging.md
  • docs/seo-authority-opportunities-2026-07-05.md
  • docs/seo-debatelab-2026-07-05.md
  • plans/control-honesty.md
  • plans/rate-limit-ui-cleanup.md
  • src/test/vercel-deployment-config.test.ts
  • security/scans/2026-08-19-codex-security-06d93a47/findings.json
  • .hermes/plans/2026-09-21_081509-hungarian-parity.md
  • docs/superpowers/specs/2026-09-21-jev-decisions-design.md

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The pull request removes Docker and Nginx packaging, updates workflow and hosting documentation to describe Vercel, revises repository and plan guidance, and deletes selected implementation plans and historical records.

Changes

Hosting and repository documentation

Layer / File(s) Summary
Hosting and workflow transition
.dockerignore, .github/workflows/*, Dockerfile, nginx.conf, AGENTS.md, docs/README.md, docs/operations.md, docs/architecture.md, docs/testing.md, scripts/check-docs.mjs, src/test/*
The Docker and Nginx files are removed. The workflow is named Quality, and the staging workflow references that name. Operations and deployment guidance now describes Vercel and separates frontend deployment from Supabase migrations and Edge Function deployments. Related tests no longer check Nginx configuration.
Repository and system guides
README.md, AGENTS.md, docs/README.md, docs/architecture.md, docs/development.md, supabase/README.md
The README and system guides update descriptions of Current Debate, the hidden Collaborative Workspace, deployment, and provider-reported usage and cost. Setup, verification, security, and Supabase responsibility descriptions are also revised.
Documentation checks and plan index
docs/README.md, plans/README.md, plans/*.md, scripts/check-docs.mjs, src/test/docs/check-docs.test.ts
The checker no longer excludes pricing snapshots, security scans, and superpowers documents. Documentation and plan indexes and three plan references are updated.
Removed plans and specifications
.hermes/plans/*, docs/superpowers/*, plans/*
Plans and specifications for proposed product, AI, authentication, performance, staging, and documentation work are deleted.
Removed historical records
docs/decisions/*, docs/performance/*, docs/pricing-snapshots/*, docs/seo-*.md, security/scans/*
A decision record, performance evidence, pricing snapshots, SEO records, and a historical security scan report are deleted.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Security Architecture Review

Security architecture risk: 🔵 Low · up to 6ccec

No new security exposure was identified. The hosting configuration and protected staging conditions appear preserved, but deployed behavior during failure or rollback was not directly verified.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — The externally exposed surface examined here is the Vercel frontend response. The privileged staging workflow remains restricted to qualifying main-branch execution and its staging environment; the PR does not evidence an expansion of either scope.

Trust Boundaries and Controls

  • observed — The staging workflow checks the upstream run’s success, push event, and main branch before its protected job; manual dispatch also requires main and verifies a successful Quality push run for the selected commit.

Resilience and Maintainability Implications

  • inferred — Configuration assertions support the source-level response-header contract, but they do not establish which headers a failed or rolled-back deployment actually serves.

Hardening Proposals

  • proposed — As an additional rollback check, verify the live frontend’s CSP and other expected response headers after promoting a known-good deployment.

Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Essentials by visiting https://app.coderabbit.ai/settings/billing.

Comment @coderabbitai help to get the list of available commands.

Moves the four kept plans from .hermes/plans/ into plans/, deletes .hermes,
and points every reference at the new location. The docs checker no longer
needs a separate .hermes exclusion.

AGENTS.md and the operations guide now say that Actions jobs failing within
2 to 5 seconds with no logs never ran because of billing, and that the same
checks must then run locally with the results recorded in the PR.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L6qeHSDkqzoR9piKnn9XW3

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Programcode has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@Programcode

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown
Owner Author

Local verification at 6ccec31. GitHub Actions didn't run: every job failed in 2–3 seconds with no logs, which is the billing block.

  • docs:check, lint, and typecheck passed.
  • npm test -- --coverage: 108 files, 1,073 tests passed.
  • test:collaboration: 30 tests passed.
  • npm run build passed.
  • test:e2e on desktop and mobile Chromium: 226 passed, 6 skipped (the suite skips those itself).
  • test:edge: 236 passed, 4 failed, all in workspace-invites/index_test.ts. This is not caused by this PR; the same 4 fail on main at 0bda733. The fixtures hard-code expires_at: "2026-09-27T12:00:00.000Z", and the handler rejects expiresAt <= Date.now() (index.ts:356). Since noon UTC today, those invites count as expired and the email is never sent. It's a date time bomb in the test, not a code bug. No fix exists yet. Proposed patch, which makes all 15 tests pass on main:
    // after `const inviteId = ...`
    // Pending invites must still be live when the handler checks them against the clock.
    const liveExpiresAt = new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toISOString();
    Then replace the six expires_at: "2026-09-27T12:00:00.000Z" fixtures with expires_at: liveExpiresAt. The deliberately expired 2020-01-01 fixture stays as it is.
  • test:sw fails at the "Unable to load this page" offline step, identically on main. This container only has Chromium build 1194, while Playwright 1.62.1 expects build 1234, so this is most likely the browser here rather than the code.
  • The database gate didn't run: the Supabase CLI isn't available in this environment.

Generated by Claude Code

@Programcode
Programcode merged commit 778a882 into main Sep 30, 2026
5 of 8 checks passed

This branch was successfully deployed

1 active deployment
Preview — 6ccec315 Deployed Sep 27, 2026 by vercel[bot]
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.

3 participants