schalli
b2c52843aa
docs(14): mark RESEARCH open questions resolved (plan-checker warning 2)
2026-07-23 12:17:57 +02:00
schalli
cf105f0884
docs(14): create phase plan (5 plans, 4 waves)
2026-07-23 12:14:26 +02:00
schalli
9bd93ce8ff
docs(14): add D-13..D-15 (per-tenant email visibility, RSS feed-list, poll granularity)
2026-07-23 11:58:10 +02:00
schalli
7f757772f1
docs(14): research RSS/email-alert ingestion and module rollout
2026-07-23 11:45:57 +02:00
schalli
b655038835
docs(14): capture phase context
2026-07-23 11:16:13 +02:00
schalli
7de0714b30
docs(13): re-verify after normalizer fix — 3/4, Truth 3 deferred (option C)
...
Normalizer-Gap (quick 260723-e7i) closed criteria 1/2; re-verification
lifts Phase 13 from 1/4 to 3/4. Truth 3 (cross-source fingerprint dedup)
stays PARTIAL: newly-found cpvDivisions asymmetry (scrapers always [],
~79% of DÖE tenders populated) makes exact-match fingerprint miss most
real overlaps. User decision: accept as dormant deferral — dedup is inert
(both scrapers isActive=false), decide with live data once a 2nd source
is activated.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-23 10:37:28 +02:00
schalli
9d5aca0e1b
docs(13): phase verification — gaps_found (normalizer stub blocks criteria 1/2/3)
...
Tessera CI/CD / Lint & Type Check (push) Successful in 48s
Tessera CI/CD / Tests (push) Successful in 47s
Tessera CI/CD / Build & Publish Images (push) Successful in 1m36s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-23 09:58:59 +02:00
schalli
7602795622
docs(13-05): complete cosinex/DTVP adapter plan
2026-07-23 09:51:43 +02:00
schalli
775ed153b7
docs(13-04): complete NetServer adapter plan
Tessera CI/CD / Lint & Type Check (push) Successful in 48s
Tessera CI/CD / Tests (push) Successful in 45s
Tessera CI/CD / Build & Publish Images (push) Successful in 3m43s
2026-07-23 09:16:04 +02:00
schalli
2c28605397
docs(13-06): complete multi-source read surface plan
2026-07-23 08:57:25 +02:00
schalli
1c523c039c
docs(13-03): complete dedup-resolver-fan-out-wiring plan
2026-07-23 08:53:33 +02:00
schalli
83d8eff40d
docs(13-02): complete source-registry-denylist plan
2026-07-23 08:44:53 +02:00
schalli
a547a1d31d
docs(13-01): complete fingerprint + TenderSource datenkern plan
2026-07-23 08:40:47 +02:00
schalli
f3cd702197
docs(13): revise plans per checker FLAG — SCHEMA-02 preserve + task order
...
- 13-03: dedup resolve() created=false branch preserves Phase-10 SCHEMA-02
change detection (mutable fields + contentHash on changed re-poll); spec
covers it. Prevents silent regression of DÖE re-poll updates.
- 13-01: reorder so fingerprint fn (Task 1) precedes fingerprint backfill
(Task 2) — removes forward reference.
- 13-VALIDATION: task-id + coverage rows updated to match.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-23 08:31:27 +02:00
schalli
74c00166e2
docs(13): create phase plan — scraping adapters + cross-source dedup
...
6 plans (INGEST-02/03/07, SCHEMA-03) + Nyquist validation.
Core (registry, fingerprint, dedup, TenderSource, backfill) lands
first and is green independent of live scraping (D-01).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-23 08:24:16 +02:00
schalli
f2e0fc8cef
docs(13): phase research — portals live-verified, SourceRegistry, fingerprint dedup
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-23 08:14:25 +02:00
schalli
b98d2e5993
docs(13): phase context — scraping adapters, fuzzy cross-source dedup, denylist
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-23 08:06:41 +02:00
schalli
0dd104054b
docs(12): phase verified — live email UAT passed (digest sent via tenant SMTP, no double-send)
...
Tessera CI/CD / Lint & Type Check (push) Successful in 45s
Tessera CI/CD / Tests (push) Successful in 45s
Tessera CI/CD / Build & Publish Images (push) Successful in 3m45s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-22 09:57:20 +02:00
schalli
f0948bcab1
docs(12): phase verified — 4/4 criteria, 340 tests green, UAT pending rebuild
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-22 09:37:09 +02:00
schalli
314e83f5c1
docs(12-04): complete digest-interval + Sofort-Alert UI plan
2026-07-22 09:32:45 +02:00
schalli
1a0cd375c2
docs(12-03): complete instant-alert dispatch plan
2026-07-22 09:23:21 +02:00
schalli
f509bf4948
docs(12-02): complete digest-mail plan
2026-07-22 09:16:22 +02:00
schalli
4823c245ee
docs(12-01): complete schema + delta-only matching plan
2026-07-22 09:07:06 +02:00
schalli
37a4042e53
docs(12): add VALIDATION.md, resolve RESEARCH open questions
2026-07-22 08:58:35 +02:00
schalli
09993b001c
docs(12): create phase plan (4 vertical slices, waves 1-3)
2026-07-22 08:52:05 +02:00
schalli
08b507ce8d
docs(12): phase research — notifiedAt dedup, delta-only matching, global digest cron
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-22 08:42:21 +02:00
schalli
9ac1142fcd
docs(12): phase context — digest/instant alerts, matched-vs-notified, tenant SMTP
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-22 08:33:10 +02:00
schalli
d874d8a24f
docs(11): phase verified — live browser UAT passed, status human_needed -> passed
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-22 08:02:48 +02:00
schalli
ca712f65a7
docs(11): phase verification — 5/5 criteria verified, 293 tests green, UAT pending rebuild
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-21 16:59:15 +02:00
schalli
f7a2bfd3d8
docs(11-06): complete Persönliche Suchprofile plan
2026-07-21 16:53:08 +02:00
schalli
421fe00ed9
docs(11-05): complete Persönliche Triage plan
2026-07-21 16:40:22 +02:00
schalli
4c22d7731a
docs(11-04): complete Detailansicht plan
2026-07-21 16:23:38 +02:00
schalli
acd7e55094
docs(11-03): complete CPV-Divisions-Katalog + Wert-Filter-UI plan
2026-07-21 16:16:59 +02:00
schalli
a4c02116c1
docs(11-02): complete region/plz/bundesland filter plan
2026-07-21 16:05:25 +02:00
schalli
3e064e0124
docs(11-01): complete query-engine + results-ui + coverage-banner plan
2026-07-21 15:57:25 +02:00
schalli
d7b8e9bf5f
docs(11): revise phase plan per checker BLOCK — VALIDATION.md, FILTER-04 date range, serialized deps
...
- Add 11-VALIDATION.md (Nyquist Dimension 8: per-task test map, sampling, Wave-0 gaps)
- Implement FILTER-04 deadlineFrom/deadlineTo (DTO + builder branch + FilterPanel) in 11-01
- Serialize depends_on into a linear chain (11-04<-03, 11-05<-04, 11-06<-05) to prevent parallel shared-file/migration corruption
- Mark 11-RESEARCH Open Questions RESOLVED
- Fix 11-05 Task 2 <files> dto/ path typo
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-21 15:26:18 +02:00
schalli
4036991acd
docs(11): create phase plan — 6 vertical-slice plans (filter engine, results UI, saved searches)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-21 15:17:48 +02:00
schalli
930a8d8f79
docs(11): phase research — live-DB findings, query patterns, new models
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-21 15:07:41 +02:00
schalli
a4a661f829
docs(11): phase context from user requirements — filters, triage, saved searches
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-21 14:57:09 +02:00
schalli
48d1246043
fix(10): resolve GET /source-config 404 shadowed by :id route
...
The admin source-config settings form failed to load with "Failed to
fetch tender-radar source config". Network trace showed
GET /modules/tender-radar/source-config returning 404.
Root cause: NestJS RouterExplorer maps routes in method-declaration
order. `@Get(':id')` was declared before `@Get('source-config')`, so
the param route captured "source-config" as an id and shadowed the
static handler (401 unauthenticated, 404 past the guard — no Tender
with id "source-config").
Fix: declare `@Get('source-config')` before `@Get(':id')`. Add a
declaration-order regression test — unit tests call controller methods
directly, bypass routing, and could never catch route shadowing.
Verified live: settings form now loads real config, interval save
persists and live-re-registers the scheduler (INGEST-06). Phase 10
verification raised human_needed -> passed after full browser UAT.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-21 14:52:17 +02:00
schalli
eb10bd3116
wip: pause phase 10 (code complete, UAT+rebuild pending)
2026-07-21 11:36:31 +02:00
schalli
a3cef389df
docs(10): phase verification — 5/5 must-haves verified, UAT pending docker rebuild
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-21 11:34:07 +02:00
schalli
4f3c6cf5e9
docs(10-06): complete tender-radar admin settings UI plan
2026-07-21 11:27:31 +02:00
schalli
6d6302294e
docs(10-05): complete tenders controller plan
2026-07-21 11:21:52 +02:00
schalli
9227cc9e78
docs(10-04): complete ingestion orchestration & multi-tenant-safe scheduler plan
2026-07-21 11:13:39 +02:00
schalli
761077814f
docs(10-03): complete DÖE source adapter & normalizer plan
2026-07-21 11:01:50 +02:00
schalli
f80d491adc
docs(10-02): complete Ausschreibungs-Radar marketplace registration plan
2026-07-21 10:46:30 +02:00
schalli
6cfda90960
docs(10-01): complete tender-radar foundation plan
2026-07-21 10:40:15 +02:00
schalli
66efd08dc0
docs(10): mark phase planned (6 plans) + add pattern map
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-21 10:10:41 +02:00
schalli
b52a0a796b
docs(10): add admin config UI plan (INGEST-06 gap), resolve research open questions
2026-07-21 10:08:40 +02:00