Commit Graph
885 Commits
Author SHA1 Message Date
Lucas Berger e153f7c355 docs(15-02): complete plan 02 summary — changes job + gate aggregate 2026-06-12 10:53:22 -04:00
Lucas Berger 547b12ca4a feat(15-02): add always-running gate aggregate job (Gitea-safe per-job result checks)
- gate job needs [fast-checks, changes, api, harness] with if: always()
- gate fails (exit 1) when fast-checks != success
- gate accepts success OR skipped for api and harness, fails on any other result
- uses individual needs.X.result checks (not wildcard) — Gitea 1.26.2 bug #31007
- once merged, emits CI / gate commit-status required by Plan 03 branch-protection update
2026-06-12 10:52:18 -04:00
Lucas Berger 72604385bc feat(15-02): add changes job and gate api/harness on code output
- insert changes job (dorny/paths-filter@v4) before fast-checks
- changes job: permissions pull-requests:read, outputs code, no checkout
- code filter lists positive patterns: **/*.ts, apps/**, pnpm-lock.yaml, Dockerfile, etc.
- api job: needs [changes] + if combined with needs.changes.outputs.code == 'true'
- harness job: same needs/if pattern as api
- services, env, and step bodies unchanged in both heavy jobs
2026-06-12 10:51:20 -04:00
Lucas Berger 20ebd90554 docs(phase-15): update tracking after wave 1 2026-06-12 10:49:12 -04:00
Lucas Berger cd6be1b9c3 chore: merge executor worktree (worktree-agent-ad1b2de59871ef5b9) 2026-06-12 10:47:56 -04:00
Lucas Berger 4c5efb0604 docs(15-01): complete markdown lint gate plan — SUMMARY.md 2026-06-12 10:47:17 -04:00
Lucas Berger 46bea03757 feat(15-01): fix 13 markdown violations + wire md:lint to fast-checks CI step
- Fix MD040 (11 bare fences): add language tags (text/bash) across 7 files
- Fix MD031 (2 violations): add blank lines around fence in GETTING-STARTED.md
- Wire 'Markdown lint' step to fast-checks job (after Format check, before Typecheck)
- Reformat .markdownlint-cli2.jsonc per Prettier (trailing commas in JSONC)
- pnpm md:lint exits 0; pnpm format:check exits 0; gate can fail on bare fence (verified)
2026-06-12 10:46:01 -04:00
Lucas Berger adb7641c19 feat(15-01): add markdownlint-cli2 + md:lint script + root config
- Install markdownlint-cli2@0.22.1 as root workspace devDependency
- Add md:lint script (no glob args — globs/ignores live in config file)
- Create .markdownlint-cli2.jsonc with prettier preset + content rules
- Enable MD001/MD024/MD040/MD031/MD051/MD052; disable MD041/MD034/MD036
- Glob: docs/**/*.md, *.md, apps/**/*.md; ignores .planning/** and node_modules
2026-06-12 10:42:52 -04:00
Lucas Berger 4728c41539 docs(phase-15): mark phase execution started 2026-06-12 10:40:07 -04:00
Lucas Berger c687efce27 docs(15): record planning complete + roadmap wave annotations 2026-06-12 10:30:50 -04:00
Lucas Berger e19d4736c7 docs(15): create phase plan — doc-only CI skip + markdown lint
3 plans across 3 waves:
- 15-01: markdownlint-cli2 config/script/step + fix 13 baseline violations (SC-4)
- 15-02: ci.yml changes job + conditional api/harness + always-running gate (SC-1/2, SC-3 YAML)
- 15-03: operator branch-protection checkpoint + publish.yml comment (SC-3)
2026-06-12 10:28:56 -04:00
Lucas Berger 899528eeb3 docs(phase-15): add pattern map 2026-06-12 10:22:37 -04:00
Lucas Berger 18cf62b702 docs(phase-15): add validation strategy 2026-06-12 10:19:08 -04:00
Lucas Berger e84911de10 docs(15): research phase - doc-only CI skip + markdown lint 2026-06-12 10:17:53 -04:00
Lucas Berger 23fb238443 docs(roadmap): add markdown linting to Phase 15 scope
Publish / publish (push) Successful in 6s
2026-06-12 09:52:34 -04:00
Lucas Berger 300a07ab4b docs: review backlog — promoted 999.17 to Phase 15, removed 6 stale promoted stubs
Publish / publish (push) Successful in 7s
2026-06-12 09:47:12 -04:00
luckberg 2a209080a9 Merge pull request 'Phase 14: desktop e2e coverage (add blocking Desktop Chrome Playwright gate)' (#10) from gsd/phase-14-desktop-e2e-coverage into main
Publish / publish (push) Successful in 19s
Reviewed-on: #10
2026-06-12 09:32:26 -04:00
luckberg 4607693a71 Merge branch 'main' into gsd/phase-14-desktop-e2e-coverage
CI / fast-checks (pull_request) Successful in 1m33s
CI / api (pull_request) Successful in 59s
CI / harness (pull_request) Successful in 3m55s
2026-06-12 09:25:47 -04:00
Lucas Berger cf48fa8e1b docs(phase-14): complete phase execution
CI / fast-checks (pull_request) Successful in 1m20s
CI / api (pull_request) Successful in 57s
CI / harness (pull_request) Successful in 3m56s
2026-06-12 09:10:18 -04:00
Lucas Berger f9fc7bbda2 docs(14): add code review report 2026-06-12 09:07:20 -04:00
luckberg 75760e9d7d Merge pull request 'docs: refresh CI + lint/format docs (Phase 8 + Phase 13)' (#9) from gsd/docs-ci-lint-refresh into main
Publish / publish (push) Successful in 7s
Reviewed-on: #9
2026-06-12 08:54:16 -04:00
Lucas Berger f75bc4239f style(14-01): apply prettier formatting to layout.spec.ts for CI format:check gate
CI / fast-checks (pull_request) Successful in 1m22s
CI / api (pull_request) Successful in 59s
CI / harness (pull_request) Successful in 3m58s
2026-06-12 08:31:33 -04:00
Lucas Berger 214e59d6e2 docs(phase-14): update tracking after wave 1 2026-06-12 08:27:39 -04:00
Lucas Berger 1c7775a022 chore: merge executor worktree (worktree-agent-aaafe3c94f936d618) 2026-06-12 08:25:19 -04:00
Lucas Berger 492adbc8b3 docs(14-01): complete desktop e2e coverage plan
- 85 passed, 5 skipped, 0 failed across iphone + pixel + desktop
- SC-1/SC-2/SC-3 all satisfied
2026-06-12 08:24:31 -04:00
Lucas Berger bfc49d199d chore(14-01): update spec headers + README for desktop profile, cosmetic CI step rename
- Updated calendar.spec.ts header to list all three profiles (iphone/pixel/desktop)
- Updated lists.spec.ts header to list all three profiles (iphone/pixel/desktop)
- Updated e2e/README.md preamble to add 'Desktop Chrome (1280x720)'
- Added --project=desktop example to README run-commands block
- Updated README full-suite command comment to name all three profiles
- Cosmetic: ci.yml step-name and comment updated to mention desktop (no plumbing change)
- Full suite verified: 85 passed, 5 skipped (3 desktop geometry + 2 parity guards), 0 failed
2026-06-12 08:23:10 -04:00
Lucas Berger 29035999ea feat(14-01): desktop-skip three mobile-only layout assertions, add D-04 parity
- Added test.skip(testInfo.project.name === 'desktop') to the two safe-area-inset
  BottomTabBar in-viewport tests (BottomTabBar returns null at >=768px on desktop)
- Added test.skip(testInfo.project.name === 'desktop') to the 56x56 FAB geometry test
  (on desktop 'New Event' resolves to the toolbar button, not the 56px FAB)
- Added desktop-only D-04 parity test asserting 'New Event' toolbar button height >=44px
  guarded by test.skip(testInfo.project.name !== 'desktop')
- Updated header jsdoc to list all three profiles including desktop
- All mobile assertions preserved (toBeGreaterThanOrEqual(56) and (44) still present)
2026-06-12 08:20:06 -04:00
Lucas Berger d3bc69657b feat(14-01): add desktop Playwright project (Desktop Chrome, 1280x720, no hasTouch)
- Appended 'desktop' project entry after 'pixel' in playwright.config.ts projects array
- Uses devices['Desktop Chrome'] with serviceWorkers: 'block' (D-02/Pitfall 15)
- No baseURL override — inherited from top-level use block (D-08)
- Updated file header jsdoc: three-profile matrix, added --project=desktop example
2026-06-12 08:19:04 -04:00
Lucas Berger 5c3bd5c1ea docs(14): record planning complete + pattern map 2026-06-12 08:10:03 -04:00
Lucas Berger 8742dd43a4 docs(14): create phase plan 2026-06-12 08:07:37 -04:00
Lucas Berger d8cdbcfc14 docs(state): record phase 14 context session 2026-06-12 07:57:10 -04:00
Lucas Berger 2daeb49b89 docs(14): capture phase context 2026-06-12 07:57:03 -04:00
Lucas Berger 5ab463ccbb docs: add backlog 999.17 (CI doc-only PR skip) + remove stale graph.html
CI / fast-checks (pull_request) Successful in 1m19s
CI / api (pull_request) Successful in 58s
CI / harness (pull_request) Successful in 3m16s
2026-06-11 22:29:26 -04:00
Lucas Berger cfb2fd3cf9 docs(graph): refresh knowledge-graph artifacts (rebuilt at 63ae0c6 — 5924 nodes/6053 edges)
CI / fast-checks (pull_request) Successful in 1m22s
CI / api (pull_request) Successful in 1m0s
CI / harness (pull_request) Successful in 3m29s
2026-06-11 22:25:27 -04:00
Lucas Berger 213aeba347 docs: refresh CI + lint/format docs (Phase 8 + Phase 13)
CI / fast-checks (pull_request) Successful in 1m23s
CI / api (pull_request) Successful in 1m0s
CI / harness (pull_request) Successful in 3m27s
2026-06-11 22:21:23 -04:00
luckberg 63ae0c69d4 Merge pull request 'Phase 13: Real Lint Gate — type-aware ESLint + Prettier format gate' (#8) from gsd/phase-13-real-lint-gate-eslint into main
Publish / publish (push) Successful in 1m7s
Reviewed-on: #8
2026-06-11 21:51:08 -04:00
Lucas Berger 0eb43c93d7 fix(13): ignore .pnpm-store in Prettier — CI puts pnpm's store in-workspace so format:check walked into it
CI / fast-checks (pull_request) Successful in 1m23s
CI / api (pull_request) Successful in 1m4s
CI / harness (pull_request) Successful in 3m29s
2026-06-11 21:32:14 -04:00
Lucas Berger fc5b06d343 Merge remote-tracking branch 'origin/main' into gsd/phase-13-real-lint-gate-eslint
CI / fast-checks (pull_request) Failing after 1m47s
CI / api (pull_request) Successful in 1m0s
CI / harness (pull_request) Successful in 3m30s
# Conflicts:
#	.planning/ROADMAP.md
2026-06-11 21:25:14 -04:00
Lucas Berger f16316c6fd docs(quick-260611-tfc): WR-01 sw.ts notificationclick fallback fix 2026-06-11 21:16:38 -04:00
Lucas Berger af78ccc8b9 fix(quick-260611-tfc): make notificationclick openWindow fallback reachable
- Add .then(navigated) check: opens new window when client.navigate() resolves null
- Add .catch(): opens new window when client.focus() or client.navigate() rejects
- Both branches guarded by self.clients.openWindow per spec
- Returned chain (not floating) satisfies no-floating-promises gate
- All other behaviour preserved: close(), url extraction, post-loop fallback
2026-06-11 21:14:14 -04:00
Lucas Berger f06216b567 docs(13): add code review report 2026-06-11 21:08:54 -04:00
Lucas Berger 90d94febea docs(13): mark phase complete — tracking updates 2026-06-11 21:00:55 -04:00
Lucas Berger 8a53e9d1ee docs(13): phase verification — passed (9/9), 2 live-CI human items 2026-06-11 20:59:51 -04:00
Lucas Berger 743c7d92f0 fix(13-03): exclude .planning from Prettier so the format gate stays green
GSD planning artifacts (.planning/**) are rewritten by tooling on every workflow
run and are never hand-formatted. Including them in Prettier scope caused
pnpm format:check to exit 1 on virtually every future PR, making the SC-3
green baseline impossible to hold. Add .planning/ to .prettierignore, mirroring
the same rationale as dist/ and apps/api/src/db/migrations/.

Real source docs (README.md, docs/**) remain in Prettier scope.
No playwright-report/, test-results/, or coverage/ directories exist to ignore.
2026-06-11 20:50:45 -04:00
Lucas Berger f153b7199d docs(13-03): complete Prettier reformat + CI format gate plan 2026-06-11 20:44:52 -04:00
Lucas Berger 0422406c42 feat(13-03): add Format check CI step; remove stale no-op lint comment
- Insert 'Format check: pnpm format:check' after Lint in fast-checks job
- Remove the 3-line comment that said lint was a no-op (no longer true)
- Step order: Install → Lint → Format check → Typecheck → PWA unit tests
- Branch-protection contexts (name:CI, fast-checks, api, harness) unchanged
2026-06-11 20:35:44 -04:00
Lucas Berger 982438dc10 style(13-03): apply Prettier formatting across repo
Mechanical reformat — no logic changes. 398 files changed, 19125
insertions(+), 16457 deletions(-). Prettier 3.8.4 with .prettierrc
(singleQuote:true, semi:true, tabWidth:2, trailingComma:all,
printWidth:100). Isolated per D-13-08 for reviewability.
2026-06-11 20:35:18 -04:00
Lucas Berger 4bc0445173 docs(13-02): record post-verification correction — residual lint error and fix 2026-06-11 20:31:10 -04:00
Lucas Berger 3f2e3ea659 fix(13-02): resolve residual no-unnecessary-type-assertion in SyncStateToast.test
- Replace inline 'as string | null' assertion with an explicit typed const
  declaration inside the vi.hoisted() callback body
- 'value: string | null' typed const satisfies both ESLint (no assertion) and
  tsc (null assignment on line 82 is type-safe)
2026-06-11 20:30:51 -04:00
Lucas Berger 1453cbed76 docs(13-02): complete ESLint violation elimination plan 2026-06-11 20:25:47 -04:00