Skip to content

Commit 5f34f05

Browse files
committed
chore(release): prepare v0.1.71
1 parent 5b646ee commit 5f34f05

13 files changed

Lines changed: 226 additions & 217 deletions

File tree

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,33 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.1.71] - 2026-04-13
9+
10+
### Added
11+
- `lerim status --live` now uses the same data and renderer as snapshot mode, with periodic refresh only as the difference.
12+
- New status payload fields for richer operations visibility:
13+
- `projects[]` per-project memory/queue/blocker summary
14+
- `recent_activity[]` timeline including `sync` and `maintain`
15+
- `unscoped_sessions` totals by agent
16+
- New `lerim unscoped` command to inspect indexed sessions that do not map to a registered project.
17+
- Queue filters now support exact project matching (`--project`) and explicit substring matching (`--project-like`).
18+
19+
### Changed
20+
- Status UI redesigned for clarity:
21+
- project stream table (`blocked` / `running` / `queued` / `healthy`)
22+
- explicit “What These Terms Mean” section
23+
- actionable “What To Do Next” section with full `lerim ...` commands
24+
- activity panel (sync + maintain)
25+
- Read/query defaults now use all registered projects unless explicitly narrowed:
26+
- `lerim status --scope all|project --project ...`
27+
- `lerim ask --scope all|project --project ...`
28+
- `lerim memory list --scope all|project --project ...`
29+
- Canonical run telemetry is now written in `service_runs.details_json` with normalized keys (`metrics_version=1`, sync/maintain totals, per-project metrics, events) while preserving legacy compatibility fields.
30+
31+
### Fixed
32+
- Live status activity no longer appears stale during long in-flight sync runs; running queue jobs are now surfaced in `recent_activity`.
33+
- Fixed maintain runtime error (`name 'index_path' is not defined`) that caused maintain runs to fail.
34+
835
## [0.1.70] - 2026-03-28
936

1037
### Quality Improvements

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,11 @@ Most-used commands:
106106

107107
```bash
108108
lerim status
109+
lerim status --live
109110
lerim logs --follow
110111
lerim queue
112+
lerim queue --failed
113+
lerim unscoped --limit 20
111114
lerim memory list --limit 20
112115
```
113116

docs/changelog.md

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,27 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
88
99
## [Unreleased]
1010

11+
- No entries yet.
12+
13+
## [0.1.71] - 2026-04-13
14+
15+
### Added
16+
17+
- Unified status dashboard output for `lerim status` and `lerim status --live` (same sections, live mode only refreshes).
18+
- Per-project stream visibility in status (`projects[]`) plus timeline activity (`recent_activity[]`) from sync + maintain runs.
19+
- New `lerim unscoped` command to inspect indexed sessions without project mapping.
20+
- Queue filtering split into exact project match (`--project`) and substring match (`--project-like`).
21+
1122
### Changed
1223

13-
- Migrated `maintain` and `ask` to PydanticAI agents, aligned with the existing PydanticAI extraction flow.
14-
- Simplified runtime orchestration to a single PydanticAI execution path (sync, maintain, ask).
15-
- Updated tracing integration to `mlflow.pydantic_ai.autolog()`.
16-
- Updated docs to describe the current PydanticAI-only runtime and request-turn limits.
24+
- Default read scope for `ask`, `status`, and `memory list` is now all registered projects, with explicit `--scope project --project ...` for narrowing.
25+
- Status output now includes stronger action hints with full commands (`lerim retry ...`, `lerim skip ...`, `lerim queue --project ...`).
26+
- Canonical run telemetry now stored in `service_runs.details_json` with normalized metrics (`metrics_version=1`, sync/maintain totals, per-project metrics, events), while keeping compatibility fields for older consumers.
1727

18-
### Removed
28+
### Fixed
1929

20-
- Removed prior runtime branches and prior runtime-specific config surface from active runtime paths.
21-
- Removed prior runtime and proxy-bridge runtime dependencies from active package/lock state.
30+
- Live status activity now surfaces currently running sync work so the activity panel no longer appears frozen during long cycles.
31+
- Fixed maintain runtime failure caused by undefined `index_path`.
2232

2333
## [0.2.0] - 2026-03-25
2434

docs/cli/ask.md

Lines changed: 30 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,126 +1,72 @@
11
# lerim ask
22

3-
Ask a question using accumulated memory as context.
3+
Ask a question using Lerim memory as context.
44

55
## Overview
66

7-
One-shot query: ask Lerim a question and get an answer informed by memories extracted from your agent sessions.
7+
`lerim ask` sends a question to the running Lerim service. The ask flow reads project memories and returns a grounded answer.
8+
9+
Default scope is all registered projects. Use `--scope project --project ...` to narrow.
810

911
!!! note
10-
This command requires a running Lerim server. Start it with `lerim up` (Docker) or `lerim serve` (direct).
12+
This command requires a running Lerim server (`lerim up` or `lerim serve`).
1113

