From 0b08b2fb49827399ff0652bc20d5f71e2066025c Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 16 Feb 2026 19:13:22 +0000 Subject: v3 ui: require 100% visibility before marking items as read Change IntersectionObserver threshold from 0.5 to 1.0 so items are only marked as read when fully scrolled into view, reducing accidental mark-as-read during fast scrolling. Also fix unused Category import in perf test and add thicket config.json to repository so future agents can use thicket CLI commands. Closes NK-s2g59a https://claude.ai/code/session_019Z4VJxzY7tcAuNkPAkvry9 --- frontend-vanilla/src/main.ts | 2 +- frontend-vanilla/src/perf/store.perf.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'frontend-vanilla/src') diff --git a/frontend-vanilla/src/main.ts b/frontend-vanilla/src/main.ts index 7b55c48..7d75e14 100644 --- a/frontend-vanilla/src/main.ts +++ b/frontend-vanilla/src/main.ts @@ -291,7 +291,7 @@ export function renderItems() { } } }); - }, { threshold: 0.5 }); + }, { threshold: 1.0 }); contentArea.querySelectorAll('.feed-item').forEach(el => itemObserver!.observe(el)); } diff --git a/frontend-vanilla/src/perf/store.perf.test.ts b/frontend-vanilla/src/perf/store.perf.test.ts index 734e132..382cbb4 100644 --- a/frontend-vanilla/src/perf/store.perf.test.ts +++ b/frontend-vanilla/src/perf/store.perf.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect } from 'vitest'; import { Store } from '../store'; -import type { Item, Feed, Category } from '../types'; +import type { Item, Feed } from '../types'; function makeItem(id: number): Item { return { -- cgit v1.2.3