Bug: FilterBar timeline + type filters don't narrow Verlauf list (Slice 2/3 regression) #32
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Source: m @ 2026-05-09 18:32: "The filters in the project views dont work - at least not those for timeline and type etc."
Symptom
On
/projects/<id>Verlauf tab, the FilterBar's timeline-related axes (likelytimeline_status,timeline_trackfrom Slice 2/3 + the existingproject_event_kindfrom t-paliad-170) do not narrow the rendered list. Selecting a chip changes the URL state but the displayed events are unchanged.Likely cause (priority order)
7930ee0) changed the/timelineresponse from[]TimelineEventto{events, lanes}envelope. The customRunner inclient/projects-detail.tslikely still reads the response as[]TimelineEventand fails silently to apply axis filters; the bar updates URL but the data layer ignores. Defensive fallback was claimed but may not cover the filter-narrowing path.timeline_status+timeline_trackaxes added in Slice 2/3 — verify their facet renderers are wired into the client-side filter predicate. Empty filter predicate → no narrowing.project_event_kindaxis. This was riemann's t-paliad-170 axis. Slice 1'sloadTimelinerewrite may have skipped wiring the axis filter into the new response-handling path. Compare with /inbox where the axis works.Repro
/projects/<id>(any project with a few events).timeline_status: predictedorproject_event_kind: deadline_created).Fix shape
Minimal: trace the filter-application code path in the customRunner; ensure the new envelope (
{events, lanes}) reaches the existing axis-filter logic. If the bar's facet-to-predicate dispatcher dropped the new axes, wire them up. If the customRunner does its own server-side fetch, also verify the URL params are forwarded to/timeline?<axis>=<value>.No SmartTimeline redesign needed. Single-commit fix on
mai/<worker>/verlauf-filterbar-fix.Acceptance
Filed by maria/paliad-head autonomously per m's directive.
Fix on
mai/maxwell/bug-bundle-filterbar@c2f1c29(bundled with #33).Root cause. The Verlauf FilterBar mounted only
time+project_event_kindaxes —timeline_status/timeline_trackchips were never rendered. Worse, thecustomRunnerwas draining predicates intoloadEvents()(the legacy/api/projects/{id}/eventsendpoint) which writes a now-deadeventsarray; the SmartTimeline render readstimelineRows, so even when chips did fire, the filter pass landed on a branch that never reached the DOM.Fix.
timeline_status,timeline_track,project_event_kind) on the bar.verlaufFilters;renderTimelineapplies them client-side viaapplyTimelineRowFiltersimmediately before callingrenderSmartTimeline.project_event_kindrides througheffective.filter.predicates.project_event.event_types(substrate-shaped);timeline_status/timeline_tracksit on raw BarState — the customRunner now receives astateargument as a 2nd param so the very first run (before the handle is assigned) sees the URL-hydrated BarState too.ProjectEventTypetoTimelineEventsoproject_event_kindcan match against the underlyingpaliad.project_events.event_typefor milestone rows.counterclaimmatches both barecounterclaimandcounterclaim:<id>;parent_context:<id>is intentionally not matched by theparentchip (it's the CCR-child-viewing-parent overlay).Verified.
go build ./...,go vet ./..., unit tests pass.bun run buildclean (2171 keys).tl_status+tl_track).Commit:
c2f1c29b10