1214
## Syntax
1315

1416
```bash
15-
lerim ask <question> [--project NAME] [--json]
17+
lerim ask <question> [--scope all|project] [--project NAME] [--json]
1618
```
1719

1820
## Parameters
1921

20-
<div class="param-field">
21-
<div class="param-header">
22-
<span class="param-name">question</span>
23-
<span class="param-type">string</span>
24-
<span class="param-badge required">required</span>
25-
</div>
26-
<p class="param-desc">Your question (use quotes if it contains spaces).</p>
27-
</div>
28-
29-
<div class="param-field">
30-
<div class="param-header">
31-
<span class="param-name">--project</span>
32-
<span class="param-type">string</span>
33-
</div>
34-
<p class="param-desc">Scope to a specific project. <strong>Note:</strong> Not yet implemented.</p>
35-
</div>
36-
37-
<div class="param-field">
38-
<div class="param-header">
39-
<span class="param-name">--json</span>
40-
<span class="param-type">boolean</span>
41-
<span class="param-badge default">default: false</span>
42-
</div>
43-
<p class="param-desc">Output structured JSON instead of human-readable text.</p>
44-
</div>
22+
| Parameter | Default | Description |
23+
|---|---|---|
24+
| `question` | required | The question to ask |
25+
| `--scope` | `all` | Read from all projects or one project |
26+
| `--project` | -- | Project name/path when `--scope=project` |
27+
| `--json` | off | Output structured JSON payload |
4528

4629
## Examples
4730

48-
### Basic question
49-
50-
Ask about authentication patterns:
51-
5231
```bash
53-
lerim ask 'What auth pattern do we use?'
54-
```
55-
56-
**Output:**
57-
58-
```
59-
Based on your project memories, you use bearer token authentication
60-
for API requests. This pattern was chosen for its simplicity and
61-
compatibility with standard HTTP clients.
62-
```
63-
64-
### JSON output
65-
66-
Get structured output for parsing:
67-
68-
```bash
69-
lerim ask "What testing framework do we use?" --json
70-
```
71-
72-
**Output:**
73-
74-
```json
75-
{
76-
"answer": "Your project uses pytest...",
77-
"agent_session_id": "4f5e0c0a-...",
78-
"memories_used": [],
79-
"error": false,
80-
"cost_usd": 0.0012
81-
}
32+
lerim ask "Why did we choose this architecture?"
33+
lerim ask "What changed in auth recently?" --scope project --project lerim-cli
34+
lerim ask "What should I watch out for?" --json
8235
```
8336

8437
## How it works
8538

86-
1. Your question is sent to the running Lerim server via HTTP POST to `/api/ask`
87-
2. Lerim asks the PydanticAI ask agent to scan/read relevant memory files
88-
3. The model generates an answer grounded in the memory files it read
89-
4. The answer is returned as plain text (or JSON with metadata using `--json`)
90-
91-
!!! tip
92-
For best results, ask specific questions about decisions, patterns, or procedures in your project.
39+
1. CLI posts your question to `/api/ask`
40+
2. Ask flow retrieves relevant memory files from selected scope
41+
3. Model answers using retrieved memory context
42+
4. CLI prints text (or full JSON when `--json`)
9343

9444
## Exit codes
9545

96-
- **0**: Success — answer generated
97-
- **1**: Error — server not running or authentication failed
98-
- **2**: Usage error — invalid arguments
46+
| Code | Meaning |
47+
|---|---|
48+
| `0` | Success |
49+
| `1` | Server or provider/auth error |
50+
| `2` | Usage error |
9951

10052
## Related commands
10153

10254
<div class="grid cards" markdown>
10355

104-
- :material-format-list-bulleted: **lerim memory list**
56+
- :material-chart-box: **lerim status**
10557

10658
---
10759

108-
Browse stored memory files
60+
Check project streams and queue health
10961

110-
[:octicons-arrow-right-24: lerim memory](memory.md)
62+
[:octicons-arrow-right-24: lerim status](status.md)
11163

112-
- :material-chart-box: **lerim status**
64+
- :material-format-list-bulleted: **lerim memory list**
11365

11466
---
11567

116-
Check server status
68+
List memory files in scope
11769

118-
[:octicons-arrow-right-24: lerim status](status.md)
70+
[:octicons-arrow-right-24: lerim memory](memory.md)
11971

12072
</div>
121-
122-
## Notes
123-
124-
- Ask uses memory scan/read tools to ground its answers in local memory files
125-
- If provider auth fails (missing API key), the CLI returns exit code 1
126-
- The `--project` flag is reserved for future project-scoped queries

docs/cli/memory.md

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,107 +1,107 @@
11
# lerim memory
22

3-
Manage the memory store directly — list and reset memories.
3+
Manage memory files directly.
44

55
## Overview
66

