Skip to content

Commit eaeeadb

Browse files
committed
chore: add CI/CD workflows, dev scripts, and agent configs
Add GitHub Actions workflows for Linux and Windows CI. Update bin/ wrapper scripts to use new dyt-daemon and dyt binary names. Update agent configs to reference renamed spec files.
1 parent 767b246 commit eaeeadb

File tree

5 files changed

+73
-13
lines changed

5 files changed

+73
-13
lines changed

.claude/agents/builder.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Receive task description via prompt. Implement exactly as specified. Return comp
2020
## Before Any Task
2121
1. Read CLAUDE.md (project context, commands, standards)
2222
2. Read the full task description from prompt
23-
3. Read the relevant subsystem spec: `specs/stt-daemon.md`, `specs/stt-cli.md`, or `specs/audio-capture-design.md`
23+
3. Read the relevant subsystem spec: `specs/dyt-daemon.md`, `specs/dyt-cli.md`, or `specs/audio-capture-design.md`
2424

2525
## Workflow
2626
1. Parse task description from prompt
@@ -36,7 +36,7 @@ When generating code: keep functions pure and isolate side effects at system bou
3636
## Rules
3737
- Implement exactly what task specifies — no more, no less
3838
- **Never block the cpal callback** — no locks, no heap allocations inside callback closures; move all non-trivial work to the drain thread
39-
- New STT backends go in `stt-daemon/src/provider/` implementing `ModelProvider`; register the new arm in `provider.rs`
39+
- New STT backends go in `dyt-daemon/src/provider/` implementing `ModelProvider`; register the new arm in `provider.rs`
4040
- Cross-platform: every change must compile on Ubuntu and Windows — no OS-specific code without explicit task scope
4141
- If requirements are unclear or a design decision is needed, report blocker in output
4242

@@ -62,7 +62,7 @@ When generating code: keep functions pure and isolate side effects at system bou
6262
## References
6363
- Project context: CLAUDE.md
6464
- Quality review: `/reviewing-code-quality` skill
65-
- Daemon internals: `specs/stt-daemon.md`
66-
- CLI internals: `specs/stt-cli.md`
65+
- Daemon internals: `specs/dyt-daemon.md`
66+
- CLI internals: `specs/dyt-cli.md`
6767
- Audio capture design decisions: `specs/audio-capture-design.md`
6868
- Behavioral contracts: `specs/behavioral-contracts.md`

.claude/agents/planner.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Receive feature/bug via prompt. Make all design decisions. Return a task descrip
1919
1. Read CLAUDE.md (architecture, tech stack, standards)
2020
2. Read the full feature/bug description from prompt
2121
3. Read `specs/architecture.md` for system-level context
22-
4. Read subsystem specs as needed: `specs/stt-daemon.md`, `specs/stt-cli.md`, `specs/audio-capture-design.md`
22+
4. Read subsystem specs as needed: `specs/dyt-daemon.md`, `specs/dyt-cli.md`, `specs/audio-capture-design.md`
2323
5. Consult `specs/behavioral-contracts.md` for boundary conditions
2424

2525
## Design Constraints
@@ -29,7 +29,7 @@ When designing solutions: prefer stateless data flow with side effects at system
2929
1. Analyze the feature/bug from prompt
3030
2. Explore codebase — find similar patterns, understand existing conventions
3131
3. Design solution (data flow, state management, API contracts, error strategy)
32-
4. If touching `stt-cli/src/capture.rs`: verify audio path safety — no locks, no allocations in cpal callback; all collection work stays in the drain thread
32+
4. If touching `dyt-cli/src/capture.rs`: verify audio path safety — no locks, no allocations in cpal callback; all collection work stays in the drain thread
3333
5. Verify design quality: "Would this pass review on purity, testability, and abstraction fitness?"
3434
6. Write detailed task description using Output Format below
3535
7. Verify task completeness: "Can builder execute this without making any design decisions?"
@@ -64,12 +64,12 @@ Out: [what NOT to touch]
6464
## Quality Check
6565
❌ "Add ONNX backend" → Too vague, no design decisions
6666
❌ "Add ONNX backend in provider/onnx.rs with shared global model" → Specific but poor design (shared mutable state violates ModelProvider pattern)
67-
✅ "Add stateless ONNX backend at `stt-daemon/src/provider/onnx.rs` implementing `ModelProvider::transcribe(&self, &[f32]) -> Result<String>`; register via new match arm in `provider.rs`; load model in `OnnxProvider::new(&EngineConfig)` — no shared state; errors propagate via `anyhow`" → Specific AND sound design
67+
✅ "Add stateless ONNX backend at `dyt-daemon/src/provider/onnx.rs` implementing `ModelProvider::transcribe(&self, &[f32]) -> Result<String>`; register via new match arm in `provider.rs`; load model in `OnnxProvider::new(&EngineConfig)` — no shared state; errors propagate via `anyhow`" → Specific AND sound design
6868

