orchestrator-agent
236e8f4adf
Add the per-child next-quest sensor
2026-09-19 11:55:20 -04:00
orchestrator-agent
1f7a7ba46c
Add the per-child next-quest sensor
...
State carries the earliest open quest's title truncated under the
255-character limit with the full shape in attributes; the documented
"none" sentinel is reported when the day is clear.
2026-09-19 11:54:19 -04:00
orchestrator-agent
813055a24c
Add per-child daily count and percentage sensors
2026-09-19 11:53:28 -04:00
orchestrator-agent
7a0c8d1885
Honor failed platform unload; derive labels from the snapshot
...
A False platform unload now returns False and retains the runtime
record so live entities keep their database. Sensor names and device
labels re-derive from the current snapshot so child renames
propagate; unique_ids stay child-id based.
2026-09-19 11:53:27 -04:00
orchestrator-agent
00409a76db
Add per-child daily count and percentage sensors
...
Four sensors per active child read the coordinator snapshot: quests
due today (carrying the panel payload that omits missed instances plus
the admin payload that includes them, D-009), completed, remaining, and
completion percentage (100 on a zero-quest day). Platform forwarding
wired through the harness's entity registry stand-ins.
2026-09-19 11:50:18 -04:00
orchestrator-agent
322038998b
Add the shared NestQuest data update coordinator
2026-09-19 11:44:13 -04:00
orchestrator-agent
5c99987e7f
Shut the coordinator down when first refresh fails setup
...
The setup except path closes the database; the coordinator created
above it now shuts down first so no listener can fire against the
closed connection. Regression test included.
2026-09-19 11:44:11 -04:00
orchestrator-agent
979eafc5a2
Add the shared NestQuest data update coordinator
...
One refresh pass builds the whole entity snapshot: active children,
today's instances with derived open/done/missed states, per-child
presence via the PresenceEngine (records converted to model objects),
rollup counts, and the custody cycle day. Interval configurable via
the new update_interval option, default five minutes.
2026-09-19 11:41:12 -04:00
orchestrator-agent
3ac1d32e1b
Feature 09: Permission Enforcement Layer
2026-09-19 08:43:36 -04:00
orchestrator-agent
fc81b4b813
Add the permission test matrix across every registered service
2026-09-19 08:40:25 -04:00
orchestrator-agent
c1efd39ce3
Add the permission test matrix across every registered service
...
Admin succeeds on all ten admin-only services; a non-admin and a
no-context call are refused on each; complete_quest stays open; a
kiosk-style id is refused on uncomplete_quest and regenerate; the
registry coverage assertion fails the suite on any gap.
2026-09-19 08:40:20 -04:00
orchestrator-agent
cf67e9bed9
Test the permission gate audit logging
2026-09-19 08:39:08 -04:00
orchestrator-agent
b5058a3bed
Test the permission gate's audit logging
...
Warning on denial and debug on success carry the service, the caller
user id (or none), and a UTC stamp; nothing beyond the user id leaks.
2026-09-19 08:39:02 -04:00
orchestrator-agent
eb4de7b565
Cover fail-closed no-context behavior across admin-only services
2026-09-19 08:38:29 -04:00
orchestrator-agent
d0f49b44b5
Cover fail-closed no-context behavior across admin-only services
...
Parametrised test denies no-context calls on every admin-only service;
complete_quest proceeds with no user; scheduled internals stay direct
function calls.
2026-09-19 08:38:24 -04:00
orchestrator-agent
2a0e568940
Gate every NestQuest service behind the admin permission check
2026-09-19 08:37:47 -04:00
orchestrator-agent
37d7b7e6c3
Gate every NestQuest service behind the admin permission check
...
permission_gate wraps all registered services at registration time:
admin-only policy reads call.context.user_id against admin_allowlist
is_admin (fail closed on no context); complete_quest stays open.
2026-09-19 08:36:14 -04:00
orchestrator-agent
dd7ea10936
Add admin-only versus open service policy registry
2026-09-18 16:07:56 -04:00
orchestrator-agent
4281b9d01c
Add admin-only versus open service policy registry
...
One mapping in service_policy.py: complete_quest is open, every other
registered nestquest service is admin_only.
2026-09-18 16:05:12 -04:00
orchestrator-agent
a2e9bdffee
Register canonical NestQuest HA services with schemas
...
Register canonical NestQuest HA services with schemas (#98 )
2026-09-18 16:03:50 -04:00
orchestrator-agent
b1c42f10d0
Regenerate child instances after presence service writes
...
Presence pattern and override handlers now call regenerate_for_child.
Definition edit/activate pass HA-local today and configured horizon.
2026-09-18 16:03:42 -04:00
orchestrator-agent
2d30f0ce77
Register canonical NestQuest HA services with schemas
...
Domain-global handlers for the ENTITIES-AND-SERVICES inventory plus
regenerate. No permission decorator yet.
2026-09-18 15:59:02 -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