7-
The `memory` command group provides direct access to the memory store. Memories are stored as markdown files in `.lerim/memory/` within each registered project. Use these subcommands to browse or wipe memories.
7+
The `memory` command group provides local memory operations:
88

9-
!!! tip "Direct file access"
10-
You can also read `.lerim/memory/index.md` directly — it lists all memory files by category with one-line descriptions and links. No server or CLI needed.
9+
- `memory list` to browse memory markdown files
10+
- `memory reset` to wipe selected memory/index roots
11+
12+
`memory list` is local and does not require the server.
1113

1214
---
1315

1416
## memory list
1517

16-
List stored memories as a sorted file list. No server required.
18+
List memory files from all projects (default) or one project.
1719

1820
```bash
19-
lerim memory list [--project NAME] [--limit N] [--json]
21+
lerim memory list [--scope all|project] [--project NAME] [--limit N] [--json]
2022
```
2123

2224
| Parameter | Default | Description |
23-
|-----------|---------|-------------|
24-
| `--project` | -- | Reserved for project filter (not yet implemented) |
25-
| `--limit` | `50` | Maximum items to display |
26-
| `--json` | off | Output structured JSON |
25+
|---|---|---|
26+
| `--scope` | `all` | Read from all registered projects, or one project |
27+
| `--project` | -- | Project name/path when `--scope=project` |
28+
| `--limit` | `50` | Maximum number of files to print |
29+
| `--json` | off | Print JSON array instead of plain text |
30+
31+
Examples:
2732

2833
```bash
2934
lerim memory list
30-
lerim memory list --limit 10 --json
35+
lerim memory list --scope project --project lerim-cli --limit 20
36+
lerim memory list --json
3137
```
3238

3339
---
3440

3541
## memory reset
3642

37-
Irreversibly delete `memory/`, `workspace/`, and `index/` under the selected scope.
43+
Irreversibly delete memory/workspace/index data in selected scope.
3844

3945
```bash
40-
lerim memory reset --yes [--scope SCOPE]
46+
lerim memory reset --yes [--scope project|global|both]
4147
```
4248

4349
| Parameter | Default | Description |
44-
|-----------|---------|-------------|
45-
| `--yes` | *(required)* | Safety flag -- command refuses to run without it |
46-
| `--scope` | `both` | What to reset: `project`, `global`, or `both` |
50+
|---|---|---|
51+
| `--yes` | required | Safety confirmation flag |
52+
| `--scope` | `both` | Reset `project`, `global`, or `both` |
4753

4854
!!! danger
49-
This operation is **irreversible**. All memories, workspace artifacts, and index data within the selected scope will be permanently deleted.
55+
This is permanent. Deleted data cannot be recovered.
5056

5157
!!! warning
52-
`--scope project` alone does **not** reset the session queue. The sessions DB lives in `~/.lerim/index/sessions.sqlite3`. Use `--scope global` or `--scope both` to fully reset.
58+
`--scope project` does **not** reset the session queue DB. Queue state lives in global `~/.lerim/index/sessions.sqlite3`. Use `--scope global` or `--scope both` for full queue/index reset.
59+
60+
Examples:
5361

5462
```bash
55-
lerim memory reset --yes # wipe everything
56-
lerim memory reset --scope project --yes # project data only
57-
lerim memory reset --yes && lerim sync --max-sessions 5 # fresh start
63+
lerim memory reset --yes
64+
lerim memory reset --scope project --yes
65+
lerim memory reset --scope global --yes
5866
```
5967

6068
---
6169

6270
## Exit codes
6371

6472
| Code | Meaning |
65-
|------|---------|
73+
|---|---|
6674
| `0` | Success |
67-
| `1` | Runtime failure (server not running, write error) |
68-
| `2` | Usage error (missing required flags) |
75+
| `1` | Runtime failure |
76+
| `2` | Usage error |
6977

7078
---
7179

7280
## Related commands
7381

7482
<div class="grid cards" markdown>
7583

76-
- :material-magnify: **lerim ask**
84+
- :material-brain: **lerim ask**
7785

7886
---
7987

80-
Query memories with natural language
88+
Query memories in natural language
8189

8290
[:octicons-arrow-right-24: lerim ask](ask.md)
8391

8492
- :material-sync: **lerim sync**
8593

8694
---
8795

88-
Extract memories from agent sessions
96+
Extract new memories from sessions
8997

9098
[:octicons-arrow-right-24: lerim sync](sync.md)
9199

92-
- :material-wrench: **lerim maintain**
93-
94-
---
95-
96-
Offline memory refinement and deduplication
97-
98-
[:octicons-arrow-right-24: lerim maintain](maintain.md)
99-
100100
- :material-chart-box: **lerim status**
101101

102102
---
103103

104-
Check memory counts and server state
104+
Check memory counts and queue state
105105

106106
[:octicons-arrow-right-24: lerim status](status.md)
107107

0 commit comments

Comments
 (0)