Commit Graph
100 Commits
Author SHA1 Message Date
Chris Beck e9daba0d7c improve assistant behavior when the service is shutting down 2025-12-14 12:04:36 -07:00
Chris Beck d025b8f587 use cancellation token in claude API as well 2025-12-14 11:48:46 -07:00
Chris Beck 14a56cecfe fixup cancellation in assistant worker 2025-12-14 11:41:39 -07:00
Chris Beck ceb988dc07 abstract the claude module out of the signal-gateway and put interface and ipml in their own crates 2025-12-14 11:22:28 -07:00
Chris Beck 2682ee8ee6 split out log-ingest modules to their own crate 2025-12-13 21:40:30 -07:00
Chris Beck 2ecc614bb5 fix code comment 2025-12-13 21:06:35 -07:00
Chris Beck 51657dbd38 cargo fmt, allow rate-limiting requests to claude 2025-12-13 21:02:17 -07:00
Chris Beck fc7062d976 add readme 2025-12-13 17:14:53 -07:00
Chris Beck f3729ddea9 update code comment 2025-12-12 17:02:16 -07:00
Chris Beck b0496fbc9a integrat the app-code plugin to the signal-gateway-bin 2025-12-09 11:43:25 -07:00
Chris Beck 6c01a5f59f make sha callback async, change caching discipline for tarball 2025-12-09 11:28:13 -07:00
Chris Beck f4cf5b50bf add signal-gateway app-code crate 2025-12-09 11:01:42 -07:00
Chris Beck 775c66b287 use builder pattern with gateway 2025-12-09 09:38:23 -07:00
Chris Beck 6ac6beb9be log the summary when using claude-debug 2025-12-09 09:10:40 -07:00
Chris Beck 4a143bd6d2 make prompt caching optional, run clippy 2025-12-09 09:02:08 -07:00
Chris Beck 19b8561b9b fixup previous 2025-12-09 08:33:51 -07:00
Chris Beck 9d785d21b4 add mvp compaction implementation 2025-12-08 23:40:05 -07:00
Chris Beck 9482b37d6a fix bugs in our usage of claude api 2025-12-08 23:21:26 -07:00
Chris Beck d20fda07b8 add support for multiple system prompt files 2025-12-08 22:54:27 -07:00
Chris Beck 6c6323c6ae add request_debug command 2025-12-08 20:19:04 -07:00
Chris Beck 9aefc03b73 rename claude-stop and claude-compact commands 2025-12-08 20:06:53 -07:00
Chris Beck 99fceda25e rename claudeapi to claudeagent 2025-12-08 20:04:48 -07:00
Chris Beck e280b4118e add a plot tool to claude 2025-12-08 20:03:31 -07:00
Chris Beck 429c4beef9 make claude return AdminMessageResponse instead of string, so it can return files potentially 2025-12-08 19:10:07 -07:00
Chris Beck 4cf90fe61e cargo clippy --fix 2025-12-08 19:07:12 -07:00
Chris Beck f49916811b cargo fmt 2025-12-08 19:06:51 -07:00
Chris Beck c78c2f388e add SourcedAdminMessageResponse to cleanup how AdminMessageResponse is used 2025-12-08 19:06:16 -07:00
Chris Beck 9c7275ed79 simplify configuration, no more subcommands 2025-12-08 18:59:22 -07:00
Chris Beck 996ed1ed0f add and use command-router to simplify the way signal-gateway processes admin commands 2025-12-08 18:39:11 -07:00
Chris Beck 84e2d57688 expose signal chat history to claude as message history
with role attributions, and a new compaction command which just
discards the message buffer.
2025-12-08 00:43:50 -07:00
Chris Beck 9826bbf8c2 move messages schema types to worker 2025-12-07 21:54:44 -07:00
Chris Beck facc288d6a workaround parser limitations for /c command 2025-12-07 21:21:08 -07:00
Chris Beck 0862e3ce38 add support for requesting claude to stop what it's doing if it's taking too long 2025-12-07 20:57:35 -07:00
Chris Beck 63e3eb213c split claude api into an api and a background worker 2025-12-07 20:31:44 -07:00
Chris Beck b8f9030d94 cargo fmt 2025-12-07 19:53:42 -07:00
Chris Beck 70d09ffc98 make claude hold a weak reference back to gateway 2025-12-07 16:28:00 -07:00
Chris Beck 739075f2e2 make Gateway::new return Arc::Self 2025-12-07 16:06:52 -07:00
Chris Beck 6633768df6 add claude module 2025-12-07 15:59:46 -07:00
Chris Beck 0b244b8e38 add regex support 2025-12-07 00:24:39 -07:00
Chris Beck ba69f5d592 add debug supressions feature 2025-12-07 00:17:35 -07:00
Chris Beck 36511d2fd1 re-order fields of log handler config to improve debugging output 2025-12-07 00:07:53 -07:00
Chris Beck 13b6490525 improve debug formatting of config 2025-12-07 00:02:45 -07:00
Chris Beck 35f8ff766d stronger parsing for signal trust set 2025-12-06 23:16:23 -07:00
Chris Beck c2ad134393 add support for toml file parsing, tweak some configuration names 2025-12-06 22:53:08 -07:00
Chris Beck df1616daeb fix code position 2025-12-06 21:11:07 -07:00
Chris Beck 0bc1329fcf fixups after deployment 2025-12-06 21:03:48 -07:00
Chris Beck 0cca1f8da3 remove admin-netcat thing 2025-12-06 20:43:49 -07:00
Chris Beck c62bac4a1d refactor suppression reason overall 2025-12-06 19:47:58 -07:00
Chris Beck 12f0c99ef9 factor out common loop that tests a sequence of limiters 2025-12-06 19:45:33 -07:00
Chris Beck 225b308a26 factor out unnecessary inputs to log handler (ts_sec) 2025-12-06 19:36:52 -07:00
Chris Beck 63ab1a62d3 rejigger collected_at timestamp 2025-12-06 19:32:55 -07:00
Chris Beck 77a0767db5 add CollectedAt to message, get rid of backfilling timestamps with Utc::now() 2025-12-06 19:30:01 -07:00
Chris Beck 7791af162c cargo fmt, fix limiter set evaluate semantics 2025-12-06 19:24:39 -07:00
Chris Beck 20604b1d08 fixups to signal trust set update set 2025-12-06 10:46:46 -07:00
Chris Beck b0d1c1bd92 refactor signal trust set API 2025-12-06 10:21:11 -07:00
Chris Beck f8e214cc8d refactor to move functions onto signal-trust-set 2025-12-06 10:18:01 -07:00
Chris Beck 133a367a36 rename struct to signal trust set 2025-12-06 10:12:33 -07:00
Chris Beck 6ed38cb1fd refactor admin_signal_uuids container 2025-12-06 10:09:54 -07:00
Chris Beck 5779edb610 rename admin safety numbers to admin_signal_uuids 2025-12-06 09:57:40 -07:00
Chris Beck ac6beaf8e4 add conf-test on top-level config 2025-12-06 09:52:55 -07:00
Chris Beck 393d68e5ef remove unnecessary dependencies, put prefix on log handler when flattening 2025-12-06 09:50:33 -07:00
Chris Beck 64bc606201 enable conf serde and test the toml format with our current schema 2025-12-06 03:26:30 -07:00
Chris Beck 0de84bcd60 factor out last async mutex 2025-12-06 02:53:10 -07:00
Chris Beck ae3761bffe make rate limiters thread-safe with fine-grained locks, remove hard locks at higher levels 2025-12-06 02:34:36 -07:00
Chris Beck 9b47963f16 improve the multi rate limiter for correctness (tracking evicted elements) 2025-12-06 02:11:41 -07:00
Chris Beck fed5f7e468 make RateThreshold always >= or < than, and make multiratelimiter respect this
require comparators to be explicit
2025-12-06 00:13:42 -07:00
Chris Beck 9d650c3df2 source locaiton rate limiter is a set of multirate limiters 2025-12-05 23:59:39 -07:00
Chris Beck 4e9704def2 flatten logfilter into route 2025-12-05 23:51:05 -07:00
Chris Beck 928a1aba78 simplify an import 2025-12-05 23:47:31 -07:00
Chris Beck 4f84cacc7b rejigger concurrent map api into lazy map 2025-12-05 23:39:45 -07:00
Chris Beck d2d9754df0 commit a rustfmt toml and merge imports 2025-12-05 23:22:16 -07:00
Chris Beck 5a12cd1bde move rate_limiter_set to its own module 2025-12-05 23:16:33 -07:00
Chris Beck 761877e35e move rate limiter module to top-level 2025-12-05 23:12:24 -07:00
Chris Beck def80bfe64 rearrange code in route.rs for readability 2025-12-05 22:46:15 -07:00
Chris Beck 107bd2a2de improve prefix used with log alerts (summary is only the offending log message) 2025-12-05 22:24:17 -07:00
Chris Beck 04ad4035f9 alternative summary specification 2025-12-05 22:16:31 -07:00
Chris Beck 7a163f3962 rename verified signal message to admin message, reformat 2025-12-05 22:07:22 -07:00
Chris Beck 010a5a9336 rename AdminMessage to SignalAlert message which is less confusing 2025-12-05 22:05:58 -07:00
Chris Beck f3b66541ed simplify log_format code 2025-12-05 21:56:47 -07:00
Chris Beck 3b5e191d75 avoid allocations when formatting log messages, factor out humantime crate 2025-12-05 21:43:26 -07:00
Chris Beck aaeb5b3b28 pre-allocate strings when formatting logs 2025-12-05 20:51:04 -07:00
Chris Beck f969c20e71 move log-message formatting code to its own module 2025-12-05 20:42:22 -07:00
Chris Beck 166aaaf167 respect destination override for outbound messages 2025-12-05 20:35:16 -07:00
Chris Beck 74baa63f50 simplify code that locks log buffer for reading 2025-12-05 20:27:55 -07:00
Chris Beck 3c88ba80a5 rename read_all -> with_read_lock 2025-12-05 20:07:43 -07:00
Chris Beck 2085064d89 rename module jsonrpc to signal_jsonrpc 2025-12-05 19:46:22 -07:00
Chris Beck 1b0a2717e8 move circular_buffer module to root level 2025-12-05 19:43:46 -07:00
Chris Beck 35b274bbd3 clippy 2025-12-05 19:42:30 -07:00
Chris Beck f899d391b9 introduce log_buffer type to cleanup concurrency & correctness
also cargo fmt
2025-12-05 19:40:33 -07:00
Chris Beck a214b8e474 introduce and use new route framework
in this change:

