Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .eslintignore

This file was deleted.

73 changes: 0 additions & 73 deletions .eslintrc.js

This file was deleted.

7 changes: 2 additions & 5 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,7 @@ jobs:
run: pnpm prettier
- name: Unit & Integration tests
run: pnpm test
- name: Smoke & Acceptance tests
- name: E2E tests
run: |
pnpm build-storybook --quiet
pnpm exec playwright install --with-deps
npx concurrently -k -s first -n "SB,TEST" -c "magenta,blue" \
"npx http-server storybook-static --port 6006 --silent" \
"npx wait-on tcp:127.0.0.1:6006 && pnpm test-storybook"
pnpm e2e:headless
39 changes: 39 additions & 0 deletions .github/workflows/lighthouse.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Lighthouse CI

on:
pull_request:
workflow_dispatch:

jobs:
lighthouse:
name: Lighthouse Audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- run: echo "node_version=$(cat .github/nodejs.version)" >> $GITHUB_ENV
- name: "use node ${{ env.node_version }}"
uses: actions/setup-node@v4
with:
node-version: "${{ env.node_version }}"
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm build
- name: Start server
run: |
npx next start -p 8080 &
npx wait-on tcp:127.0.0.1:8080
- name: Audit URLs
uses: treosh/lighthouse-ci-action@v12
with:
urls: |
http://127.0.0.1:8080/
http://127.0.0.1:8080/about
http://127.0.0.1:8080/blog
http://127.0.0.1:8080/projects
http://127.0.0.1:8080/contact
http://127.0.0.1:8080/now
uploadArtifacts: true
temporaryPublicStorage: true
6 changes: 6 additions & 0 deletions .github/workflows/playwright.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,14 @@ jobs:
node-version: "${{ env.node_version }}"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Cache Playwright browsers
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
key: playwright-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
- name: Install Playwright Browsers
run: pnpm exec playwright install --with-deps
timeout-minutes: 5
- name: Run Playwright tests
run: pnpm exec playwright test --project=chromium
- uses: actions/upload-artifact@v4
Expand Down
36 changes: 27 additions & 9 deletions .omo/boulder.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"schema_version": 2,
"active_work_id": "2026-portfolio-overhaul-d227bbc8",
"active_work_id": "roman-redesign-4df0a13a",
"works": {
"2026-portfolio-overhaul-d227bbc8": {
"work_id": "2026-portfolio-overhaul-d227bbc8",
Expand All @@ -19,21 +19,39 @@
"task_sessions": {},
"ended_at": "2026-07-20T02:39:58.501Z",
"elapsed_ms": 55485499
},
"roman-redesign-4df0a13a": {
"work_id": "roman-redesign-4df0a13a",
"active_plan": "/home/tom/Nextcloud/notes/03 Projects/20XX TomSegbers.de - Personal Website/TomSegbers.de/.omo/plans/roman-redesign.md",
"plan_name": "roman-redesign",
"status": "completed",
"started_at": "2026-07-22T13:30:13.497Z",
"updated_at": "2026-07-23T14:26:59.773Z",
"session_ids": [
"opencode:ses_075faf792ffeug0WEFAbFuiFxu"
],
"session_origins": {
"opencode:ses_075faf792ffeug0WEFAbFuiFxu": "direct"
},
"agent": "atlas",
"task_sessions": {},
"ended_at": "2026-07-23T14:26:59.773Z",
"elapsed_ms": 89806276
}
},
"active_plan": "/home/tom/Nextcloud/notes/03 Projects/20XX TomSegbers.de - Personal Website/TomSegbers.de/.omo/plans/2026-portfolio-overhaul.md",
"started_at": "2026-07-19T11:15:13.002Z",
"active_plan": "/home/tom/Nextcloud/notes/03 Projects/20XX TomSegbers.de - Personal Website/TomSegbers.de/.omo/plans/roman-redesign.md",
"started_at": "2026-07-22T13:30:13.497Z",
"status": "completed",
"updated_at": "2026-07-20T02:39:58.501Z",
"updated_at": "2026-07-23T14:26:59.773Z",
"session_ids": [
"opencode:ses_085e9a666ffeAVUWZS18j1H5Sb"
"opencode:ses_075faf792ffeug0WEFAbFuiFxu"
],
"session_origins": {
"opencode:ses_085e9a666ffeAVUWZS18j1H5Sb": "direct"
"opencode:ses_075faf792ffeug0WEFAbFuiFxu": "direct"
},
"plan_name": "2026-portfolio-overhaul",
"plan_name": "roman-redesign",
"task_sessions": {},
"agent": "atlas",
"ended_at": "2026-07-20T02:39:58.501Z",
"elapsed_ms": 55485499
"ended_at": "2026-07-23T14:26:59.773Z",
"elapsed_ms": 89806276
}
30 changes: 30 additions & 0 deletions .omo/boulders/task-2-peak-website.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# T2 — Canonical URL, Button, ProjectTeaser cleanup