6969
## References
7070
- Project context: CLAUDE.md
7171
- System overview: `specs/architecture.md`
72-
- Daemon design: `specs/stt-daemon.md`
73-
- CLI design: `specs/stt-cli.md`
72+
- Daemon design: `specs/dyt-daemon.md`
73+
- CLI design: `specs/dyt-cli.md`
7474
- Audio capture rationale: `specs/audio-capture-design.md`
7575
- Behavioral contracts: `specs/behavioral-contracts.md`

.github/workflows/ci.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
tags: ["v*"]
7+
pull_request:
8+
branches: [main]
9+
10+
env:
11+
CARGO_TERM_COLOR: always
12+
13+
jobs:
14+
build:
15+
runs-on: ubuntu-22.04
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Install system dependencies
21+
run: |
22+
sudo apt-get update
23+
sudo apt-get install -y \
24+
cmake pkg-config libclang-dev gcc g++ \
25+
libasound2-dev \
26+
libx11-dev libxcursor-dev libxrandr-dev libxi-dev
27+
28+
- name: Set LIBCLANG_PATH
29+
run: |
30+
LIBCLANG_DIR=$(dirname "$(dpkg -L libclang-dev | grep libclang.so$ | head -1)")
31+
echo "LIBCLANG_PATH=$LIBCLANG_DIR" >> "$GITHUB_ENV"
32+
33+
- uses: dtolnay/rust-toolchain@stable
34+
35+
- uses: Swatinem/rust-cache@v2
36+
37+
- name: Check
38+
run: cargo check --workspace
39+
40+
- name: Test
41+
run: cargo test --workspace
42+
43+
- name: Build release
44+
run: cargo build --release
45+
46+
- name: Upload artifacts
47+
uses: actions/upload-artifact@v4
48+
with:
49+
name: dyt-linux-x86_64
50+
path: |
51+
target/release/dyt
52+
target/release/dyt-daemon
53+
54+
- name: Create GitHub Release
55+
if: startsWith(github.ref, 'refs/tags/v')
56+
uses: softprops/action-gh-release@v2
57+
with:
58+
files: |
59+
target/release/dyt
60+
target/release/dyt-daemon

bin/dyt-daemon

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
set -euo pipefail
44

55
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
6-
DAEMON="$ROOT/target/release/stt-daemon"
6+
DAEMON="$ROOT/target/release/dyt-daemon"
77

88
if [[ ! -x "$DAEMON" ]]; then
99
echo "Binary not found — building release first..."
10-
cargo build --release -p stt-daemon
10+
cargo build --release -p dyt-daemon
1111
fi
1212

1313
if pid=$(lsof -ti :3030 2>/dev/null); then
@@ -16,5 +16,5 @@ if pid=$(lsof -ti :3030 2>/dev/null); then
1616
sleep 0.5
1717
fi
1818

19-
echo "Starting stt-daemon..."
19+
echo "Starting dyt-daemon..."
2020
exec "$DAEMON"

bin/dyt-record

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ CLI="$ROOT/target/debug/dyt"
77

88
if [[ ! -x "$CLI" ]]; then
99
echo "Binary not found — building first..."
10-
cargo build -p stt-cli --bin dyt
10+
cargo build -p dyt-cli --bin dyt
1111
fi
1212

1313
echo ""

0 commit comments

Comments
 (0)