* new "concurrent map" API using RwLock<HashMap> optimized for
  frequent reads.
* we no longer have a concurrent map of log handlers, we instead
  have a log handler containing a concurrent map from origins to
  circular buffers
* we have a general concept of a "Limit" now which replaces AlertRule
* A route consists of a filter, plus any number of limits, which
  can be per-origin limits or global limits
* The set of routes is disjunctive, while the filters and limits are conjunctive
* Limits can also apply per source location
* Different types of rate limiters are unified under the "Limiter"
  abstraction
* The log handler also has a set of overall limiters that can be applied
  at the end
* This means we can relatively easily express disjunctions of conjunctions

I think the route structure will also be relatively easy to express in toml
2025-12-05 19:10:37 -07:00
Chris Beck ffa1246e51 listen on udp and tcp for json logs as well 2025-12-05 15:12:20 -07:00
Chris Beck a42aad48f4 also allow json logs to be sent over a TCP stream, with multiple messages using json_lines ofrmat for framing 2025-12-05 14:49:21 -07:00
Chris Beck 0a5023ce6b fixup to syslog parsing around EOF handling, add tests 2025-12-05 14:31:02 -07:00
Chris Beck e5a18b0630 fix to eof handling on non-transparent message 2025-12-05 14:13:49 -07:00
Chris Beck 914a9910c2 support syslog over TCP as well 2025-12-05 12:45:41 -07:00
Chris Beck 5b98e74f92 add deny missing docs 2025-12-05 11:51:15 -07:00
Chris Beck b3a0894221 add sender id to VerifiedSignalMessage 2025-12-05 11:38:42 -07:00
Chris Beck a7cd3bdcde move Logfilter to the Logmessage module, change MessageHandler to a proper trait 2025-12-05 11:20:58 -07:00
Chris Beck 82ed77a098 add support for udp over json logging 2025-12-05 10:18:39 -07:00
Chris Beck 8bd2e6ab68 add admin_http post forwarding 2025-12-05 09:59:04 -07:00