You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+51-50Lines changed: 51 additions & 50 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,55 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
7
7
## [Unreleased]
8
8
9
-
### Changed
10
-
11
-
- **RuntimeContext struct** (`#3016`): introduced `zeph_core::RuntimeContext` (`Copy + Clone + Debug + Default + PartialEq + Eq`) carrying `tui_mode` and `daemon_mode` flags. All subsystem initializers in `runner.rs`, `tracing_init.rs`, and `daemon.rs` now receive a single `RuntimeContext` instead of individual `bool` parameters. The `suppress_stderr()` helper centralizes the TUI/daemon stderr suppression decision.
12
-
13
-
### Fixed
14
-
15
-
- **CPU/RAM regression: graph community detection OOM** (`#3007`): `detect_communities` in
16
-
`zeph-memory` now guards `edge_chunk_size = 0` by falling back to `10_000` with a `WARN`
17
-
log, preventing full edge table load into a single `HashMap` that caused 12 GB RAM spikes.
FS events in a 500 ms debounce window (max 5 s cap) and reindexes each changed path
30
-
at most once per window, preventing CPU saturation during git operations or editor saves.
31
-
32
-
- **TUI log silence: fallback to platform log directory** (`#3008`): when TUI mode is
33
-
active with no `logging.file` configured and OTLP is disabled, `tracing_init` now
34
-
automatically adds a file appender using `default_log_file_path()` (`~/Library/Application Support/Zeph/logs/zeph.log` on macOS) so logs are never silently discarded.
35
-
36
-
- **`TaskSupervisor` blocking task capacity limit** (`#3009`): a configurable
37
-
`tokio::sync::Semaphore` (default capacity 8) now gates `spawn_blocking`, preventing
38
-
uncontrolled thread pool saturation when multiple subsystems index concurrently.
39
-
40
-
- **Concurrent `index_project` re-entry guard** (`#3010`): `CodeIndexer` tracks an
41
-
`AtomicBool` flag; a second concurrent call to `index_project` returns
42
-
`Ok(IndexReport::default())` immediately with an `INFO` log rather than running a
43
-
redundant full-index pass.
44
-
45
-
- **OTLP circuit breaker on export failure** (`#3011`): a `CircuitBreakerExporter` wrapper
46
-
(`src/circuit_breaker_exporter.rs`) opens the circuit after 3 consecutive BSP export
47
-
failures and applies exponential backoff (5 s → 30 s → 300 s). `open_count` resets on
48
-
successful export after recovery, preventing permanent 300 s stalls.
49
-
50
-
- **Audit log silently dropped in TUI mode** (`#3012`): `AuditLogger::from_config` now
51
-
accepts `tui_mode: bool`; when `destination = stdout` and TUI mode is active, output is
52
-
redirected to the configured audit file path with a startup `WARN`.
53
-
54
-
- **`IndexerConfig` safe defaults** (`#3013`): reduced defaults to prevent resource
55
-
saturation on typical developer machines: `memory_batch_size` 32→16,
56
-
`embed_concurrency` 2→1, `concurrency` 4→2, `batch_size` (Qdrant) 32→16. All values
57
-
remain user-configurable.
9
+
## [0.19.1] - 2026-04-15
58
10
59
11
### Added
60
12
@@ -110,8 +62,56 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
110
62
`supervisor.shutdown_all(10s)` added to the orderly shutdown sequence.
111
63
`start_*` functions in `zeph-memory` now return `impl Future` instead of `JoinHandle`.
112
64
65
+
### Changed
66
+
67
+
- **RuntimeContext struct** (`#3016`): introduced `zeph_core::RuntimeContext` (`Copy + Clone + Debug + Default + PartialEq + Eq`) carrying `tui_mode` and `daemon_mode` flags. All subsystem initializers in `runner.rs`, `tracing_init.rs`, and `daemon.rs` now receive a single `RuntimeContext` instead of individual `bool` parameters. The `suppress_stderr()` helper centralizes the TUI/daemon stderr suppression decision.
68
+
113
69
### Fixed
114
70
71
+
- **CPU/RAM regression: graph community detection OOM** (`#3007`): `detect_communities` in
72
+
`zeph-memory` now guards `edge_chunk_size = 0` by falling back to `10_000` with a `WARN`
73
+
log, preventing full edge table load into a single `HashMap` that caused 12 GB RAM spikes.
FS events in a 500 ms debounce window (max 5 s cap) and reindexes each changed path
86
+
at most once per window, preventing CPU saturation during git operations or editor saves.
87
+
88
+
- **TUI log silence: fallback to platform log directory** (`#3008`): when TUI mode is
89
+
active with no `logging.file` configured and OTLP is disabled, `tracing_init` now
90
+
automatically adds a file appender using `default_log_file_path()` (`~/Library/Application Support/Zeph/logs/zeph.log` on macOS) so logs are never silently discarded.
91
+
92
+
- **`TaskSupervisor` blocking task capacity limit** (`#3009`): a configurable
93
+
`tokio::sync::Semaphore` (default capacity 8) now gates `spawn_blocking`, preventing
94
+
uncontrolled thread pool saturation when multiple subsystems index concurrently.
95
+
96
+
- **Concurrent `index_project` re-entry guard** (`#3010`): `CodeIndexer` tracks an
97
+
`AtomicBool` flag; a second concurrent call to `index_project` returns
98
+
`Ok(IndexReport::default())` immediately with an `INFO` log rather than running a
99
+
redundant full-index pass.
100
+
101
+
- **OTLP circuit breaker on export failure** (`#3011`): a `CircuitBreakerExporter` wrapper
102
+
(`src/circuit_breaker_exporter.rs`) opens the circuit after 3 consecutive BSP export
103
+
failures and applies exponential backoff (5 s → 30 s → 300 s). `open_count` resets on
104
+
successful export after recovery, preventing permanent 300 s stalls.
105
+
106
+
- **Audit log silently dropped in TUI mode** (`#3012`): `AuditLogger::from_config` now
107
+
accepts `tui_mode: bool`; when `destination = stdout` and TUI mode is active, output is
108
+
redirected to the configured audit file path with a startup `WARN`.
109
+
110
+
- **`IndexerConfig` safe defaults** (`#3013`): reduced defaults to prevent resource
111
+
saturation on typical developer machines: `memory_batch_size` 32→16,
112
+
`embed_concurrency` 2→1, `concurrency` 4→2, `batch_size` (Qdrant) 32→16. All values
113
+
remain user-configurable.
114
+
115
115
- **TUI: remove per-frame message list clone** (`#2955`): `visible_messages().into_owned()` in
116
116
`chat.rs` replaced with a borrowed reference; eliminates ~20,000 `ChatMessage` clones/sec at
117
117
2000-message history, reducing idle CPU usage proportional to message count.
0 commit comments