Skip to content

Commit 0740f59

Browse files
Craig Robinsonclaude
authored andcommitted
chore: prepare v0.6.0 release
- Clean up .gitignore (remove Swift/Xcode legacy entries, add Tauri entries) - Add container autostart documentation for all platforms - Add podman machine autostart instructions (macOS/Windows) - Add systemd socket + lingering setup for Linux - Configure restart: always policy in compose.yaml - Update CLAUDE.md with TODO stub requirements - Bump version to 0.6.0 Co-Authored-By: Claude Opus 4.5 <[email protected]>
1 parent 2b60621 commit 0740f59

File tree

10 files changed

+150
-38
lines changed

10 files changed

+150
-38
lines changed

.gitignore

Lines changed: 17 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,24 @@
1-
# Swift Package Manager
2-
.build/
3-
.build-*/
4-
.swiftpm/
5-
Package.resolved
6-
7-
#Sparkle Directory
8-
sparkle/
9-
101
# Claude Code local settings
112
.claude/
123

13-
# Xcode
14-
*.xcodeproj/
15-
*.xcworkspace/
16-
xcuserdata/
17-
DerivedData/
18-
*.moved-aside
19-
*.pbxuser
20-
!default.pbxuser
21-
*.mode1v3
22-
!default.mode1v3
23-
*.mode2v3
24-
!default.mode2v3
25-
*.perspectivev3
26-
!default.perspectivev3
27-
*.hmap
28-
*.ipa
29-
*.dSYM.zip
30-
*.dSYM
4+
# Rust/Cargo
5+
target/
6+
Cargo.lock
7+
!tauri-app/src-tauri/Cargo.lock
8+
9+
# Node.js
10+
node_modules/
11+
.pnpm-store/
12+
13+
# Tauri
14+
tauri-app/.svelte-kit/
15+
tauri-app/build/
3116

3217
# Build artifacts
33-
build/
3418
*.o
3519
*.swp
3620
*~
37-
*.app/
3821
*.zip
39-
*.iconset/
4022

4123
# macOS
4224
.DS_Store
@@ -50,11 +32,13 @@ build/
5032
*.sublime-workspace
5133
.vscode/
5234

53-
# Archives
54-
*.xcarchive
55-
5635
# Crash logs
5736
*.crash
5837

5938
# Worktrees
6039
.worktrees/
40+
41+
# Environment files
42+
.env
43+
.env.*
44+
!.env.example

CLAUDE.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,59 @@ Claude Code Monitor is a cross-platform desktop application for monitoring Claud
1010

1111
**Supported Platforms:** macOS, Linux, Windows
1212

13+
14+
## Planning, TODOs, and Source of Truth (Required)
15+
16+
Claude may generate design and implementation plans (including Obra / Superpowers outputs) to reason about work, sequencing, and risk. These plans are **temporary reasoning artifacts**, not the authoritative record of unfinished work.
17+
18+
The **codebase itself is the source of truth**.
19+
20+
### Mandatory Inline TODO Stubs
21+
22+
Whenever code, configuration, tests, or documentation contain missing, incomplete, deferred, or intentionally out-of-scope work, Claude **must insert TODO stubs directly into the relevant files** at the exact location where the work belongs.
23+
24+
Rules:
25+
- TODOs must be **explicit, scoped, and actionable** — never vague.
26+
- Each TODO must clearly state:
27+
- WHAT is missing or unimplemented
28+
- WHERE / WHEN it applies (function, module, path, lifecycle stage)
29+
- EXPECTED behavior or acceptance criteria (brief but testable)
30+
- Any known constraints or pending decisions (if applicable)
31+
- TODOs must be written **inline in the affected file**, not only in chat or plans.
32+
- Do not leave conceptual or implied gaps without a corresponding TODO.
33+
34+
Examples:
35+
-`// TODO: fix later`
36+
-`// TODO: handle edge cases`
37+
-`// TODO(auth): Validate JWT issuer and audience before accepting token — reject with 401 and log reason`
38+
-`# TODO(helm): Document required S3 values — include example values.yaml snippet`
39+
40+
### Plans → TODOs Collapse Rule
41+
42+
Any item identified during planning that is not fully implemented **must be converted into one or more inline TODO stubs** in the appropriate files.
43+
44+
A planned item is considered handled only if:
45+
- it is fully implemented, or
46+
- it exists as a TODO in the correct location(s)
47+
48+
Do not rely on external plan documents to represent unfinished work.
49+
50+
### Default Behavior
51+
52+
Prefer:
53+
- small, focused changes
54+
- incremental implementation
55+
- inline TODO stubs
56+
57+
Over:
58+
- large speculative plans
59+
- separate backlog documents
60+
- deferred work tracked only in chat or markdown plans
61+
62+
If something is not implemented, there must be a TODO exactly where it belongs.
63+
If it is implemented, the TODO should be removed.
64+
65+
1366
## Repository Structure
1467

