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