Conroy Whitney
08886eaaa3
test: add DST boundary test for timestamp injection
...
Verifies that America/New_York correctly resolves to midnight for
both EST (winter, UTC-5) and EDT (summer, UTC-4) using the same
IANA timezone. Intl.DateTimeFormat handles the DST transition.
2026-01-31 09:47:27 -06:00
Conroy Whitney
bbf2205640
feat(gateway): inject timestamps into chat.send (webchat/TUI)
...
The chat.send handler (used by webchat and TUI) is a separate path
from the agent handler. Inject timestamp into BodyForAgent (what the
model sees) while keeping Body raw for UI display.
This completes timestamp coverage for all non-channel paths:
- agent handler: spawned subagents, sessions_send, heartbeats
- chat.send: webchat, TUI
2026-01-31 09:47:27 -06:00
Conroy Whitney
582a4e261a
feat(gateway): inject timestamps into agent handler messages
...
Messages arriving through the gateway agent method (TUI, web, spawned
subagents, sessions_send, heartbeats) now get a timestamp prefix
automatically. This gives all agent contexts date/time awareness
without modifying the system prompt (which is cached for stability).
Channel messages (Discord, Telegram, etc.) already have timestamps
via envelope formatting in a separate code path and never reach
the agent handler, so there is no double-stamping risk.
Cron jobs also inject their own 'Current time:' prefix and are
detected and skipped.
Extracted as a pure function (injectTimestamp) with 12 unit tests
covering: timezone handling, 12/24h format, midnight boundaries,
envelope detection, cron detection, and empty messages.
Integration test verifies the agent handler wires it in correctly.
Closes #3658
Refs: #1897 , #1928 , #2108
2026-01-31 09:47:27 -06:00
Peter Steinberger
83e64c1ac9
docs: start 2026.1.31 changelog
2026-01-31 16:28:19 +01:00
Seb Slight
8978d16659
Docs: fix index logo dark mode ( #5474 )
2026-01-31 15:55:59 +01:00
Josh Palmer
7a6c40872d
Agents: add system prompt safety guardrails ( #5445 )
...
* 🤖 agents: add system prompt safety guardrails
What:
- add safety guardrails to system prompt
- update system prompt docs
- update prompt tests
Why:
- discourage power-seeking or self-modification behavior
- clarify safety/oversight priority when conflicts arise
Tests:
- pnpm lint (pass)
- pnpm build (fails: DefaultResourceLoader missing in pi-coding-agent)
- pnpm test (not run; build failed)
* 🤖 agents: tighten safety wording for prompt guardrails
What:
- scope safety wording to system prompts/safety/tool policy changes
- document Safety inclusion in minimal prompt mode
- update safety prompt tests
Why:
- avoid blocking normal code changes or PR workflows
- keep prompt mode docs consistent with implementation
Tests:
- pnpm lint (pass)
- pnpm build (fails: DefaultResourceLoader missing in pi-coding-agent)
- pnpm test (not run; build failed)
* 🤖 docs: note safety guardrails are soft
What:
- document system prompt safety guardrails as advisory
- add security note on prompt guardrails vs hard controls
Why:
- clarify threat model and operator expectations
- avoid implying prompt text is an enforcement layer
Tests:
- pnpm lint (pass)
- pnpm build (fails: DefaultResourceLoader missing in pi-coding-agent)
- pnpm test (not run; build failed)
2026-01-31 15:50:15 +01:00
Seb Slight
75093ebe1c
Docs: add actionable cron quick start ( #5446 )
...
* Docs: add cron quick start examples
* Docs: de-duplicate cron tool-call examples
* Docs: fix cron code block fences
2026-01-31 15:21:31 +01:00
cpojer
fcf08299fa
chore: Enable experimentalSortPackageJson in oxfmtrc.jsonc.
2026-01-31 23:19:40 +09:00
cpojer
1f2fb823a3
fix: CI: Run build and lint together since lint depends on build now.
2026-01-31 23:15:15 +09:00
cpojer
36b0070b71
fix: Build before linting in CI since we are now linting the extensions folder with --type-aware.
2026-01-31 23:08:24 +09:00
cpojer
230ca789e2
chore: Lint extensions folder.
2026-01-31 22:42:45 +09:00
Peter Steinberger
4f2166c503
chore: update appcast for 2026.1.30
2026-01-31 14:31:00 +01:00
Peter Steinberger
7d89855c55
fix: align npm publish metadata
2026-01-31 14:21:21 +01:00
cpojer
aa91f6e700
chore: Add openclaw to devDependencies for all extensions so that types resolve.
2026-01-31 22:06:51 +09:00
cpojer
59cfff02f6
chore: Emit TypeScript declaration files so that we can type-check the extensions folder soon.
2026-01-31 21:57:21 +09:00
cpojer
1838ab019b
chore: Enable linting in scripts.
2026-01-31 21:29:14 +09:00
cpojer
0ffc251704
chore: Updated lint config using ignorePatterns.
2026-01-31 21:24:21 +09:00
cpojer
76b5208b11
chore: Also format scripts and skills.
2026-01-31 21:21:25 +09:00
Armin Ronacher
a767c584c7
Add prompt injection attacks to out of scope section
2026-01-31 13:17:24 +01:00
cpojer
8cab78abbc
chore: Run pnpm format:fix.
2026-01-31 21:13:13 +09:00
cpojer
dcc2de15a6
chore: Enable formatting of files other than src and test.
2026-01-31 21:12:46 +09:00
Peter Steinberger
1287328b6f
feat: add MiniMax OAuth plugin ( #4521 ) (thanks @Maosghoul)
2026-01-31 12:42:45 +01:00
Peter Steinberger
b9b94715fa
fix: avoid stderr backpressure in macOS discovery ( #3304 ) (thanks @abhijeet117)
2026-01-31 12:03:30 +01:00
abhijeet117
efb93d18cf
Fix potential subprocess hang by discarding stderr pipe
2026-01-31 12:03:30 +01:00
Peter Steinberger
c3a8a5374f
fix: sync docker-compose gateway command
2026-01-31 10:54:46 +00:00
Peter Steinberger
247fab47ca
chore: bump version to 2026.1.30
2026-01-31 11:37:36 +01:00
cpojer
dae00fe184
fix: Update CONTRIBUTING.md + adjust watch-node.mjs again to be faster with tsc.
2026-01-31 19:36:07 +09:00
cpojer
76361ae3ab
revert: Switch back to tsc for compiling.
2026-01-31 18:31:49 +09:00
Peter Steinberger
e25fedf932
fix: retry gateway watch after dist rebuild
2026-01-31 09:18:33 +00:00
Peter Steinberger
ddc5683c67
fix: resolve workspace templates from package root
2026-01-31 09:07:49 +00:00
cpojer
68ba1afb34
fix: Fix scripts/watch-node.mjs and use tsdown --watch.
2026-01-31 17:55:49 +09:00
cpojer
4b7406719c
fix: Update a few more entry.js to entry.mjs paths.
2026-01-31 17:45:00 +09:00
Mariano Belinky
821ed35be1
Revert "iOS: align node permissions and notifications"
...
This reverts commit b17e6fdd07 .
2026-01-31 09:32:36 +01:00
cpojer
ed65131c1c
fix: Also build entry.ts into dist/entry.mjs.
2026-01-31 17:26:39 +09:00
Peter Steinberger
1766cd4123
build: add typescript for a2ui bundling
2026-01-31 08:23:10 +00:00
cpojer
d4ed79ffd0
chore: signal-utils is actually used too.
2026-01-31 17:15:03 +09:00
cpojer
86d38c2d82
chore: Oops, "long" is actually used + fix TypeScript error.
2026-01-31 17:12:28 +09:00
cpojer
88fe4de151
chore: Remove unused deps.
2026-01-31 17:11:19 +09:00
Peter Steinberger
ee26b68fe1
fix: lint cleanups
2026-01-31 07:59:01 +00:00
Peter Steinberger
a42e1c82d9
fix: restore tsc build and plugin install tests
2026-01-31 07:54:15 +00:00
cpojer
c4feb7a457
chore: Fix TypeScript errors 5/n.
2026-01-31 16:49:55 +09:00
cpojer
9e908ad6be
chore: Fix TypeScript errors 4/n.
2026-01-31 16:48:44 +09:00
cpojer
3282d22dd9
chore: Fix TypeScript errors 3/n.
2026-01-31 16:47:03 +09:00
cpojer
952b0f8c48
chore: Fix TypeScript errors 2/n.
2026-01-31 16:42:40 +09:00
cpojer
e5eb9610dc
chore: Fix TypeScript errors 1/n.
2026-01-31 16:38:03 +09:00
cpojer
2957d4306d
chore: Update tsconfig.json target, oops.
2026-01-31 16:28:44 +09:00
cpojer
b56e7e66cc
chore: Update deps + pnpm dedupe.
2026-01-31 16:26:05 +09:00
cpojer
0fc4d7f52a
chore: Remove unused file.
2026-01-31 16:25:06 +09:00
cpojer
5ceff756e1
chore: Enable "curly" rule to avoid single-statement if confusion/errors.
2026-01-31 16:19:20 +09:00
cpojer
009b16fab8
chore: more lint cleanup.
2026-01-31 16:16:13 +09:00