This website requires JavaScript.
3b2fae8188
feat(admin/system): extract ImportStatusCard — spinner, text-base count, statusCode i18n
feat/issue-533-mass-import-ux
Marcel
2026-05-14 12:11:00 +02:00
8d17a2fcb3
feat(i18n): add structured import failure keys; split DONE display
Marcel
2026-05-14 12:10:25 +02:00
70281d2c4b
feat(import): add structured statusCode to ImportStatus — replaces raw German message
Marcel
2026-05-14 11:50:56 +02:00
2ca8428be4
refactor(test): hoist SubmitFn to file-level type in unsaved-guard specs
feat/issue-527-unsaved-warning-new-pages
Marcel
2026-05-14 12:11:33 +02:00
6fffc06c28
fix(test): allow extra result properties in enhance callback type
Marcel
2026-05-14 11:58:19 +02:00
ffcb901376
fix(admin): clear unsaved-changes guard before redirect on users/new
Marcel
2026-05-14 11:53:15 +02:00
30469e74c9
fix(admin): clear unsaved-changes guard before redirect on groups/new
Marcel
2026-05-14 11:51:16 +02:00
5646e739c2
fix(ci): run svelte-kit sync before lint to fix cache-hit tsconfig miss
main
Marcel
2026-05-14 12:07:15 +02:00
bbbdf8cd09
ci: restrict push trigger to main — eliminate duplicate runs on feature branches
Marcel
2026-05-14 11:09:52 +02:00
f727429699
fix(ci): run client coverage even when server coverage fails
Marcel
2026-05-14 11:05:10 +02:00
e268e2dbca
fix(tests): use native element clicks in layout dropdown spec
Marcel
2026-05-14 10:58:29 +02:00
76db26d68b
fix(tests): use native element clicks in layout dropdown spec
worktree-feat+issue-557-upload-artifact-v3-pin
Marcel
2026-05-14 10:58:29 +02:00
3de0d2f0fe
fix(ci): add IMPORT_HOST_DIR stub to compose-idempotency env file
Marcel
2026-05-14 10:57:30 +02:00
0abbc147e2
ci(unit-tests): add negative self-test case to upload-artifact guard
Marcel
2026-05-14 10:18:05 +02:00
6210480952
docs(ci-gitea): replace '← upgraded from v3' with ADR-014 pin comment
Marcel
2026-05-14 08:49:32 +02:00
e17f4110f1
docs(adr-014): record upload-artifact v3 pin and Gitea act_runner v4 limitation
Marcel
2026-05-14 08:48:43 +02:00
fa46492759
ci(workflows): downgrade upload-artifact v4 → v3 — Gitea act_runner limitation (ADR-014)
Marcel
2026-05-14 08:47:39 +02:00
3965541879
ci(unit-tests): add grep guard for (upload|download)-artifact@v4+
Marcel
2026-05-14 08:46:29 +02:00
5ce0856178
fix(ci): add IMPORT_HOST_DIR stub to compose-idempotency env file
worktree-chore+issue-556-drop-client-branches-coverage-gate
Marcel
2026-05-14 10:57:30 +02:00
582191d014
docs(adr-013): set exact baseline to 75% (confirmed in CI)
Marcel
2026-05-14 09:03:45 +02:00
118100e58d
chore(coverage): drop client branches threshold 80→75, add ADR-013
Marcel
2026-05-14 08:54:59 +02:00
2e6cc346ab
docs(adr-012): document duplicate-id hazard and patch-package backport
Marcel
2026-05-13 08:09:57 +02:00
7fc1295dc0
build(patch-package): backport vitest PR #10267 for browser-playwright birpc race
Marcel
2026-05-13 08:08:28 +02:00
0cf4a488bb
test(meta): add duplicate-id vi.mock detector under __meta__/
Marcel
2026-05-13 08:06:14 +02:00
9030a7d031
test(confirm-service): normalise vi.mock spelling and remove duplicate-id mocks
Marcel
2026-05-13 08:03:43 +02:00
feadf372a0
refactor(confirm-service): normalise import spelling to no-extension form
Marcel
2026-05-13 08:02:26 +02:00
edde9292e6
test(setup): also disable data-sveltekit-preload-code in browser tests
Marcel
2026-05-12 22:32:03 +02:00
addf5c98db
docs(adr-012): record the sync-factory invariant and the $app/state migration
Marcel
2026-05-12 22:14:31 +02:00
c820884765
ci(coverage-flake-probe): add workflow_dispatch matrix job (20 parallel runs)
Marcel
2026-05-12 22:12:04 +02:00
67cd56acc7
ci(unit-tests): extend grep guard to async vi.mock with dynamic import
Marcel
2026-05-12 22:11:09 +02:00
5afebde382
refactor(eslint): ban async vi.mock factories with dynamic import in body
Marcel
2026-05-12 22:09:07 +02:00
636d61a81b
test(meta): scan src/**/*.svelte.{test,spec}.ts for async vi.mock factories
Marcel
2026-05-12 22:05:43 +02:00
3c9e40ca71
test(setup): disable SvelteKit hover prefetch in browser-mode runs
Marcel
2026-05-12 22:02:57 +02:00
9f1b8b4215
fix(enrichment-block): migrate $app/stores → $app/state to eliminate birpc race
Marcel
2026-05-12 22:00:44 +02:00
89860403f6
fix(notification): remove role=link from view-all button — restores semantically honest button role
Marcel
2026-05-12 18:01:38 +02:00
6b78557954
refactor(notification-tests): use vi.mocked instead of type cast in call-order test
Marcel
2026-05-12 17:50:55 +02:00
bc2dd3a98a
fix(notification): add role=link and touch target to view-all button
Marcel
2026-05-12 16:51:28 +02:00
3005782a75
docs(adr-012): correct pattern note to document button+goto, not anchor+preventDefault
Marcel
2026-05-12 16:48:15 +02:00
8ccc9aba1a
fix(notification): replace view-all anchor with button to prevent iframe navigation
Marcel
2026-05-12 16:37:54 +02:00
d21ba8fed2
refactor(pdf-viewer-tests): extract shared fake, add loadDocument error path, fix assertions
Marcel
2026-05-12 15:19:37 +02:00
23cbb6be22
test(pdf-renderer): eliminate real pdfjs-dist loading from browser tests — use fake libLoader for all init() calls
Marcel
2026-05-12 13:01:50 +02:00
9260866f47
ci(unit-tests): add early grep check for banned vi.mock pdfjs-dist pattern
Marcel
2026-05-12 12:19:01 +02:00
7c8811e439
refactor(eslint): ban vi.mock('pdfjs-dist', ...) in spec/test files — ADR 012
Marcel
2026-05-12 12:18:28 +02:00
ef592ddd0c
test(pdf-viewer): consolidate spec.ts into test.ts — absorb page-counter test, delete spec
Marcel
2026-05-12 12:17:56 +02:00
6c596babcb
test(pdf-viewer): port PdfViewer.svelte.test.ts to libLoader prop injection — remove vi.mock
Marcel
2026-05-12 12:17:25 +02:00
763e9f5708
docs(adr-012): add overlay navigation pattern note
Marcel
2026-05-12 11:25:54 +02:00
37026bbbb8
refactor(notification): extract handleViewAll named function
Marcel
2026-05-12 11:24:58 +02:00
53ecfee25e
test(notification): assert href is preserved on view-all link
Marcel
2026-05-12 11:20:46 +02:00
fa4f8ed661
fix(style): move transkription print styles to global CSS to suppress Tailwind noise
Marcel
2026-05-12 10:49:43 +02:00
890b811bc1
fix(style): move ChronikFuerDichBox animation to global CSS to suppress Tailwind noise
Marcel
2026-05-12 10:49:10 +02:00
ed91c9bcf6
fix(notification): prevent iframe navigation — use goto instead of href follow
Marcel
2026-05-12 10:40:13 +02:00
661e8582a2
test(notification): add goto mock and tighten selector in NotificationDropdown spec
Marcel
2026-05-12 10:39:39 +02:00
7ee038faaf
test(ocr): fix track_reactivity_loss in OcrTrainingCard spec
Marcel
2026-05-12 10:22:03 +02:00
ae1688319e
test(annotation): replace synchronous query().toBeNull() with async not.toBeInTheDocument()
Marcel
2026-05-12 10:21:24 +02:00
7f07180c71
docs(adr-012): add enforcement note and libLoader revisit signal
Marcel
2026-05-12 09:38:49 +02:00
1ead1f293f
ci(coverage): document that birpc guard covers coverage run only
Marcel
2026-05-12 09:37:50 +02:00
a693f07eca
refactor(test): convert TextLayerMock to class syntax in PdfViewer spec
Marcel
2026-05-12 09:36:47 +02:00
3ae7c9da0c
test(pdf-renderer): guard init() against repeated calls — libLoader must fire once
Marcel
2026-05-12 09:25:13 +02:00
729f5c66d6
ci(coverage): use grep -F for birpc guard to avoid BRE escaping
Marcel
2026-05-12 07:56:28 +02:00
d40f477397
ci(coverage): include coverage log in artifact upload
Marcel
2026-05-12 07:55:49 +02:00
f126634804
refactor(test): remove what-comment from makeFakePdfjsLib
Marcel
2026-05-12 07:55:11 +02:00
bdadff787c
test(pdf-renderer): assert init() re-throws when libLoader rejects
Marcel
2026-05-12 07:54:33 +02:00
cf78957476
ci(coverage): harden coverage guard step
Marcel
2026-05-11 23:18:22 +02:00
f8dad85020
test(pdf-renderer): document libLoader rejection leaves pdfjsReady false
Marcel
2026-05-11 23:17:30 +02:00
5cd330de74
docs(pdf-viewer): comment untrack invariant on renderer init
Marcel
2026-05-11 23:13:41 +02:00
06b158bf54
refactor(pdf-viewer): export LibLoader type and update callers
Marcel
2026-05-11 23:12:55 +02:00
3594204214
ci(coverage): simplify coverage step and pin shell to bash
Marcel
2026-05-11 22:52:33 +02:00
073b6cb45d
refactor(test): move PdfViewer import to top and annotate partial fake cast
Marcel
2026-05-11 22:49:34 +02:00
a7e0a66355
docs(adr): 012 — browser-mode test mocking strategy
Marcel
2026-05-11 21:32:12 +02:00
538adb43a9
ci(guard): fail unit-tests job if [birpc] rpc is closed appears in coverage run
Marcel
2026-05-11 21:31:03 +02:00
115476453a
fix(pdf-viewer): replace vi.mock(pdfjs-dist) with injected libLoader prop
Marcel
2026-05-11 21:30:15 +02:00
817ec44439
test(pdf-renderer): inject libLoader into createPdfRenderer to eliminate vi.mock factories
Marcel
2026-05-11 21:25:38 +02:00
51e2d50dd0
Merge pull request 'fix(ci): replace iproute2 ip with /proc/net/route for gateway detection' (#544 ) from fix/nightly-caddy-reload into main
marcel
2026-05-12 09:57:02 +02:00
9c26c00eee
fix(ci): replace iproute2 ip with /proc/net/route for gateway detection
Marcel
2026-05-12 09:50:56 +02:00
6d16be4669
fix(ci): quote \$RESOLVE in all curl calls
Marcel
2026-05-12 09:25:51 +02:00
f1032865f3
fix(ci): guard against empty HOST_IP in smoke test
Marcel
2026-05-12 09:24:23 +02:00
3056311c24
fix(ci): resolve smoke test host via bridge gateway, not 127.0.0.1
Marcel
2026-05-12 09:08:20 +02:00
e9caa3a1f7
chore(renovate): require manual review for privileged CI image digest bumps
Marcel
2026-05-11 23:15:05 +02:00
58922bee53
docs(ci): add Troubleshooting section for Reload Caddy failures
Marcel
2026-05-11 23:14:35 +02:00
bbdf1c3e67
docs(adr): ADR-012 — nsenter via privileged container for host service management in CI
Marcel
2026-05-11 23:13:50 +02:00
8536b2ebbd
docs(deploy): note Caddyfile symlink is a CI dependency
Marcel
2026-05-11 22:52:34 +02:00
4bb988824f
docs(ci): update nsenter example to Alpine, document alternatives considered
Marcel
2026-05-11 22:47:41 +02:00
544b96bc9e
fix(ci): pin Reload Caddy to alpine:3.21 digest, add reload-vs-restart rationale
Marcel
2026-05-11 22:43:55 +02:00
fe2cdaae83
docs(ci): document DooD runner architecture and nsenter pattern
Marcel
2026-05-11 22:29:39 +02:00
d29169eb39
fix(ci): add Caddy reload step to release workflow
Marcel
2026-05-11 22:29:02 +02:00
d750d5cee2
fix(ci): reload Caddy via nsenter, not sudo systemctl
Marcel
2026-05-11 22:28:24 +02:00
90f52eae41
ci(nightly): reload Caddy before smoke test
Marcel
2026-05-11 21:49:32 +02:00
dacc7d6ff8
test(admin): convert .not.toThrow into form-stays-mounted assertion (admin/groups/new)
Marcel
2026-05-11 17:52:06 +02:00
e9d7b6568c
test(admin): convert .not.toThrow into merge-success-banner-absent assertion (admin/tags/[id])
Marcel
2026-05-11 17:51:24 +02:00
b67ac17eef
test(admin): convert .not.toThrow into form-stays-mounted assertion (admin/users/new)
Marcel
2026-05-11 17:50:51 +02:00
6ba89da829
test(geschichten): convert .not.toThrow into person-filter chip rendering assertion
Marcel
2026-05-11 17:50:21 +02:00
de55a4e7ab
test(persons): convert .not.toThrow self-skip test into Self-letter rendering assertion
Marcel
2026-05-11 17:49:37 +02:00
56930fb586
test(briefwechsel): convert 3 .not.toThrow to localStorage / container assertions
Marcel
2026-05-11 17:49:06 +02:00
fec2b2ccbd
test(routes): convert 3 .not.toThrow in home page to main/h1 assertions
Marcel
2026-05-11 17:48:34 +02:00
d4ae74d9a5
test(admin): replace 1 setTimeout sleep in invites page with vi.waitFor
Marcel
2026-05-11 17:44:32 +02:00
d754e23922
test(tags): replace 1 setTimeout sleep in TagTreeNode with vi.waitFor
Marcel
2026-05-11 17:44:00 +02:00
6da686ccea
test(briefwechsel): replace 1 setTimeout sleep in CorrespondenzPersonBar with vi.waitFor
Marcel
2026-05-11 17:43:28 +02:00
df75a0b5f3
test(documents): replace 1 setTimeout sleep in bulk-edit page with vi.waitFor
Marcel
2026-05-11 17:42:58 +02:00
eb666b2eb3
test(transcription): replace 3 setTimeout sleeps in TranscriptionEditView with vi.waitFor
Marcel
2026-05-11 17:40:54 +02:00
b4c249c489
test(documents): replace 2 setTimeout sleeps in [id]/edit page with vi.waitFor
Marcel
2026-05-11 17:39:32 +02:00