Commit Graph

845 Commits

Author SHA1 Message Date
Oliver Kieselbach 31f8d2af37 some sec hardenings 2026-03-31 04:56:07 +02:00
Oliver Kieselbach 2625d1f948 fix Summary Dialog taskbar icon 2026-03-31 04:15:49 +02:00
Oliver Kieselbach ac7aabe43b fix ntpserver default 2026-03-31 03:41:22 +02:00
Oliver Kieselbach af721bfa21 fix save of timezone toggle 2026-03-31 03:29:07 +02:00
Oliver Kieselbach d9c4ea2657 agent emergency channel established 2026-03-31 03:07:52 +02:00
Oliver Kieselbach f0cb6e55e8 agent emergency channel established 2026-03-31 03:07:30 +02:00
Oliver Kieselbach 4cf169f8af improve MCP server: audit fixes + split tools into domain modules
- Add tool annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to all 23 tools
- Add isError flag to error responses (403, 503, KB not ready) for proper MCP error signaling
- Replace global token state with AsyncLocalStorage to prevent cross-session token leaks
- Add session TTL cleanup (12h interval, 2h max age) for abandoned sessions
- DRY server version string from package.json instead of 3x hardcoded
- Split 1060-line tools.ts into domain modules: sessions (359), search (353), admin (351)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 01:10:16 +02:00
Oliver Kieselbach 3cfe88c791 changed settings 2026-03-31 00:30:03 +02:00
Oliver Kieselbach 1d8db409ca even more convenient fuzzy search 2026-03-30 22:40:07 +02:00
Oliver Kieselbach 3e71cf036e more robust timestamp handling and tests 2026-03-30 21:55:17 +02:00
Oliver Kieselbach 3ca642006f updated settings 2026-03-30 21:26:51 +02:00
Oliver Kieselbach d66f90be50 updated mcp tools 2026-03-30 21:07:22 +02:00
Oliver Kieselbach 09156f64ad polished bootstrapper ps1 2026-03-30 18:13:16 +02:00
Oliver Kieselbach eccb8cf945 added mcp docs 2026-03-30 18:05:35 +02:00
Oliver Kieselbach 705555369f fix bootstrapper scripts broken by non-ASCII characters
PowerShell 5.1 (used by IME) reads scripts without BOM as ANSI,
corrupting UTF-8 multi-byte chars (em-dashes, Unicode symbols) and
causing cascading parse errors that prevented agent installation.

Replaced all non-ASCII characters with ASCII equivalents in both
Install and Uninstall bootstrap scripts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 18:04:01 +02:00
Oliver Kieselbach ed3bbc8acb added Timezone autoset option in agent settings 2026-03-30 17:27:13 +02:00
Oliver Kieselbach cc741a21e8 changed metrics view for mcp 2026-03-30 17:19:10 +02:00
Oliver Kieselbach f6ecccfa62 tool allowance 2026-03-30 17:08:49 +02:00
Oliver Kieselbach da31b91851 added mcp summary tool 2026-03-30 17:01:29 +02:00
Oliver Kieselbach 359a46d516 updated tenant filter 2026-03-30 16:56:52 +02:00
Oliver Kieselbach c0879311cc updated agent params incl. docs 2026-03-30 16:34:38 +02:00
Oliver Kieselbach 46c9779e7c updated docs for agent params 2026-03-30 16:24:10 +02:00
Oliver Kieselbach 274f051b94 added collapse/expand to config categories in sidebar 2026-03-30 15:54:40 +02:00
Oliver Kieselbach 4e1c201aee chore tasks.md 2026-03-30 15:47:40 +02:00
Oliver Kieselbach 868f525162 updated build counter 2026-03-30 15:45:55 +02:00
Oliver Kieselbach 7333ede916 Merge branch 'claude/review-reliability-errors-eHvua' into main 2026-03-30 15:44:54 +02:00
Oliver Kieselbach c1d1aac9cc added agent reboot tracking 2026-03-30 15:26:28 +02:00
Oliver Kieselbach 64cf23e4b0 re-ordering 2026-03-30 14:50:46 +02:00
Oliver Kieselbach 0955fd79dc sidebar new structure (more logical), top navbar mobile view fix 2026-03-30 14:34:24 +02:00
Claude de411ba4ac fix: move logger calls outside locks, protect SignalsSeen reads
Self-review fixes for the EnrollmentTracker locking commit:
- NotifyDesktopArrived: move _logger.Debug outside lock (no I/O under lock)
- CollectDeviceInfoAtFinalizingSetup: same pattern
- EmitEnrollmentFailed: wrap _stateData.SignalsSeen copy in lock via
  SnapshotSignalsSeen() to prevent InvalidOperationException if
  RecordSignal modifies the list concurrently
