Commit Graph

  • 2e7daa481e feat(15-08): Marketplace-Karte mit drittem Zustand "Kein Zugriff" schalli 2026-08-04 19:49:46 +02:00
  • 43c7fa200b feat(15-08): serverseitige Modulsperre mit 403-Seite schalli 2026-08-04 19:41:25 +02:00
  • c6086ba750 docs(15-07): complete Freigabe-Matrix, Aktivierungsdialog und Benutzer-Detail-Grants plan schalli 2026-08-04 19:28:18 +02:00
  • 050d070340 feat(15-07): Benutzer-Detail mit geerbten Rechten und Direkt-Freigaben schalli 2026-08-04 19:25:15 +02:00
  • 3cd6d997cf feat(15-07): Aktivierungsdialog mit drei Aktionen in /admin/modules schalli 2026-08-04 19:21:25 +02:00
  • 6b2a6f1ce4 feat(15-07): Freigabe-Matrix Module x Gruppen unter /admin/modules/grants schalli 2026-08-04 19:18:30 +02:00
  • a3e8d0a158 docs(15-06): complete Gruppenverwaltung im Admin-UI plan schalli 2026-08-04 19:06:54 +02:00
  • 4985e43412 feat(15-06): group member management + delete dialog with concrete impact numbers schalli 2026-08-04 19:02:11 +02:00
  • c3ba1f74ea feat(15-06): /admin/groups table + create/rename modal with AD radio-select binding schalli 2026-08-04 18:57:43 +02:00
  • 90dc3981d5 feat(15-06): phase-wide i18n keys + sixth admin nav entry for groups schalli 2026-08-04 18:50:28 +02:00
  • 09abb2b323 docs(15-03): complete modul-freigaben-schreibseite plan schalli 2026-08-04 18:43:45 +02:00
  • 1c32543f58 feat(15-03): GET /modules/catalog — beide Statusflags in einer Antwort schalli 2026-08-04 18:41:23 +02:00
  • 072fb7f62f feat(15-03): ModuleGrantsController und Einbindung in GroupsModule schalli 2026-08-04 18:41:17 +02:00
  • 5e256db01d feat(15-03): ModuleGrantsService — Freigaben setzen/entziehen mit Mandanten-Gegenprüfung schalli 2026-08-04 18:41:12 +02:00
  • 614de2815a feat(15-04): AD-Gruppenmitgliedschafts-Abgleich im bestehenden LDAP-Sync schalli 2026-08-04 15:50:42 +02:00
  • 2a79d4ca1f docs(15-05): complete dashboard-widget-modulfilterung plan schalli 2026-08-04 15:39:48 +02:00
  • 0ff46acd75 feat(15-05): getWidgets filters via ModuleAccessService (D-22, PERM-07) schalli 2026-08-04 15:37:28 +02:00
  • d0ff6f0bc0 test(15-05): add failing test for module-filtered getWidgets schalli 2026-08-04 15:31:35 +02:00
  • 954cd6e171 feat(15-05): static widget-to-module registration table schalli 2026-08-04 15:30:51 +02:00
  • c4d7b7ded6 docs(15-02): complete Gruppenverwaltung & Standardgruppen-Mitgliedschaft plan schalli 2026-08-04 15:27:48 +02:00
  • 33838dde39 feat(15-02): automatische Standardgruppen-Mitgliedschaft an genau einem Ort schalli 2026-08-04 15:23:01 +02:00
  • 69494d7549 feat(15-02): GroupsModule — CRUD für Gruppen, Mitgliedschaften und Löschauswirkung schalli 2026-08-04 15:21:41 +02:00
  • 79c83eae5f docs(15-01): complete Group/ModuleGrant foundation plan schalli 2026-08-04 15:14:21 +02:00
  • 4fd2f2e6a6 docs(15-01): append self-check result to SUMMARY schalli 2026-08-04 15:13:47 +02:00
  • 3b3950cfdb docs(15-01): add SUMMARY for Group/ModuleGrant foundation + access resolution tracer schalli 2026-08-04 15:13:33 +02:00
  • 92e8eaffa5 feat(15-01): RLS policies for Group/GroupMembership/ModuleGrant (T-15-11) schalli 2026-08-04 15:11:33 +02:00
  • 9a4ba8a33c feat(15-01): ModuleAccessService as single source of truth for module access (D-01) schalli 2026-08-04 15:09:10 +02:00
  • c5c704bae9 feat(15-01): Group/GroupMembership/ModuleGrant schema + D-06 backfill migration schalli 2026-08-04 15:03:48 +02:00
  • ac65149964 docs(15): create phase plan schalli 2026-08-04 14:44:05 +02:00
  • 8a4bb32847 docs(15): create phase plan — 8 plans, 4 waves, PERM-01..07 schalli 2026-08-04 14:39:46 +02:00
  • ff22178847 docs(state): record phase 15 UI-SPEC session schalli 2026-08-04 13:58:34 +02:00
  • 4f78999238 docs(15): UI design contract schalli 2026-08-04 13:58:33 +02:00
  • 37ab7c537d docs(15): record owner-approved typography exception, add icon-only aria-labels schalli 2026-08-04 13:54:44 +02:00
  • 2f354cd59c docs(15): UI design contract schalli 2026-08-04 13:39:00 +02:00
  • 960acb55c5 docs(phase-15): add validation strategy schalli 2026-08-04 13:32:14 +02:00
  • 32c4ec3fc8 docs(15): research phase domain schalli 2026-08-04 13:30:53 +02:00
  • d4ae20b300 docs(15): add PERM-01..07 requirements and widget success criterion schalli 2026-08-04 11:59:50 +02:00
  • ce96e5a5e7 docs(state): record phase 15 context session schalli 2026-08-04 10:52:41 +02:00
  • 6859c7504e docs(15): capture phase context schalli 2026-08-04 10:52:37 +02:00
  • 7e1b4a2964 docs(roadmap): add Phase 15 module permissions (groups & user grants) schalli 2026-08-04 08:42:56 +02:00
  • bd84a26824 docs(260729-d3k): add plan + verification (passed 6/6) for LDAP multi-base-DN schalli 2026-07-29 09:43:06 +02:00
  • 97465a6f25 docs(260729-d3k): complete LDAP multi-base-DN quick task schalli 2026-07-29 09:40:29 +02:00
  • 96be7e168b feat(260729-d3k): multi-line Base-DN textarea + reworked scope i18n schalli 2026-07-29 09:37:51 +02:00
  • 5cbd530a87 feat(260729-d3k): multi-base LDAP sync scope + re-keyed no-op guard schalli 2026-07-29 09:36:55 +02:00
  • 5cdd48d864 docs(260728-lih): add plan + verification (passed 6/6) for LDAP selective sync schalli 2026-07-28 15:47:22 +02:00
  • fd9c1bee34 docs(260728-lih): complete LDAP sync selektiv und auto-sync default plan schalli 2026-07-28 15:43:37 +02:00
  • 63a07abb47 feat(260728-lih): default LDAP create-form syncIntervalMin to 0 + reword copy schalli 2026-07-28 15:42:10 +02:00
  • 57bc7f96b3 feat(260728-lih): make LDAP sync strictly selective (empty selection = no-op) schalli 2026-07-28 15:41:33 +02:00
  • c54e424c05 feat(260728-lih): default LDAP syncIntervalMin to 0 (auto-sync off) schalli 2026-07-28 15:40:28 +02:00
  • 7e5a6a6e01 docs(planning): add v1.1 milestone audit and 260723-lvg quick plan schalli 2026-07-28 14:55:27 +02:00
  • ae85b91468 fix(admin): refresh sidebar after module toggle on admin page schalli 2026-07-24 12:10:39 +02:00
  • 51501aa7ee docs(260723-lvg): complete "Jetzt abrufen" quick task summary schalli 2026-07-23 15:55:23 +02:00
  • bdaf154f66 feat(260723-lvg): add "Jetzt abrufen" manual poll button to tender radar schalli 2026-07-23 15:54:43 +02:00
  • 7502f97e85 feat(260723-lvg): add admin-gated POST /poll-now endpoint for tender radar schalli 2026-07-23 15:52:44 +02:00
  • e1358d70fd fix(tenders): register poll cron in onApplicationBootstrap (fresh-DB bootstrap) schalli 2026-07-23 15:30:04 +02:00
  • cc57de7313 feat(tender-radar): add settings gear link on module page schalli 2026-07-23 15:10:46 +02:00
  • c8bf229524 docs(14): phase verification — 4/5 verified, criterion 2 (EWS live) human_needed schalli 2026-07-23 14:28:01 +02:00
  • eff5d26413 docs(14-05): complete i18n rollout for tender-radar plan schalli 2026-07-23 14:23:23 +02:00
  • 849aa9b0a9 feat(14-05): convert tender-radar settings + config forms to useTranslations schalli 2026-07-23 14:20:52 +02:00
  • 2ea02a2671 feat(14-05): convert tender-radar results-side components to useTranslations schalli 2026-07-23 14:15:33 +02:00
  • d73171b052 feat(14-05): add tenderRadar i18n namespace (DE + EN) with key-parity guard schalli 2026-07-23 14:07:41 +02:00
  • a4889f8399 docs(14-04): complete denylist transparency plan schalli 2026-07-23 14:01:12 +02:00
  • 947325f6ad feat(14-04): CoverageBanner "manuell beobachten" denylist block schalli 2026-07-23 13:59:44 +02:00
  • 28c6c7fee1 feat(14-04): denylisted-portals read endpoint sourced from DENYLISTED_PORTALS schalli 2026-07-23 13:58:25 +02:00
  • c140d1186a docs(14-03): pause after Tasks 1-3 — Task 4 (live EWS human-verify) OPEN schalli 2026-07-23 13:56:00 +02:00
  • 48e12523f3 feat(14-03): add email-config admin routes + D-13 read-side visibility filter + EmailAlertConfigForm schalli 2026-07-23 13:53:17 +02:00
  • 1be6b15249 feat(14-03): add per-tenant encrypted TenderEmailConfig + ownerTenantId write-side (D-13) schalli 2026-07-23 13:45:11 +02:00
  • 8983231196 feat(14-03): add EmailAlertAdapter generic extraction + 'email-alert' normalizer dispatch schalli 2026-07-23 13:38:36 +02:00
  • 4d6fbb136e test(14-03): add failing spec for email-alert generic link/subject extraction schalli 2026-07-23 13:37:37 +02:00
  • 6e3789a0b0 docs(14-02): complete RSS ingestion slice plan schalli 2026-07-23 13:33:01 +02:00
  • 48a2dc1026 feat(14-02): add RSS feed admin routes, API client, and settings UI schalli 2026-07-23 13:29:07 +02:00
  • e812738c3a feat(14-02): add TenderRssFeedSource CRUD, tick poll gate, and wire RssAdapter schalli 2026-07-23 13:24:36 +02:00
  • 3a96cbbbe6 feat(14-02): add RssAdapter.parseFeed + 'rss' normalizer dispatch schalli 2026-07-23 13:17:02 +02:00
  • a47c0c57ee docs(14-01): complete inbox-module extraction plan schalli 2026-07-23 13:11:21 +02:00
  • c404954bee feat(14-01): add fetchMessages() to InboxProvider + both implementations schalli 2026-07-23 13:09:45 +02:00
  • eb668fd5c8 refactor(14-01): extract DKV inbox providers into shared inbox/ module schalli 2026-07-23 13:02:15 +02:00
  • 9dd5038575 docs(state): record phase 14 planning session schalli 2026-07-23 12:17:58 +02:00
  • b2c52843aa docs(14): mark RESEARCH open questions resolved (plan-checker warning 2) schalli 2026-07-23 12:17:57 +02:00
  • cf105f0884 docs(14): create phase plan (5 plans, 4 waves) schalli 2026-07-23 12:14:26 +02:00
  • 9bd93ce8ff docs(14): add D-13..D-15 (per-tenant email visibility, RSS feed-list, poll granularity) schalli 2026-07-23 11:58:10 +02:00
  • 7f757772f1 docs(14): research RSS/email-alert ingestion and module rollout schalli 2026-07-23 11:45:57 +02:00
  • d71a781be0 docs(state): record phase 14 context session schalli 2026-07-23 11:16:23 +02:00
  • b655038835 docs(14): capture phase context schalli 2026-07-23 11:16:13 +02:00
  • 7de0714b30 docs(13): re-verify after normalizer fix — 3/4, Truth 3 deferred (option C) schalli 2026-07-23 10:37:28 +02:00
  • 7bd65e0077 docs(260723-e7i): pre-dispatch plan for normalizer-gap-phase-13-schliessen-tende schalli 2026-07-23 10:21:33 +02:00
  • d5128d5759 docs(quick-260723-e7i): complete normalizer-gap-phase-13-schliessen-tende quick task schalli 2026-07-23 10:21:18 +02:00
  • 988100576f test(quick-260723-e7i): cover ai-netserver/cosinex bag normalization + DOE regression schalli 2026-07-23 10:19:00 +02:00
  • 82c9a48305 feat(quick-260723-e7i): per-sourceType dispatch in TenderNormalizerService schalli 2026-07-23 10:18:16 +02:00
  • 9d5aca0e1b docs(13): phase verification — gaps_found (normalizer stub blocks criteria 1/2/3) schalli 2026-07-23 09:58:59 +02:00
  • 7602795622 docs(13-05): complete cosinex/DTVP adapter plan schalli 2026-07-23 09:51:43 +02:00
  • 6fe0dd07fe feat(13-05): register CosinexAdapter as tenders module provider schalli 2026-07-23 09:49:19 +02:00
  • 12fc5ac02d feat(13-05): add cosinex/DTVP source adapter with fixture tests schalli 2026-07-23 09:48:21 +02:00
  • 775ed153b7 docs(13-04): complete NetServer adapter plan schalli 2026-07-23 09:16:04 +02:00
  • 88572f5694 feat(13-04): NetServerAdapter im Modul registriert (INGEST-02) schalli 2026-07-23 09:14:24 +02:00
  • 043ada9438 feat(13-04): NetServer-Adapter fuer tender24/lhs-vpbw/vergabe.landbw (INGEST-02) schalli 2026-07-23 09:13:01 +02:00
  • 2c28605397 docs(13-06): complete multi-source read surface plan schalli 2026-07-23 08:57:25 +02:00
  • bf61316500 feat(13-06): TenderDetail renders all cross-source links schalli 2026-07-23 08:56:06 +02:00
  • 166194fa04 feat(13-06): getTender include sources[] (SCHEMA-03 read surface) schalli 2026-07-23 08:55:02 +02:00
  • 1c523c039c docs(13-03): complete dedup-resolver-fan-out-wiring plan schalli 2026-07-23 08:53:33 +02:00
  • 1d4f9cf1b3 feat(13-03): wire SourceRegistry + TenderDedupService into TendersModule schalli 2026-07-23 08:51:47 +02:00