107 Commits
Author SHA1 Message Date
jamesread 5741c8ea2c feat: Alpha support for search (behind feature gate) 2026-08-06 22:24:05 +01:00
jamesread 0b2a5995ff chore: coderabbit knows better than me
Build & Release pipeline / build (push) Canceled after 0s
Codestyle checks / codestyle (push) Canceled after 0s
Antora docs / antora (push) Canceled after 0s
Build & Release pipeline / Sign Windows artifacts (SignPath) (push) Canceled after 0s
Antora docs / trigger-docs-publish (push) Canceled after 0s
2026-07-29 01:25:44 +01:00
jamesread 7ecc7791d8 chore: golangci-lint fixes 2026-07-29 00:30:57 +01:00
jamesread a1f03e7d33 chore: fieldalignment across code base to reduce memory usage 2026-07-28 22:26:51 +01:00
jamesread e6a232f21b chore: Turn up golang lint, and fix some minor error handling stuff 2026-07-28 22:13:56 +01:00
jamesread a080f4ee2d chore: Turn up golang lint, and fix some minor error handling stuff 2026-07-28 22:11:37 +01:00
jamesread e5d29b68da fix: close shellAfterCompleted output injection bypass, and docs consistency
Rewrite all output/exitCode template forms to env refs and omit them
  from template args so command output cannot reach sh -c.
  (GHSA-vc6p)
