mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-09-17 00:26:26 +00:00
fix(rank): treat non-ISO stored deadlines as absent in urgency and the sweep
Rule 6's expiry sweep mutates status automatically from stored deadline
values, yet had no rule for the non-ISO shapes portals have shipped into
seen_jobs.json ("ASAP", DD.MM.YYYY, free text) - "ASAP" is incomparable
and "01.09.2026" is ambiguous between 1 Sep and 9 Jan. /outcome, which
merely displays dates, already carried the defensive-parse rule. A
non-YYYY-MM-DD stored value is now handled like an absent one (left
alone, never compared, never guessed at) and reported once with its
portal. Includes the F24-style coupling test. Review finding F17
(2026-08-19).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
9ab697de64
commit
57e82d2b59
@@ -56,6 +56,13 @@ per-file diff commands.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **`/rank`'s expiry sweep parses stored deadlines defensively** - the sweep changes
|
||||
status automatically from a date comparison against values on disk, but portals have
|
||||
shipped non-ISO shapes into `seen_jobs.json` (`"ASAP"`, `DD.MM.YYYY`, free text), and
|
||||
`/rank` had no rule for them while the display-only `/outcome` already did. A stored
|
||||
deadline that is not `YYYY-MM-DD` is now treated exactly like an absent one wherever a
|
||||
stored deadline is compared (urgency and sweep), and reported once with its portal.
|
||||
Pinned by `tests/test_rank_command.py`.
|
||||
- **Language Gate preamble no longer claims the gate is untracked** (`framework_version`
|
||||
1.2.3 -> 1.2.4 in `04-job-evaluation.md`) - the paragraph still said the result "is not
|
||||
a field `/scrape` or `/rank` track", written before the gate was wired into both
|
||||
|
||||
Reference in New Issue
Block a user