Commit Graph
52 Commits
Author SHA1 Message Date
overseer 1add535628 Make the missed-sweep watermark claim safe across processes
The sweep guarded its announcement with a read-then-set watermark
inside a per-process asyncio lock, so two processes sharing one SQLite
file (the HA integration's rollover sweep and the API scheduler) could
both read the old watermark and both announce the same missed batch.

Add MetaStateDao.claim: a single conditional upsert
(INSERT ... ON CONFLICT DO UPDATE ... WHERE value IS NOT excluded.value)
whose rowcount says whether THIS caller changed the row — the
read-compare-write is one SQLite statement, atomic at the database
level, not just within one process. run_missed_sweep now builds the
events optimistically and gates the announcement on that claim: the
caller that advances the watermark returns the events, a loser returns
[]. The claim happens only after the events are built, so a failure
before it leaves the watermark unadvanced and a later run retries;
get/set are intact and the in-process sweep lock still serialises
same-process callers.

Tests prove two independent NestQuestDatabase wrappers (the
two-process shape) racing one seeded database yield exactly one
announcer, plus the unchanged same-night no-op and post-downtime
window-once semantics.
2026-09-23 12:54:06 -04:00
overseer 3ee4c99e5f Merge pull request 'Dev - add in logos' (#139) from dev into main
Reviewed-on: #139
2026-09-21 10:44:43 -04:00
overseer d4ea552ad7 Merge pull request 'Upload files to "design/logos"' (#138) from design/adding-logos into dev
Reviewed-on: #138
2026-09-21 10:44:12 -04:00
overseer 4e52e8dec8 Upload files to "design/logos" 2026-09-21 10:44:01 -04:00
overseer ee1fae984a Merge pull request 'Fix SensorDeviceClass.PERCENTAGE removed in HA 2025+' (#137) from fix/sensor-device-class-percentage into main
Reviewed-on: #137
2026-09-21 10:02:34 -04:00
overseer 418fc69f36 Remove removed SensorDeviceClass.PERCENTAGE 2026-09-21 10:02:08 -04:00
overseer b6b1ba65b4 Merge pull request 'Point HACS URLs at Maniacs-Mansion/NestQuest' (#136) from fix/hacs-repo-urls into main
Reviewed-on: #136
2026-09-21 07:52:09 -04:00
overseer 37f7d25cd6 Point HACS URLs at Maniacs-Mansion/NestQuest 2026-09-21 07:47:52 -04:00
overseer fe71d37bb0 Merge pull request 'Promote Feature 12 to main' (#135) from dev into main
Reviewed-on: #135
2026-09-21 06:57:15 -04:00
overseer edca25affa Add the Lit card toolchain and auto-register the Lovelace bundle 2026-09-20 10:08:38 -04:00
overseer a6d9ec927b Merge pull request 'Release: Features 06, 07, 08 (2026-09-18)' (#97) from release/2026-09-18-f06-f07-f08 into main
Reviewed-on: #97
2026-09-18 14:54:48 -04:00
overseer bcdf03dac7 merge: origin/main into 0.5.0 release (keep 0.5.0 versions and notes) 2026-09-18 14:15:15 -04:00
overseer 52cbf33f33 release: advance version to 0.5.0 and add Features 06/07/08 release notes 2026-09-18 14:14:36 -04:00
overseer c4fb2fbac5 Merge pull request 'Feature 08: Quest Completion and Event Log -> dev' (#95) from feature/a526b715-1fd2-4688-9696-a7eeb45f1644-quest-completion-event-log into dev 2026-09-18 07:14:05 -04:00
overseer 0820544fce Completion lifecycle tests (Feature 08, task 7) (#94) 2026-09-18 07:12:47 -04:00
overseer 318d77f443 Derive missed for past-due open instances (Feature 08, task 6) (#93) 2026-09-18 07:09:21 -04:00
overseer 2ec016ebfe Compute was_on_time at completion (Feature 08, task 5) (#92) 2026-09-18 07:02:29 -04:00
overseer c3495bb277 uncomplete_instance reversal event (Feature 08, task 4) (#91) 2026-09-18 06:52:42 -04:00
overseer 775a9906e7 complete_instance (Feature 08, task 3) (#90) 2026-09-18 06:47:45 -04:00
overseer 293efe9705 Derive instance state from latest event (Feature 08, task 2) (#89) 2026-09-18 06:35:50 -04:00
overseer 22797cbc7e Completion business layer wrapping append-only DAO (Feature 08, task 1) (#88) 2026-09-18 06:31:01 -04:00
overseer 743703e943 Merge pull request 'Feature 07: Quest Instance Materialization -> dev' (#85) from feature/4a35e972-4c72-405d-8331-ce0776176784-quest-instance-materialization into dev 2026-09-17 17:19:47 -04:00
overseer 6e32761b0c Guard against stale due_time overwrite (Feature 07 fix) (#87) 2026-09-17 17:17:57 -04:00
overseer 3add2d2f48 Thread configured horizon_days (Feature 07 integration fix) (#86) 2026-09-17 17:07:10 -04:00
overseer c001aca62d End-to-end 28-day generation (Feature 07, task 10) (#84) 2026-09-17 16:38:56 -04:00
overseer 353d88e3af Clamp start to today (no past instances) (Feature 07, task 9) (#83) 2026-09-17 16:12:08 -04:00
overseer f6aad9d20f HA-local timezone + DST boundary tests (Feature 07, task 8) (#82) 2026-09-17 16:06:41 -04:00
overseer 5706d8b7a6 Startup backfill + regenerate service (Feature 07, task 7) (#81) 2026-09-17 15:42:10 -04:00
overseer be6367b600 Schedule the daily generation run at rollover (Feature 07, task 6) (#80) 2026-09-17 15:10:57 -04:00
overseer ca26ced59f Regenerate future instances on presence change (Feature 07, task 5) (#79) 2026-09-17 14:50:50 -04:00
overseer 2146531665 Regenerate future instances on definition change (Feature 07, task 4) (#78) 2026-09-17 14:24:22 -04:00
overseer 168bb7b2f1 Skip completed instances during materialization (Feature 07, task 3) (#77) 2026-09-17 14:09:42 -04:00
overseer 4544f78390 Three-run idempotency with stable instance ids (Feature 07, task 2) (#76) 2026-09-17 14:04:02 -04:00
overseer 9836a6f524 Core generation walk: assignees x windows fan-out with presence (Feature 07, task 1) (#75) 2026-09-17 14:01:20 -04:00
overseer d6823a54bc Merge pull request 'Feature 06: Quest Definitions and Assignment -> dev' (#73) from feature/b61a578c-2139-486e-af46-77303a185386-quest-definitions-assignment into dev 2026-09-17 12:10:07 -04:00
overseer fa40e21dc2 Fix feature-integration review findings F06-001 and F06-002 (#74) 2026-09-17 12:06:47 -04:00
overseer e60a9892ff Tests for the quest definition business layer (Feature 06, task 7) (#72) 2026-09-17 09:58:15 -04:00
overseer 1432dba74c Quest definition query helpers for materialization (Feature 06, task 6) (#71) 2026-09-17 09:49:54 -04:00
overseer 1b6973efd3 Deactivate and reactivate a quest definition (Feature 06, task 5) (#70) 2026-09-17 09:40:15 -04:00
overseer 4606d7ddd0 Assign and unassign children on a quest definition (Feature 06, task 4) (#69) 2026-09-17 09:21:21 -04:00
overseer 802258d431 Edit a quest definition's metadata, schedule rule, and windows (Feature 06, task 3) (#68) 2026-09-17 09:06:11 -04:00
overseer d9cdac87d7 Create a quest definition with rule, assignees, and windows (Feature 06, task 2) (#67) 2026-09-17 08:41:56 -04:00
overseer cbd29f5ab7 Map ScheduleRule models to and from schedule_rules storage (Feature 06, task 1) (#66) 2026-09-17 08:11:19 -04:00
overseer 43a7a722b9 Merge pull request 'Release: Features 14, 03, 05 — quest model, children registry, presence engine (2026-09-15)' (#65) from release/2026-09-15-f14-f03-f05 into main
Reviewed-on: #65
2026-09-16 08:01:05 -04:00
overseer cdfb681f46 Merge pull request 'Dev' (#44) from dev into main
Reviewed-on: #44
2026-09-14 21:36:40 -04:00
overseer 3ecca2d212 Merge pull request 'Feat/ui design tokens' (#43) from feat/ui-design-tokens into dev
Reviewed-on: #43
2026-09-14 21:32:14 -04:00
overseer 30d103aefb Upload files to "design/tokens" 2026-09-14 21:31:55 -04:00
overseer 658afec491 adding in design files 2026-09-14 21:31:32 -04:00
overseer 0637245d33 Merge pull request 'Release: Feature 04 — Recurrence Rule Engine (2026-09-14)' (#34) from release/2026-09-14-f04-recurrence into main
Reviewed-on: #34
2026-09-14 15:14:22 -04:00
overseer a30bafcb68 Merge pull request 'Release: Feature 02 — SQLite Data Layer (2026-09-14)' (#24) from release/2026-09-14-f02-data-layer into main
Reviewed-on: #24
Reviewed-by: The Approver <19+approver_agent@code.cubecraftcreations.com>
Reviewed-by: The Reviewer <18+review_agent@code.cubecraftcreations.com>
2026-09-14 10:22:17 -04:00
overseer 5e65cde078 Merge pull request 'Release: Feature 01 — Integration Scaffold (2026-09-13)' (#11) from release/2026-09-13-f01-scaffold into main
Reviewed-on: #11
2026-09-13 19:54:16 -04:00
overseer ec888b6426 Merge pull request 'docs: add HACS repository metadata and developer setup docs' (#3) from task/b1a42fd5-1911-4ee5-97ba-d4ab9da9d918-hacs-metadata-and-docs into feature/58fafd51-67e5-4691-8b37-cf0bb545207c-integration-scaffold
Reviewed-on: #3
2026-09-13 09:32:14 -04:00