1568
```

compose.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ services:
22
# OpenTelemetry Collector
33
otel-collector:
44
image: otel/opentelemetry-collector-contrib:latest
5+
container_name: otel-collector
6+
restart: always
57
command: ["--config=/etc/otel-collector-config.yaml"]
68
volumes:
79
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
@@ -16,6 +18,7 @@ services:
1618
prometheus:
1719
image: prom/prometheus:latest
1820
container_name: prometheus
21+
restart: always
1922
ports:
2023
- "9090:9090"
2124
volumes:

docs/installation/linux.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,24 @@ podman --version
4242
podman-compose version
4343
```
4444

45-
### 3. Install Podman Desktop (Optional)
45+
### 3. Enable Podman Socket for Autostart (Recommended)
46+
47+
To ensure containers can restart automatically after reboot, enable the Podman socket:
48+
49+
```bash
50+
systemctl --user enable podman.socket
51+
systemctl --user start podman.socket
52+
```
53+
54+
**Enable lingering** so user services run even when not logged in:
55+
56+
```bash
57+
sudo loginctl enable-linger $USER
58+
```
59+
60+
This allows the monitoring stack to start automatically on boot.
61+
62+
### 4. Install Podman Desktop (Optional)
4663

4764
Podman Desktop provides a GUI for managing containers.
4865

docs/installation/macos.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Visit [podman-desktop.io](https://podman-desktop.io/) and download the macOS ins
2020

2121
### 2. Initialize Podman Machine
2222

23-
After installing Podman Desktop, initialize the Podman machine:
23+
After installing Podman Desktop, initialize and start the Podman machine:
2424

2525
```bash
2626
podman machine init
@@ -36,6 +36,22 @@ podman compose version
3636

3737
Both commands should return version information.
3838

39+
### 3. Configure Autostart (Recommended)
40+
41+
To have the Podman machine start automatically when you log in:
42+
43+
```bash
44+
podman machine set --autostart
45+
```
46+
47+
**Verify autostart is enabled:**
48+
49+
```bash
50+
podman machine inspect | grep -i autostart
51+
```
52+
53+
This ensures the monitoring stack is available immediately after login without manual intervention.
54+
3955
## Install the App
4056

4157
### Option A: Download Release (Recommended)

docs/installation/windows.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,22 @@ podman machine init
3030
podman machine start
3131
```
3232

33+
### 3. Configure Autostart (Recommended)
34+
35+
To have the Podman machine start automatically when Windows starts:
36+
37+
```powershell
38+
podman machine set --autostart
39+
```
40+
41+
**Verify autostart is enabled:**
42+
43+
```powershell
44+
podman machine inspect | Select-String "autostart"
45+
```
46+
47+
This ensures the monitoring stack is available immediately after boot without manual intervention.
48+
3349
## Install the App
3450

3551
### Option A: Download Release (Recommended)

docs/monitoring-stack.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,29 @@ podman compose logs -f prometheus
9797
podman compose logs -f otel-collector
9898
```
9999

100+
## Configure Container Autostart
101+
102+
To ensure the monitoring stack starts automatically when the Podman machine starts (or after a reboot on Linux), the containers are configured with `restart: always` in `compose.yaml`.
103+
104+
**Verify restart policy:**
105+
106+
```bash
107+
podman inspect prometheus --format '{{.HostConfig.RestartPolicy.Name}}'
108+
podman inspect otel-collector --format '{{.HostConfig.RestartPolicy.Name}}'
109+
```
110+
111+
Both should output `always`.
112+
113+
**Complete autostart requirements:**
114+
115+
| Platform | Podman Machine Autostart | Container Restart Policy |
116+
|----------|-------------------------|-------------------------|
117+
| macOS | `podman machine set --autostart` | `restart: always` in compose.yaml |
118+
| Windows | `podman machine set --autostart` | `restart: always` in compose.yaml |
119+
| Linux | `systemctl --user enable podman.socket` + lingering | `restart: always` in compose.yaml |
120+
121+
See platform-specific installation guides for detailed setup.
122+
100123
## Manage the Stack
101124

102125
### Stop the stack

tauri-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "tauri-app",
3-
"version": "0.5.14",
3+
"version": "0.6.0",
44
"description": "",
55
"type": "module",
66
"scripts": {

tauri-app/src-tauri/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "claude-code-monitor"
3-
version = "0.5.14"
3+
version = "0.6.0"
44
description = "Monitor Claude Code usage via Prometheus telemetry"
55
authors = ["cragr"]
66
edition = "2021"

tauri-app/src-tauri/tauri.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://schema.tauri.app/config/2",
33
"productName": "Claude Code Monitor",
4-
"version": "0.5.14",
4+
"version": "0.6.0",
55
"identifier": "com.cragr.claudecodemonitor",
66
"build": {
77
"beforeDevCommand": "pnpm dev",

0 commit comments

Comments
 (0)