2026-07-28 16:57:52 +01:00
jamesread 839d244e51 fix: intermediate output and comfirmation
Build & Release pipeline / build (push) Canceled after 0s
Codestyle checks / codestyle (push) Canceled after 0s
Antora docs / antora (push) Canceled after 0s
Build & Release pipeline / Sign Windows artifacts (SignPath) (push) Canceled after 0s
Antora docs / trigger-docs-publish (push) Canceled after 0s
2026-07-27 23:17:42 +01:00
jamesread 18903853fb fix: A single entities read failure wont clear all entities 2026-07-25 22:20:52 +01:00
jamesread 6eb3827ddd feat: dnsname argument type
Build & Release pipeline / build (push) Canceled after 0s
Buf CI / buf (push) Canceled after 0s
Codestyle checks / codestyle (push) Canceled after 0s
Antora docs / antora (push) Canceled after 0s
Build & Release pipeline / Sign Windows artifacts (SignPath) (push) Canceled after 0s
Antora docs / trigger-docs-publish (push) Canceled after 0s
2026-07-25 22:00:02 +01:00
James Read ecc5c64046 feat: Show config issues in diagnostics (#1087) 2026-07-25 21:25:11 +01:00
jamesread fe1ac20935 feat: Show config issues in diagnostics 2026-07-24 15:27:02 +01:00
jamesreadandCursor c4531b344e fix(executor): sanitize unsafe chars in log filenames
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-24 07:12:03 +01:00
jamesread 25b80e1460 fmt: Code style and linter 2026-07-18 22:46:05 +01:00
jamesreadandCursor e2bf82ff9c fix(#952): carry arguments when rerunning an action
Build & Release pipeline / build (push) Has been cancelled
Codestyle checks / codestyle (push) Has been cancelled
The Rerun button ignored the original arguments and always started
actions with an empty argument set, so actions that take arguments
threw instead of re-running.

Rerun now reuses the arguments stored on the log entry: complete
runs restart directly, and incomplete ones (missing values, or
password / very_dangerous_raw_string fields) open the argument form
pre-filled via history.state. Justification-required actions always
re-prompt so each execution is explicitly justified.

Storable arguments are copied onto the log entry only after argument
parsing succeeds, so failed executions no longer persist arguments
that could be replayed.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 17:06:04 +01:00
jamesread 8eda67a39e fix(docs): correct shellAfterCompleted quoting for output and exitCode
The after-completion example put {{ output }} and {{ exitCode }} inside
  single-quoted shell arguments, so  and  never expanded
  after substituteShellAfterCompletedEnvRefs runs.
  Update the apprise sample to use printf-based quoting that allows env
  substitution, document the single-quote pitfall, and extend
  TestShellAfterCompletedUsesOutputEnvSafely to assert stdout is
  substituted as well as injection being blocked.
2026-07-08 14:01:43 +01:00
jamesreadandCursor 4ef86abee7 security: GHSA-vc6p-m6vx-6cwq (HIGH) harden shellAfterCompleted execution
Build & Release pipeline / build (push) Has been cancelled
Codestyle checks / codestyle (push) Has been cancelled
Route output and exitCode through OUTPUT/EXITCODE environment variables
instead of shell interpolation, and block shellAfterCompleted for webhook
actions.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 12:29:37 +01:00
jamesread 1396184777 fix(executor): always anchor custom regex patterns and harden shellAfterCompleted
Wrap regex: patterns in a non-capturing group before applying ^...$ so
  alternation cannot bypass full-string matching. Return template parse
  errors from buildShellAfterCommand, and guard nil binding/action before
  building shellAfterCompleted commands.
2026-07-08 10:46:13 +01:00
jamesreadandCursor 0e45f3b0e3 security: GHSA-xc5w-4v5w-7x65 (HIGH) harden shell argument type safety
Block additional unvalidated argument types from shell actions, enforce
full-string custom regex matching, and allowlist http/https URL schemes.

Update checkbox integration test to use exec, matching the intended shell
vs exec split for choiceless checkbox arguments.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 09:40:48 +01:00
jamesread 42f2572616 fix(config): reject ambiguous checklist comma format and propagate encode errors
Build & Release pipeline / build (push) Has been cancelled
Codestyle checks / codestyle (push) Has been cancelled
ParseChecklistValue now accepts JSON arrays or single bare values and rejects
  legacy comma-separated input. Empty JSON segments are validated consistently,
  and FormatChecklistValue returns marshal errors instead of an empty string
2026-07-07 11:57:20 +01:00
jamesread 9dc51df01d fix: harden checklist JSON wire format, entity pagination, and review findings across API and UI 2026-07-07 10:14:17 +01:00
jamesreadandCursor a530dca579 refactor: collapse action justification into a string template field
Use a single justification string for both requirement and templating so
empty values skip prompts while templates can prefill audit reasons at start.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 20:36:30 +01:00
jamesread b18518ebea fix: add support for entities in checklists 2026-07-06 12:17:03 +01:00
jamesread e24ae6265b feat: Checklist support (#922) 2026-07-06 11:01:22 +01:00
jamesread a413f9d6af chore: fix flakey tests 2026-06-29 00:03:31 +01:00
James Read 5fca2d9482 Merge branch 'next' into feat/better-prometheus-metrics 2026-06-28 23:17:28 +01:00
jamesread 57f3ef46ad fix: several merge messes 2026-06-28 22:52:16 +01:00
jamesread 42003da384 fix: rerun args 2026-06-26 23:25:24 +01:00
jamesread d1787a3823 feat: Better prometheus support 2026-06-25 23:05:47 +01:00
jamesread 03d188337e fix: Parse templates in action (#1035) 2026-06-20 00:26:13 +01:00
jamesread 7bd6e77ae2 chore: fix race conditions and little bugs 2026-06-19 09:56:41 +01:00
jamesread 633d9ecd82 feat: action group sizing 2026-06-18 23:33:27 +01:00
jamesread de63793b3a feat: circle indicator for running actions, justification support 2026-06-17 23:29:30 +01:00
jamesread f4b3c4289a chore: Fix many little niggly bugs, test flakes, etc 2026-06-17 22:18:26 +01:00
jamesread 6aa672e6c0 feat: Logs filtering, and log queue with group concurrency 2026-06-16 14:16:43 +01:00
jamesread ebffd9f040 security: GHSA-prj9-97mp-mwh2 (HIGH) Treat all ot_ system arguments as reserved, preventing RCE
Ensure OliveTin-owned arguments are injected only after filtering and validate system values before command execution.
2026-05-31 22:44:40 +01:00
jamesread bc5e9fbe1e security: GHSA-xx6g-43w2-9g6g (MODERATE) Email argument makes compliance harder, enables log injection 2026-03-10 23:27:09 +00:00
jamesread 2f77000de4 security: GHSA-364q-w7vh-vhpc (HIGH) Unsafe parsing of UniqueTrackingId can be used to write files 2026-03-08 23:29:00 +00:00
jamesread 5ff6b5d080 fix: Entity ordering (#886, #762) 2026-03-08 22:16:24 +00:00
jamesread 9080577f2b chore: potential crash in unit tests 2026-03-05 08:10:56 +00:00
jamesread 00cb5a2abf fix: action triggers were broken #914 2026-03-04 23:12:20 +00:00
jamesread 0c47564652 chore: logs are written with 0600 instead of 0644 2026-03-04 23:12:20 +00:00
jamesread 4744169aa0 chore: code cleanup, remove todos, etc 2026-02-26 23:07:07 +00:00
jamesread 38d6b57077 chore: codefmt 2026-02-25 23:24:02 +00:00
jamesread 4bbd2eab15 security: GHSA-49gm-hh7w-wfvf 2026-02-22 10:19:08 +00:00
jamesread 1248ee8765 chore: remove extranious comments 2026-02-13 23:36:16 +00:00
jamesread b777d599aa fix: Massive cleanup of template parsing 2026-02-07 00:09:46 +00:00
James Read 54080efdf3 Fix move tpl to global (#848) 2026-01-26 11:33:36 +00:00
jamesread 0e0bbd3fdb fix: Nil binding on entity logs caused a NPE
Build & Release pipeline / build (push) Has been cancelled
Buf CI / buf (push) Has been cancelled
2026-01-26 00:34:39 +00:00
jamesread b37f035ea6 fix: Move templating functionality to global, making it possible to replace templates across the config 2026-01-25 10:32:22 +00:00