garrytan-agents
f1dbe6eaa9
feat: gbrain-context OpenClaw context engine — deterministic temporal/spatial injection
...
Adds a context engine plugin that runs on every assemble() call to inject
structured live context into the system prompt:
- Garry's current local time (computed from heartbeat-state.json timezone)
- Current location (city + timezone from heartbeat or flight data)
- Home time when traveling (e.g. 'Mon 7:58 AM PT')
- Active travel status
- Quiet hours detection
- Airport→timezone mapping for 30+ airports
This kills the 'time warp' bug class where compacted sessions lose track
of time/location. The engine delegates compaction to the legacy runtime
and only owns systemPromptAddition injection. Zero LLM calls, <5ms.
Files:
- src/core/context-engine.ts — engine implementation (SDK-free, testable)
- src/openclaw-context-engine.ts — plugin entry point (requires SDK)
- test/context-engine.test.ts — 9 tests, all passing
Enable: plugins.slots.contextEngine = 'gbrain-context'
2026-05-11 15:08:28 +00:00
..
2026-05-10 20:50:40 -07:00
2026-05-09 21:18:53 -07:00
2026-04-29 23:46:36 -07:00
2026-05-10 20:06:31 -07:00
2026-05-10 20:06:31 -07:00
2026-04-21 21:14:17 -07:00
2026-05-09 16:57:47 -07:00
2026-05-10 06:34:40 -07:00
2026-05-10 20:06:31 -07:00
2026-05-10 20:06:31 -07:00
2026-04-29 23:46:36 -07:00
2026-04-20 07:30:00 +08:00
2026-05-07 21:52:58 -07:00
2026-05-06 20:39:56 -07:00
2026-05-02 08:41:11 -07:00
2026-04-22 01:34:22 -07:00
2026-05-10 06:34:40 -07:00
2026-05-10 20:06:31 -07:00
2026-05-10 20:06:31 -07:00
2026-05-02 08:41:11 -07:00
2026-05-08 13:25:48 -07:00
2026-05-09 20:46:34 -07:00
2026-05-08 13:25:48 -07:00
2026-04-14 19:41:34 -10:00
2026-05-02 22:01:05 -07:00
2026-05-02 22:01:05 -07:00
2026-04-26 20:45:05 -07:00
2026-05-10 13:20:07 -07:00
2026-05-09 19:47:56 -07:00
2026-05-10 18:59:11 -07:00
2026-05-10 20:50:40 -07:00
2026-05-08 13:25:48 -07:00
2026-05-08 13:25:48 -07:00
2026-05-11 15:08:28 +00:00
2026-05-09 16:57:47 -07:00
2026-04-14 19:41:34 -10:00
2026-05-08 13:25:48 -07:00
2026-04-27 22:59:08 -07:00
2026-05-03 20:41:39 -07:00
2026-04-29 22:21:07 -07:00
2026-05-10 18:59:11 -07:00
2026-04-23 19:34:27 -07:00
2026-05-07 21:52:58 -07:00
2026-05-06 20:58:19 -07:00
2026-05-07 10:03:38 -07:00
2026-04-11 00:01:09 -10:00
2026-05-10 13:33:05 -07:00
2026-04-22 01:34:22 -07:00
2026-04-25 12:25:34 -07:00
2026-05-01 09:02:43 -07:00
2026-05-01 09:02:43 -07:00
2026-04-29 23:46:36 -07:00
2026-04-22 01:34:22 -07:00
2026-04-30 23:17:54 -07:00
2026-04-29 23:46:36 -07:00
2026-04-29 23:26:25 -07:00
2026-05-06 21:14:34 -07:00
2026-05-10 12:49:14 -07:00
2026-04-05 12:48:10 -07:00
2026-05-10 13:20:07 -07:00
2026-04-26 20:45:05 -07:00
2026-05-09 19:47:56 -07:00
2026-05-10 12:49:14 -07:00
2026-05-10 20:06:31 -07:00
2026-05-03 20:16:15 -07:00
2026-05-10 13:33:05 -07:00
2026-05-09 22:58:19 -07:00
2026-05-07 21:52:58 -07:00
2026-05-10 13:33:05 -07:00
2026-05-06 21:14:34 -07:00
2026-05-10 13:33:05 -07:00
2026-04-22 01:34:22 -07:00
2026-05-10 12:49:14 -07:00
2026-05-10 13:33:05 -07:00
2026-05-09 20:46:34 -07:00
2026-04-21 17:54:13 -07:00
2026-05-07 22:56:22 -07:00
2026-05-10 13:20:07 -07:00
2026-05-10 13:20:07 -07:00
2026-05-08 13:25:48 -07:00
2026-04-30 23:17:54 -07:00
2026-05-10 12:49:14 -07:00
2026-04-27 22:59:08 -07:00
2026-05-06 21:14:34 -07:00
2026-04-23 19:34:27 -07:00
2026-04-29 22:21:07 -07:00
2026-05-06 21:14:34 -07:00
2026-05-09 22:58:19 -07:00
2026-04-29 22:21:07 -07:00
2026-04-09 10:17:13 -07:00
2026-05-08 13:25:48 -07:00
2026-04-29 22:53:41 -07:00
2026-05-10 06:34:40 -07:00
2026-05-10 06:34:40 -07:00
2026-05-07 23:07:00 -07:00
2026-05-10 18:59:11 -07:00
2026-04-14 19:41:34 -10:00
2026-05-07 21:52:58 -07:00
2026-05-10 13:33:05 -07:00
2026-05-08 13:25:48 -07:00
2026-05-08 13:25:48 -07:00
2026-05-06 21:14:34 -07:00
2026-05-07 23:07:00 -07:00
2026-05-08 13:25:48 -07:00
2026-04-09 10:17:13 -07:00
2026-05-06 11:54:06 -07:00