Files
shater/route/rule
omarandClaude Opus 4.8 265fb5efaa feat(daemon+panel): rule-set management — status + manual update (Wave C, #9)
Remote .srs rule-sets already auto-update (24h, cache.db, ETag) but the panel
showed nothing. Now: RemoteRuleSet exports LastUpdated()/UpdateInterval()/
RuleCount()/Update(ctx) (an updateMu serialises manual refresh vs the 24h loop;
lastUpdated writes moved under access lock). route.Router.RuleSets() enumerates
live sets. Engine.RuleSetStatus()/UpdateRuleSet(tag) via Instance().Router();
Applier exposes both (engine stays private). New GET /api/ruleset/status
([{tag,name,kind,remote,last_updated,interval_seconds,rule_count}]) + POST
/api/ruleset/update {tag|name+kind}. Tag map: ruleset X<->rs-X, blocklist
Y<->bl-Y, allowlist Z<->al-Z. Routing rulesets rows show relative last-update +
'every 24h' + rule count + an Update-now button (in-flight state, toast); inline
sets show nothing extra; install/remove unchanged (config PUT).

Verified: root+route+shater build (router tags)/vet 0, go test ok (tag-map,
status projection, engine nil-safety + real box.New apply), panel tsc/build clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LLthkP2S8WAfxu7fcYbPfE
2026-07-18 03:04:45 +03:00
..
2026-05-13 23:39:27 +08:00
2026-07-06 21:13:33 +08:00
2026-06-25 17:38:10 +08:00
2026-01-17 05:44:29 +08:00
2026-06-25 17:38:13 +08:00
2026-05-13 23:39:27 +08:00
2026-07-08 16:30:06 +08:00
2026-06-25 17:38:13 +08:00
2026-06-25 17:38:13 +08:00