- Status: in_progress
- Plan: `.omo/plans/peak-website.md` todo 2
- Dependencies: T1 dependency declared by plan; package changes already present in worktree and left untouched
- Owned files:
- `app/blog/entry/[slug]/page.tsx`
- `app/projects/entry/[slug]/page.tsx`
- `app/page.tsx`
- `app/projects/page.tsx`
- `components/ProjectTeaser/ProjectTeaser.tsx`
- `components/ProjectTeaser/ProjectTeaser.test.tsx`
- `public/img/Tom_Segbers_Frontal.jpg`
- `.omo/notepads/roman-redesign/learnings.md`
- `.omo/notepads/peak-website/learnings.md`
- `.omo/evidence/task-2-peak-website.txt`

## Steps

- [x] Inspect current files and resolve stale line references
- [x] Fix detail-page canonical URLs
- [x] Replace homepage inline CTAs with `Button`
- [x] Remove dead `ProjectTeaser.imageUrl` prop and all callers (including test fixture and Storybook story)
- [x] Apply readonly to re-touched `ProjectProps` interface
- [x] Delete duplicate JPEG
- [x] Append learnings
- [x] Run diagnostics — `pnpm lint` exit 0, `pnpm test` exit 0 (84 tests), `pnpm build` exit 0 (38 pages)
- [x] Finalize evidence
- [ ] Commit with conventional commit message

23 changes: 23 additions & 0 deletions .omo/boulders/task-7-visual-closure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Task 7 visual closure boulder

- Status: completed
- Owner: Sisyphus-Junior
- Scope: replace failed V1 marquee edge-guard strategy with CSS-only whole-card project collection; preserve existing font/token work, descendant Motion settlement, configurable production audit URL, and two-run raw evidence contracts.
- Files locked: released.
- Dependencies: Visual QA oracle PASS (bg_6e19b9c4 PASS HIGH, bg_cf42786d PASS HIGH) — both returned no blocking findings.
- Evidence: `.omo/evidence/task-7-collection-replacement.txt` — all gates green.
- Root cause: any continuously translated fixed-width track crosses viewport boundaries between cards. Opaque guards can conceal fragments but cannot make underlying title/body geometry whole.

## Verification results (2026-07-23)

- Prettier: PASS
- ESLint: PASS
- Jest: 91/91 PASS
- Build: 47/47 static pages, no errors
- Axe audit: 0 contrast violations at 375/1280 light/dark; all cards fullyInside: true
- E2E run 1: 43/43 PASS (32.1s)
- E2E run 2: 43/43 PASS (27.0s)
- Screenshots: fresh at `.omo/evidence/task-7-production-{375,1280}-{light,dark}.png`
- Visual QA Pass A (design-system): PASS, HIGH confidence, no blocking findings
- Visual QA Pass B (visual fidelity): PASS, HIGH confidence, no blocking findings
- Server cleanup: port 3199 process killed via trap, verified no listener remains
Loading
Loading