- WriteFinalStatus: same fix for SignalsSeen access

https://claude.ai/code/session_01EWzmYXFmXUaPpeksi6WGKZ
2026-03-30 11:11:57 +00:00
Claude 0130609a2d fix: add thread-safe synchronization to EnrollmentTracker shared state
All mutable state fields accessed from multiple threads (timer callbacks,
ImeLogTracker events, EspAndHelloTracker events, desktop detection,
background Task.Run) are now protected by a single _stateLock.

Key fixes:
- TryEmitEnrollmentComplete: atomic guard-check-and-claim prevents double
  enrollment_complete emission (the most critical race condition)
- RecordSignal: List<string> mutations are now thread-safe
- NotifyDesktopArrived: atomic check-and-set prevents duplicate processing
- CollectDeviceInfo: _enrollmentType/_skipUserStatusPage writes are visible
  to concurrent readers immediately after lock release
- OnHelloCompleted/OnWaitingForHelloSafetyTimeout: consistent multi-field
  reads prevent wrong branch selection
- SummaryTimerCallback: _stateDirty flag and _stateData serialization are
  synchronized to prevent corrupted state persistence
- EmitAppTrackingSummaryIfChanged: hash comparison is atomic to prevent
  duplicate summary events

Lock discipline: all lock sections contain ONLY field reads/writes — no
_emitEvent, _logger, timer operations, or external callbacks. This
guarantees no deadlocks and microsecond-level contention.

https://claude.ai/code/session_01EWzmYXFmXUaPpeksi6WGKZ
2026-03-30 10:52:45 +00:00
Claude 2ced2e18bb fix: improve reliability across agent, backend, and web layers
- BackendApiClient: dispose HttpRequestMessage/HttpResponseMessage, cap Retry-After delay
- EmergencyReporter: add lock for thread-safe anti-flood state access
- GeoLocationService: use static HttpClient to prevent socket exhaustion
- EnrollmentTracker: wrap fire-and-forget Task.Run in try-catch
- NtpTimeCheckService: validate NTP response length and leap indicator
- GraphTokenService: cap Retry-After delay at 120s
- NdjsonParser: gracefully skip malformed JSON event lines
- authenticatedFetch: add 30s default timeout via AbortSignal
- SignalRContext: clear retry timeout on unmount to prevent memory leak
- MCP client: add 30s request timeout

https://claude.ai/code/session_01EWzmYXFmXUaPpeksi6WGKZ
2026-03-30 10:23:13 +00:00
Oliver Kieselbach 0af770599f updated changelog 2026-03-30 02:02:11 +02:00
Oliver Kieselbach 73d5a62a88 fixes, timezone pasing, load session details, session load, ntp waning (clock skew) 2026-03-30 01:31:07 +02:00
Oliver Kieselbach b77bcd5a18 route change 2026-03-29 23:21:34 +02:00
Oliver Kieselbach 2286ccfac3 more logging 2026-03-29 23:05:45 +02:00
Oliver Kieselbach e7e23f8243 fix merge call 2026-03-29 22:59:20 +02:00
Oliver Kieselbach d1ffac14bc hardened integrity check of agent via SHA256 from version.json and agent config (download and runtime check) 2026-03-29 22:56:11 +02:00
Oliver Kieselbach 8654cbbf42 added agent crash detection, added platform metrics 2026-03-29 21:15:01 +02:00
Oliver Kieselbach 815dc47886 mcp usage fix, backend datetime fix, agent fix orphaned session handling 2026-03-29 17:13:28 +02:00
Oliver Kieselbach 66cc6af20f added user requests rate limiter, mcp tools bugfix, optimized request pipeline, mcp usage data retention, mcp plantier management 2026-03-29 16:12:15 +02:00
Oliver Kieselbach e88749e794 tracking only for mcp 2026-03-29 14:57:13 +02:00
Oliver Kieselbach 085f1f0f0f fixed normalizer 2026-03-29 14:37:53 +02:00
Oliver Kieselbach 762bcfde34 better debug logging 2026-03-29 14:33:52 +02:00
Oliver Kieselbach 9e278db162 added logging for debug 2026-03-29 14:24:18 +02:00
Oliver Kieselbach b1434a6d6d change mcp server name 2026-03-29 14:11:22 +02:00
Oliver Kieselbach f6d685392a request telemetry, fixed usage logging bug 2026-03-29 14:06:43 +02:00
Oliver Kieselbach f20670db66 changed hosts logging 2026-03-29 13:45:22 +02:00
Oliver Kieselbach dbb8c20a45 fixed usage log, fixed mcp tools, fixed version comparer vul report 2026-03-29 13:28:00 +02:00
Oliver Kieselbach ceea328fae vul report rescan bugfix 2026-03-29 13:09:12 +02:00