Skip to content

Commit 88a6727

Browse files
authored
feat: implement docker container manager mvp (#25)
1 parent 7d72470 commit 88a6727

File tree

285 files changed

+31984
-25579
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

285 files changed

+31984
-25579
lines changed

.agent/AGENTS.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
# AI Agent Guidelines
22

33
## Release Notes & Changelogs
4+
45
- **Location**: Release notes drafts must be written to `docs/RELEASE_NOTES.md`.
56
- **Format**: Plain text Markdown. **STRICTLY NO EMOJIS**. No "marketing fluff".
67
- **Structure**:
7-
- Highlights (Critical changes only)
8-
- Features (New capabilities)
9-
- Fixes (Bug fixes)
10-
- Technical (Refactors, build changes)
8+
- Highlights (Critical changes only)
9+
- Features (New capabilities)
10+
- Fixes (Bug fixes)
11+
- Technical (Refactors, build changes)
1112
- **Version**: Do not invent version numbers. Use the provided one or increment logical patch/minor.
1213

1314
## Documentation
15+
1416
- Keep `README.md` professional.
1517
- **NO DECORATIVE EMOJIS**.
1618
- Use text labels (Done/WIP) instead of status icons.

.agent/claude.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
11
# Claude Context
22

33
## Project Structure
4+
45
- **Root**: `/home/remco-stoeten/dora`
56
- **CLI**: `tools/dora-cli` (Go)
67
- **Scripts**: `tools/scripts` (TypeScript)
78
- **Docs**: `docs/` (Release notes, changelogs)
89

910
## Key Rules
11+
1012
1. **No Emojis**: Never use emojis in technical documentation or release notes.
1113
2. **Path Awareness**: Always check `docs/` for release notes, not root.
1214
3. **CLI**: The `dora` binary is the source of truth for build management.
1315

1416
## Release Process
17+
1518
When asked to handle a release:
19+
1620
1. Check `docs/RELEASE_NOTES.md` for the current draft.
1721
2. Use `dora-cli` scripts if available (`bun run generate-release`).
1822
3. If writing notes manually, follow `AGENTS.md` guidelines.

.agent/rules/no-arrow-constants.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,30 @@ RULE: Function Declarations Only
77
The codebase must not contain arrow functions.
88

99
Disallow:
10+
1011
- const fn = () => {}
1112
- export const fn = () => {}
1213
- use of => in any form
1314

1415
Allow only:
16+
1517
- function fn() {}
1618
- export function fn() {}
1719

1820
Enforcement:
21+
1922
- If any arrow function is detected, reject the output.
2023
- Rewrite all arrow functions into standard function declarations.
2124
- Do not introduce arrow functions in new code.
2225
- Do not suggest arrow functions in examples or explanations.
2326

2427
Rationale:
28+
2529
- Enforce consistent style.
2630
- Improve stack traces and debugging.
2731
- Avoid lexical this and implicit returns.
2832

2933
Compliance check:
34+
3035
- Scan for "=>" before returning any code.
3136
- If found, block the response and regenerate using function declarations only.

.agent/rules/type-convention.md

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,34 @@ trigger: always_on
44

55
Component Props Typing — Mandatory `Props` for Single Type Files
66

7-
87
When defining a React/Next.js component with props, if the file contains **only one non-exported type**, it **MUST** be named exactly `TProps`.
9-
8+
109
Example:
1110
For this component:
12-
11+
1312
"""tsx
1413
function Button({ name, onClick, another }) {
15-
// ...
14+
// ...
1615
}
1716
"""
18-
17+
1918
You MUST define props like this:
2019
"""tsx
2120
type Props = {
22-
name: string;
23-
onClick?: () => void;
24-
another?: any;
21+
name: string;
22+
onClick?: () => void;
23+
another?: any;
2524
};
26-
25+
2726
export function Button({ name, onClick, another }: Props) {
28-
// ...
27+
// ...
2928
}
3029
"""
3130
Key points:
32-
31+
3332
- TProps is always used if there’s only one type in the file.
3433
- TProps must not be exported — it is local to the component file.
3534
- Props must be explicitly typed — never leave props untyped or inline-typed.
3635
- Follow camelCase naming for properties inside TProps, but the type name itself must be TProps.
37-
38-
This ensures consistent, clear, and easy-to-find component prop typings across the codebase.
36+
37+
This ensures consistent, clear, and easy-to-find component prop typings across the codebase.

.agent/workflows/release.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ description: Generate release notes and changelog using AI
55
# Release Generation Workflow
66

77
## Prerequisites
8+
89
1. Ensure you have a `.env` file with your API key configured (see `tools/scripts/.env.example`)
910
2. For Gemini: Set `GEMINI_API_KEY` in your environment
1011
3. For Ollama: Run `bun setup:ai` first to verify your local setup
@@ -14,43 +15,51 @@ description: Generate release notes and changelog using AI
1415
// turbo-all
1516

1617
### Test API Connection
18+
1719
```bash
1820
bun release:gen --test
1921
```
2022

2123
### List Available Models (Gemini only)
24+
2225
```bash
2326
bun release:gen --list-models
2427
```
2528

2629
### Preview Release Notes (Dry Run)
30+
2731
```bash
2832
bun release:gen --dry-run
2933
```
3034

3135
### Generate Release Notes
36+
3237
```bash
3338
bun release:gen
3439
```
3540

3641
### Generate and Build Executables
42+
3743
```bash
3844
bun release:gen --build
3945
```
4046

4147
### Generate with Version Bump
48+
4249
```bash
4350
bun release:gen --version-bump=patch
4451
bun release:gen --version-bump=minor
4552
bun release:gen --version-bump=major
4653
```
4754

4855
## Output Files
56+
4957
- `RELEASE_NOTES.md` - Full release notes
5058
- `CHANGELOG.md` - Appended changelog entry
5159
- `apps/desktop/package.json` - Updated version (if using --version-bump)
5260

5361
## Troubleshooting
62+
5463
1. **API Error**: Run `--test` to verify connectivity
5564
2. **Bad Output**: The AI should return valid JSON; if not, check model availability with `--list-models`
5665
3. **No Commits**: Ensure you have commits since the last git tag

.agent/workflows/setup-ai.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ description: Setup and verify local Ollama AI
55
# Local AI Setup Workflow
66

77
## Prerequisites
8+
89
1. Install Ollama from https://ollama.com/download
910
2. Start the Ollama server: `ollama serve`
1011

@@ -13,37 +14,42 @@ description: Setup and verify local Ollama AI
1314
// turbo-all
1415

1516
### Basic Setup
17+
1618
```bash
1719
bun setup:ai
1820
```
1921

2022
### Specify a Different Model
23+
2124
```bash
2225
bun setup:ai --model mistral
2326
bun setup:ai --model codellama
2427
bun setup:ai --model llama3:8b
2528
```
2629

2730
### Diagnose Connection Issues
31+
2832
```bash
2933
bun setup:ai --diagnose
3034
```
3135

3236
### Show Help
37+
3338
```bash
3439
bun setup:ai --help
3540
```
3641

3742
## Popular Models for Release Notes
3843

39-
| Model | Size | Speed | Quality |
40-
|-------|------|-------|---------|
41-
| `llama3` | 4.7GB | Fast | Good |
42-
| `llama3:70b` | 40GB | Slow | Excellent |
43-
| `mistral` | 4.1GB | Fast | Good |
44-
| `codellama` | 3.8GB | Fast | Code-focused |
44+
| Model | Size | Speed | Quality |
45+
| ------------ | ----- | ----- | ------------ |
46+
| `llama3` | 4.7GB | Fast | Good |
47+
| `llama3:70b` | 40GB | Slow | Excellent |
48+
| `mistral` | 4.1GB | Fast | Good |
49+
| `codellama` | 3.8GB | Fast | Code-focused |
4550

4651
## Troubleshooting
52+
4753
1. **Connection refused**: Make sure `ollama serve` is running
4854
2. **Model not found**: Run `ollama pull <model-name>`
4955
3. **Remote server**: Set `OLLAMA_HOST` and `OLLAMA_PORT` env vars

0 commit comments

Comments
 (0)