-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommit_message.txt
More file actions
30 lines (26 loc) · 1.53 KB
/
commit_message.txt
File metadata and controls
30 lines (26 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
feat: structured schedule extraction + GUI timer smoothing
Schedule Extraction (Phase 1):
Daemon now parses schedule statements ("I work Friday 3-10pm", "class MWF
9-11am", "my exam is April 15th") into structured metadata instead of
storing as opaque text facts.
- 5 pattern categories: work_schedule, class_schedule, exam_date,
shift_pattern, day_off with past-tense and negation guards
- Uncertainty-aware metadata: schedule_scope (recurring/one_off/ambiguous),
parser_confidence, resolution_basis, needs_confirmation, source_text
- Three-tier time normalization: explicit am/pm (0.95) → context heuristic
(0.65-0.70) → ambiguous guess (0.50). Bare "3-10" inferred from context
(work=PM, class=AM) but marked as lower confidence
- Recurring vs one-off detection from plural ("Fridays" vs "Friday")
- Schedule supersession: same kind + same day → old fact marked superseded
via existing FactVerifier STORE_AND_FLAG pattern
- [UPCOMING SCHEDULE] prompt section with recurring expansion, gated by
TEMPORAL_RECALL/PROJECT_WORK intent or keyword+temporal dual signal
- 64 new tests, 0 regressions (4489 passed)
temporal_resolver.py: normalize_time_range(), expand_day_abbreviations(),
resolve_date_expression() — future-biased date resolution, university
shorthand (MWF/TTh/TR)
GUI timer smoothing:
- Tick interval 0.25s → 0.15s for smoother updates
- Removed redundant throttle gate on timer-only ticks
- Eliminated double deepcopy per yield (share reference, skip copy when
content unchanged) — reduces event-loop blocking as chat grows