Hour-long remote tasks were never delivered: a subscribe watch held one SSE stream for up to a day, the remote sent nothing while its agent worked without text, and once the quiet connection died on the way (no FIN/RST) the watch waited on it with no error and no log line. - A subscription lasts at most 5 minutes (SubscriptionSlice), then GetTask and a new subscription: a pause, not a failure. A slice ended mid-read counts as ours even when it surfaces as an I/O error. - The shared handler connects with TCP keepalive (60 s, every 15 s, 4 probes) and HTTP/2 pings. - Log lines when a watch starts or is restored, when a slice ends on a running task, when a result is delivered or kept; the Telegram host's console log carries a UTC timestamp. - action=status on a settled task ends its watch, so the result isn't delivered a second time. - A "context busy" refusal of send says nothing was sent, names the watched task in that context and that its result will arrive by itself; refusals never touch a watch.
18 lines
708 B
JSON
18 lines
708 B
JSON
{
|
|
"Logging": {
|
|
"LogLevel": {
|
|
"Default": "Information",
|
|
"Microsoft.Hosting.Lifetime": "Warning",
|
|
"System.Net.Http": "Warning"
|
|
},
|
|
"Console": { "FormatterName": "simple", "FormatterOptions": { "TimestampFormat": "yyyy-MM-dd HH:mm:ss 'UTC' ", "UseUtcTimestamp": true } }
|
|
},
|
|
"Telegram": {
|
|
"BotToken": "",
|
|
"AllowedUserIds": [],
|
|
"Model": "claude-code/claude-opus-5-5"
|
|
},
|
|
"A2A": { "Enabled": false, "PublicUrl": null, "MaxHops": 3, "SessionIdleTimeout": "00:30:00", "MaxFileBytes": 10485760, "AllowPrivatePushUrls": false },
|
|
"A2AClient": { "Enabled": false, "WaitSeconds": 60, "WatchTimeout": "1.00:00:00", "CardTimeoutSeconds": 10, "MaxFileBytes": 10485760 }
|
|
}
|