-
cc9c70287c
Ship third-party license texts in plugin ZIPs (#345)
main
345-plugin-zip-license-texts
Claude Fable 5
2026-08-16 19:00:26 +0200
-
f142289813
Recognize Markdown tables on paste and while typing (#339)
v0.16.0
prod-v0.16.0-initial
issue-339-markdown-table-paste
Claude Fable 5
2026-08-15 21:12:00 +0200
-
c17ab41a33
Word-style Tab navigation in tables with an accessible exit (#338)
issue-338-tab-navigation
Claude Fable 5
2026-08-15 21:06:07 +0200
-
3bf9363c34
Merge and split table cells (#337)
issue-337-merge-split
Claude Fable 5
2026-08-15 20:54:59 +0200
-
b1165a37e6
Unambiguous delete row/column toolbar icons (#336)
issue-336-delete-icons
Claude Fable 5
2026-08-15 20:44:37 +0200
-
69563348ca
Gap cursor for block-edge positions (#335)
issue-335-gap-cursor
Claude Fable 5
2026-08-15 20:41:23 +0200
-
7e17a2dba6
settings-nav fence: 10 sections since the invitations section (#332)
v0.15.0
prod-v0.15.0-initial
feat/332-invitations
Claude Fable 5
2026-08-05 13:06:32 +0200
-
c2a4dde5cc
Invitation flow with per-user quota (#332)
Claude Fable 5
2026-08-05 12:44:20 +0200
-
9cf7b85b93
Admin can create user accounts directly (#331)
feat/331-admin-create-user
Claude Fable 5
2026-08-05 12:23:01 +0200
-
64f2deb40f
Quota override cell stays a table cell, flex on an inner wrapper (#329)
329-quota-override-cell-table-layout
Claude Fable 5
2026-08-04 12:38:42 +0200
-
20677ea247
Self-hosting findings: URL-safe password advice, operator-readable pre-seed errors (#324, #325)
324-325-self-hosting-guide-findings
Claude Fable 5
2026-08-04 11:25:45 +0200
-
6999b3dd73
Document title follows the configured instance name (#323)
323-document-title-instance-name
Claude Fable 5
2026-08-04 11:20:21 +0200
-
4d6a27194f
Follow the field rename in vs-nfd-marking locators
322-admin-settings-form-flat-keys
Claude Fable 5
2026-08-04 11:42:55 +0200
-
9f754649d4
Fix admin general settings form: dot-free field names, flat PATCH keys (#322)
Claude Fable 5
2026-08-04 11:18:26 +0200
-
d2be1116bc
Refresh the self-hosting guide for the first public release (#320)
320-refresh-self-hosting-guide
Claude Fable 5
2026-08-03 12:34:30 +0200
-
78258c4f9b
test: give the 10k-iteration sort-key property test its own timeout
v0.14.0
prod-v0.14.0-initial
fix/sort-key-test-timeout
Claude Fable 5
2026-08-02 14:01:14 +0200
-
a327126fac
#307: pond-level branding overrides the instance logo and favicon
issue-307-pond-branding
Claude Opus 5
2026-08-01 20:44:02 +0200
-
3310ae3926
#305: a full pond archive before deletion and before purge
issue-305-pond-archive
Claude Opus 5
2026-08-01 19:36:10 +0200
-
8752cf0c5a
#179: negotiate the SPA shell's lang attribute in nginx
issue-179-spa-lang
Claude Opus 5
2026-08-01 19:18:24 +0200
-
6377faf332
#306: instance branding — logo and favicon, cropped in the browser
issue-306-instance-branding
Claude Opus 5
2026-08-01 19:15:03 +0200
-
942f7b13d3
#304: scope the legal spec's status locator to its own form
issue-304-custom-font-ui
Claude Opus 5
2026-08-01 19:05:18 +0200
-
ee6a11f9b0
#304: declare the font-list route's access rule explicitly
Claude Opus 5
2026-08-01 18:46:47 +0200
-
f8c241b11a
#304: custom fonts in the pickers, an admin screen, and the licence page
Claude Opus 5
2026-08-01 18:32:46 +0200
-
485c8fa538
#303 follow-up: the fonts volume must mount node-owned
issue-303-fonts-dir-ownership
Claude Opus 5
2026-08-01 15:12:06 +0200
-
b96997501a
#303: operator-uploaded fonts — storage, API, PDF embedding, backup
issue-303-custom-fonts
Claude Opus 5
2026-08-01 14:49:13 +0200
-
5164801676
#301: reset the login rate limit before the VS-NfD packs
issue-301-settings-reflow
Claude Opus 5
2026-08-01 12:14:15 +0200
-
69882ecbea
#301: the token tables need the same scroll wrapper
Claude Opus 5
2026-08-01 11:34:13 +0200
-
2422f3a28f
#301: sort the reflow report so the culprit cannot be buried
Claude Opus 5
2026-08-01 11:15:36 +0200
-
b65339ae13
#301: the overflow was an escaping visually-hidden heading
Claude Opus 5
2026-08-01 08:50:02 +0200
-
194f144797
#301: dump raw box metrics from the reflow guard
Claude Opus 5
2026-08-01 08:10:31 +0200
-
9fce824a8e
#301: make the reflow guard report the ancestor chain
Claude Opus 5
2026-08-01 07:53:34 +0200
-
18c2ed0bfe
#301: the real culprit was the jump nav, not the wide content
Claude Opus 5
2026-08-01 07:37:05 +0200
-
f938ee9880
#301: stop /settings scrolling horizontally at 320px
Claude Opus 5
2026-08-01 07:17:19 +0200
-
f9149eba13
#302: the vault import test reaches its page through the sidebar
issue-302-pond-start-page
Claude Opus 5
2026-08-01 11:29:54 +0200
-
30fd1ff53b
#302: the permission matrix counts the start page
Claude Opus 5
2026-08-01 08:25:51 +0200
-
45f1925917
#302: configurable pond start page, created with every new pond
Claude Opus 5
2026-08-01 08:06:35 +0200
-
5a4a99196e
#300: route icon-only controls through IconButton/IconLink
issue-300-icon-buttons
Claude Opus 5
2026-08-01 06:56:13 +0200
-
1f56f34113
#296: remove the unsubscribe-token dual-verify window early
v0.13.0
prod-v0.13.0-initial
issue-296-remove-legacy-verify
Claude Fable 5
2026-07-31 23:03:03 +0200
-
9b7acab294
#232: plugin allowlist with SHA-256 hash pinning
issue-232-plugin-hash-pinning
Claude Fable 5
2026-07-31 21:26:36 +0200
-
404a3741c8
ADRs 0019-0027: accepted after explicit operator review (2026-07-31)
adr-0019-0027-accepted
Claude Fable 5
2026-07-31 20:47:27 +0200
-
4d9f913845
#246: mode enforced — reject profile-violating configuration writes
issue-246-vs-nfd-enforced
Claude Fable 5
2026-07-31 19:48:37 +0200
-
0d95e1304e
#245: mode hidden — hide profile-violating options, mark the hiding
issue-245-vs-nfd-hidden
Claude Fable 5
2026-07-31 19:10:51 +0200
-
5fdef95f67
#244: mode marked — flag profile-violating configuration in the UI
issue-244-vs-nfd-marked
Claude Fable 5
2026-07-31 18:33:27 +0200
-
da5fd7c770
#243: VS_NFD_MODE and the machine-readable hardening-profile catalog
issue-243-vs-nfd-mode
Claude Fable 5
2026-07-31 18:24:04 +0200
-
18239e2fa9
#221: offline update path incl. migrations, rehearsed with rollback
issue-221-offline-update
Claude Fable 5
2026-07-31 17:26:50 +0200
-
ccffcaadd6
#220: protocol of the isolated deployment run
issue-220-isolated-run
Claude Fable 5
2026-07-31 17:04:43 +0200
-
4f6596e8a2
#288: reset schema before pg_restore — partitioned tables broke --clean
issue-288-restore-partitioned
Claude Fable 5
2026-07-31 17:00:05 +0200
-
a758c9d78b
#219: verified reproducible build without network access
issue-219-offline-build
Claude Fable 5
2026-07-31 14:39:35 +0200
-
2f7ba65eef
#218: mirror procedure into an internal registry
issue-218-registry-mirror
Claude Fable 5
2026-07-31 14:33:04 +0200
-
6aac785841
#217: map IdP groups and roles onto the permission model
issue-217-claim-mapping
Claude Fable 5
2026-07-31 13:09:11 +0200
-
13f0311d8e
#216: hard AUTH_LOCAL_ENABLED switch over every local credential flow
issue-216-local-auth-switch
Claude Fable 5
2026-07-31 12:58:07 +0200
-
4c7f001cab
#215: trusted reverse-proxy header / mTLS client-certificate path
issue-215-proxy-auth
Claude Fable 5
2026-07-31 12:50:09 +0200
-
5796b7a5dd
#214: OIDC Authorization Code with PKCE, Keycloak as reference IdP
issue-214-oidc
Claude Fable 5
2026-07-31 12:44:52 +0200
-
4af5e6e81f
#225: read-trail master switch and written purpose limitation
issue-225-read-trail-switch
Claude Fable 5
2026-07-31 12:24:57 +0200
-
2bdb0ec2cf
#224: read-trail storage — partitioning, retention, admin query path
issue-224-read-trail-storage
Claude Fable 5
2026-07-31 12:21:45 +0200
-
fd4fd60c99
#223: dedup window for the read trail
issue-223-read-trail-dedup
Claude Fable 5
2026-07-31 12:13:21 +0200
-
05a979bac3
#222: read-access trail for classified pages
issue-222-read-trail
Claude Fable 5
2026-07-31 12:06:15 +0200
-
919201d9b0
#230: IT-Grundschutz mapping for APP.3.1 and CON.11.1
issue-230-grundschutz-mapping
Claude Fable 5
2026-07-31 10:06:28 +0200
-
87c1c5ee88
#231: residual-risk list
issue-231-residual-risks
Claude Fable 5
2026-07-31 10:01:11 +0200
-
2c6eff85f3
#227: hardening guide with the VS-NfD reference configuration
issue-227-hardening-guide
Claude Fable 5
2026-07-31 09:59:27 +0200
-
040f3fbeae
#229: operations manual (install, update, backup/restore, deletion, roles)
issue-229-operations-manual
Claude Fable 5
2026-07-31 09:57:16 +0200
-
f0c6af4412
#228: security documentation (architecture, data flows, network plan)
issue-228-security-documentation
Claude Fable 5
2026-07-31 09:54:01 +0200
-
0dc9789cb1
#227: hardening guide with the VS-NfD reference configuration
Claude Fable 5
2026-07-31 09:59:27 +0200
-
d641c5dc8a
#229: operations manual (install, update, backup/restore, deletion, roles)
Claude Fable 5
2026-07-31 09:57:16 +0200
-
1cf0458593
#228: security documentation (architecture, data flows, network plan)
Claude Fable 5
2026-07-31 09:54:01 +0200
-
868b79c8bc
#213: warn on uploads to classified pages; instance policy can block
issue-213-upload-warning
Claude Fable 5
2026-07-31 07:33:34 +0200
-
e505fc74dc
#212: mark attachment downloads by filename prefix and companion file
issue-212-attachment-marking
Claude Fable 5
2026-07-31 07:29:16 +0200
-
521ea514b4
#211: classification through feeds, public API, search and the no-JS shell
issue-211-channel-marking
Claude Fable 5
2026-07-31 07:23:53 +0200
-
-
68497046e9
#210: mark the Markdown ZIP export with frontmatter, imprint and manifest
issue-210-zip-marking
Claude Fable 5
2026-07-31 07:13:53 +0200
-
74a9e495e4
#209: pandoc reference documents carry the VS-NfD marking for DOCX/ODT
issue-209-office-marking
Claude Fable 5
2026-07-31 07:09:47 +0200
-
c2df7c0c23
#208: VS-NfD marking in the Gotenberg per-page header and footer
issue-208-pdf-marking
Claude Fable 5
2026-07-31 06:55:52 +0200
-
809e071f14
#207: print stylesheet with the classification on every printed sheet
issue-207-print-css
Claude Fable 5
2026-07-31 06:48:44 +0200
-
adceca7358
#206: show the VS-NfD marking in web view header and footer
issue-206-web-classification-marking
Claude Fable 5
2026-07-31 06:18:47 +0200
-
488d0d06f1
#205: classification inherits down the tree; lowering is a guarded, audited act
issue-205-classification-inheritance
Claude Fable 5
2026-07-31 06:12:26 +0200
-
183faf7710
#204: classification as first-class page metadata (ADR 0022)
issue-204-page-classification
Claude Fable 5
2026-07-31 06:01:50 +0200
-
db4f517e44
#203: pin all third-party deploy images by digest
feat/203-image-digest-pinning
Claude Fable 5
2026-07-31 05:13:13 +0200
-
000d110727
#201: stable audit event catalogue for syslog/SIEM export
feat/201-audit-event-catalogue
Claude Fable 5
2026-07-31 04:51:09 +0200
-
c4c84b33f9
#200: hard instance-wide plugins.enabled kill switch
feat/200-plugins-kill-switch
Claude Fable 5
2026-07-31 04:42:42 +0200
-
74970f6073
#199: SHA-256 integrity hashes for attachments
feat/199-attachment-integrity-hashes
Claude Fable 5
2026-07-31 04:32:29 +0200
-
d3289b2167
#202: SBOM and license report in CI
feat/202-sbom-license-report
Claude Fable 5
2026-07-31 04:21:58 +0200
-
9326177534
#236: also pin the node helper images in workflows
feat/236-pin-node-version
Claude Fable 5
2026-07-31 04:16:07 +0200
-
6a520e27b1
#236: pin the Node version
Claude Fable 5
2026-07-31 04:14:55 +0200
-
9a43a2f6bb
#235: keep page_links rows pointing at purged pages — recorded decision
feat/235-page-links-purge-decision
Claude Fable 5
2026-07-30 22:18:39 +0200
-
69d9072d2c
#234: retention for mail_outbox
feat/234-mail-outbox-retention
Claude Fable 5
2026-07-30 22:17:28 +0200
-
ff505bc752
#233: prune conversion job payloads for every job kind
feat/233-conversion-job-payload-pruning
Claude Fable 5
2026-07-30 22:12:32 +0200
-
ff842f97e2
#198: CI fence — no tracked .env or secret material, example is authoritative
feat/198-env-verification
Claude Fable 5
2026-07-30 17:16:00 +0200
-
3c62b7b773
#197: security response headers and an explicitly restrictive CORS policy
feat/197-security-headers
Claude Fable 5
2026-07-30 17:10:35 +0200
-
ed2225bb77
#196: audit-trail retention job
feat/196-audit-retention
Claude Fable 5
2026-07-30 14:59:28 +0200
-
960a806ee3
#195: trashed content leaves the search index itself
feat/195-search-index-trash
Claude Fable 5
2026-07-30 14:07:34 +0200
-
02c1f18fe1
adjust the maintenance-job count fence: 6 jobs with the orphan sweep
feat/194-orphan-sweep
Claude Fable 5
2026-07-30 13:31:03 +0200
-
0bc36aa58c
#194: orphan-file sweep, drop the unused Attachment.deletedAt
Claude Fable 5
2026-07-30 13:19:58 +0200
-
402b22e05f
#193: pond purge — retention job and manual Site-Admin endpoint
feat/193-pond-purge
Claude Fable 5
2026-07-30 12:44:52 +0200
-
394d1c811d
#192: deploy-level backup target allowlist
feat/192-backup-allowlist
Claude Fable 5
2026-07-30 12:17:14 +0200
-
afef45732a
#191: feeds.enabled instance switch, feed-token log masking
feat/191-feeds-switch
Claude Fable 5
2026-07-30 11:34:43 +0200
-
db4c5ce9ca
#190: configurable session lifetime with a server-side idle timeout
feat/190-session-timeouts
Claude Fable 5
2026-07-30 11:11:15 +0200
-
214e707102
fix flaky tampered-token test: flip a significant signature character
feat/189-csrf-fail-closed
Claude Fable 5
2026-07-30 09:40:05 +0200
-
d32c8c3730
#189: make the CSRF origin check fail closed
Claude Fable 5
2026-07-30 09:34:44 +0200
-
3d1f4fda53
#188: purpose-bound token keys via HKDF, jose replaces the homegrown JWT
feat/188-token-key-separation
Claude Fable 5
2026-07-30 06:41:05 +0200
-
3e377aaa57
#226: add the §52 VSA delimitation statement
docs/226-delimitation-statement
Claude Fable 5
2026-07-30 06:29:05 +0200
-
fd07f716f6
docs: VS-NfD readiness planning (ist-aufnahme, plan, ADRs 0019-0026, issue drafts)
docs/vs-nfd-planning
Claude Opus 5
2026-07-30 01:48:05 +0200