fifony 0.1.26-next.f3fade3 → 0.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -64
- package/app/dist/service-worker.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
**AI agents that actually ship code. You just watch.**
|
|
6
6
|
|
|
7
|
-
Point at a repo. Open the dashboard. AI plans, builds, and reviews — you approve
|
|
7
|
+
Point at a repo. Open the dashboard. AI plans, builds, and reviews — you approve.
|
|
8
8
|
|
|
9
9
|
[](LICENSE)
|
|
10
10
|
[]()
|
|
@@ -16,60 +16,42 @@ Point at a repo. Open the dashboard. AI plans, builds, and reviews — you appro
|
|
|
16
16
|
## Quick Start
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
npx -y fifony
|
|
19
|
+
npx -y fifony --port 4040
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
Open **http://localhost:
|
|
22
|
+
Open **http://localhost:4040**. The first run launches the onboarding wizard — it detects your CLIs, scans your project, and configures everything in six steps. State lives in `.fifony/`. No accounts, no cloud, no external database.
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
26
26
|
## How It Works
|
|
27
27
|
|
|
28
|
-
fifony
|
|
28
|
+
fifony breaks every task into three stages, each independently configurable:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Plan Execute Review
|
|
32
|
+
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
33
|
+
│ Claude │─▶│ Codex │─▶│ Claude │
|
|
34
|
+
│ Opus 4.5 │ │ │ │ Sonnet 4.5 │
|
|
35
|
+
│ effort: high │ │ effort: med │ │ effort: med │
|
|
36
|
+
└──────────────┘ └──────────────┘ └──────────────┘
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
You set the provider, model, and reasoning effort for each stage. Claude plans, Codex executes, Claude reviews — or any combination you prefer. Configure it in the Settings UI or drop a `WORKFLOW.md` in your project root.
|
|
29
40
|
|
|
30
41
|
### Issue Lifecycle
|
|
31
42
|
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
Planned --> Queued: QUEUE
|
|
37
|
-
Queued --> Running: RUN
|
|
38
|
-
Running --> Reviewing: REVIEW
|
|
39
|
-
Reviewing --> Reviewed: REVIEWED
|
|
40
|
-
Reviewed --> Done: DONE
|
|
41
|
-
Done --> Merged: MERGE
|
|
42
|
-
|
|
43
|
-
Running --> Blocked: BLOCK
|
|
44
|
-
Reviewing --> Blocked: BLOCK
|
|
45
|
-
Blocked --> Queued: UNBLOCK
|
|
46
|
-
Blocked --> Planning: REPLAN
|
|
47
|
-
|
|
48
|
-
Reviewed --> Queued: REQUEUE (rework)
|
|
49
|
-
Reviewed --> Planning: REPLAN
|
|
50
|
-
|
|
51
|
-
Done --> Planning: REOPEN
|
|
52
|
-
Merged --> Planning: REOPEN
|
|
53
|
-
|
|
54
|
-
Planning --> Cancelled: CANCEL
|
|
55
|
-
Planned --> Cancelled: CANCEL
|
|
56
|
-
Reviewed --> Cancelled: CANCEL
|
|
57
|
-
Blocked --> Cancelled: CANCEL
|
|
58
|
-
Cancelled --> Planning: REOPEN
|
|
59
|
-
|
|
60
|
-
Merged --> [*]
|
|
61
|
-
Cancelled --> [*]
|
|
43
|
+
```
|
|
44
|
+
Planning → Todo → Queued → Running → In Review → Done
|
|
45
|
+
↓ ↓
|
|
46
|
+
Interrupted Blocked → (retry with backoff)
|
|
62
47
|
```
|
|
63
48
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
| **Review** | The reviewer agent inspects the diff and either approves, requests rework, or blocks. |
|
|
71
|
-
| **Done** | Approved and waiting for merge. You review the diff in the dashboard. |
|
|
72
|
-
| **Merge** | You merge the worktree into your project. Analytics capture lines added/removed. |
|
|
49
|
+
1. **Create** — Describe what you want done. fifony AI-enhances the title and description before planning.
|
|
50
|
+
2. **Plan** — The planner agent generates a structured execution plan: phases, steps, target files, complexity, risks.
|
|
51
|
+
3. **Approve** — You review the plan. Optionally chat with the AI to refine it before approving.
|
|
52
|
+
4. **Execute** — Agents run in an isolated workspace (a copy of your project). Live output streams to the dashboard.
|
|
53
|
+
5. **Review** — The reviewer agent inspects the diff and either approves, requests rework, or blocks.
|
|
54
|
+
6. **Merge** — You review the diff and merge the workspace back to your project root.
|
|
73
55
|
|
|
74
56
|
Agents run as detached child processes, tracked by PID. If the server restarts mid-run, fifony recovers on the next boot.
|
|
75
57
|
|
|
@@ -81,7 +63,7 @@ The first run walks you through six steps:
|
|
|
81
63
|
|
|
82
64
|
| Step | What happens |
|
|
83
65
|
|------|-------------|
|
|
84
|
-
| CLI Detection | Finds `claude`, `codex`, `
|
|
66
|
+
| CLI Detection | Finds `claude`, `codex`, `git`, `node`, `docker`, and other tools on your system |
|
|
85
67
|
| Project Scan | Detects language, stack, and build system — 18+ ecosystems supported |
|
|
86
68
|
| AI Analysis | Uses the detected CLI to extract domain context from your codebase |
|
|
87
69
|
| Domains | 21 options across Technical / Industry / Role, pre-selected by the AI |
|
|
@@ -90,14 +72,16 @@ The first run walks you through six steps:
|
|
|
90
72
|
|
|
91
73
|
Settings are saved progressively and can be re-run from Settings at any time.
|
|
92
74
|
|
|
75
|
+
Supported build files include: `package.json`, `Cargo.toml`, `pyproject.toml`, `go.mod`, `build.gradle`, `Gemfile`, `mix.exs`, `pubspec.yaml`, `CMakeLists.txt`, `composer.json`, `Package.swift`, `deno.json`, `pom.xml`, `Dockerfile`, and more.
|
|
76
|
+
|
|
93
77
|
---
|
|
94
78
|
|
|
95
79
|
## Dashboard
|
|
96
80
|
|
|
97
81
|
| Route | What you see |
|
|
98
82
|
|-------|-------------|
|
|
99
|
-
| `/kanban` | Drag-and-drop board
|
|
100
|
-
| `/issues` | Searchable list with multi-state filters, sort options, and capability filters. |
|
|
83
|
+
| `/kanban` | Drag-and-drop board. Cards flow through pipeline stages. Desktop click+drag, mobile long-press. |
|
|
84
|
+
| `/issues` | Searchable list with multi-state filters, sort options, and capability filters. Shows token usage and duration per issue. |
|
|
101
85
|
| `/agents` | Live cockpit: worker slots, queue depth, real-time log tail, token sparklines per agent. |
|
|
102
86
|
| `/analytics` | Token usage trends, daily and weekly rollups, top issues by cost, per-model breakdown. |
|
|
103
87
|
| `/settings` | General, Workflow pipeline config, Notifications, Providers. |
|
|
@@ -141,20 +125,20 @@ Agents install to `.claude/agents/` and `.codex/agents/` during onboarding. Skil
|
|
|
141
125
|
## CLI Reference
|
|
142
126
|
|
|
143
127
|
```bash
|
|
144
|
-
# Dashboard + API
|
|
145
|
-
npx -y fifony
|
|
146
|
-
|
|
147
|
-
# Custom port
|
|
148
|
-
npx -y fifony --port 8080
|
|
128
|
+
# Dashboard + API + scheduler
|
|
129
|
+
npx -y fifony --port 4040
|
|
149
130
|
|
|
150
131
|
# With Vite HMR for frontend development
|
|
151
|
-
npx -y fifony --dev
|
|
132
|
+
npx -y fifony --port 4040 --dev
|
|
133
|
+
|
|
134
|
+
# Headless — scheduler only, no UI
|
|
135
|
+
npx -y fifony
|
|
152
136
|
|
|
153
137
|
# MCP server (stdio)
|
|
154
138
|
npx -y fifony mcp
|
|
155
139
|
|
|
156
140
|
# Different workspace
|
|
157
|
-
npx -y fifony --workspace /path/to/repo
|
|
141
|
+
npx -y fifony --workspace /path/to/repo --port 4040
|
|
158
142
|
|
|
159
143
|
# Run one scheduler cycle and exit
|
|
160
144
|
npx -y fifony --once
|
|
@@ -203,7 +187,7 @@ Add to `claude_desktop_config.json` or VS Code settings:
|
|
|
203
187
|
|
|
204
188
|
## REST API
|
|
205
189
|
|
|
206
|
-
Interactive docs at `http://localhost:
|
|
190
|
+
Interactive docs at `http://localhost:4040/docs`.
|
|
207
191
|
|
|
208
192
|
| Endpoint | Description |
|
|
209
193
|
|----------|-------------|
|
|
@@ -239,7 +223,6 @@ FIFONY_AGENT_PROVIDER=codex # codex | claude
|
|
|
239
223
|
FIFONY_WORKER_CONCURRENCY=2
|
|
240
224
|
FIFONY_MAX_ATTEMPTS=3
|
|
241
225
|
FIFONY_AGENT_MAX_TURNS=4
|
|
242
|
-
FIFONY_LOG_FILE=0 # set to 1 to also write .fifony/fifony-local.log
|
|
243
226
|
```
|
|
244
227
|
|
|
245
228
|
---
|
|
@@ -250,23 +233,49 @@ FIFONY_LOG_FILE=0 # set to 1 to also write .fifony/fifony-lo
|
|
|
250
233
|
.fifony/
|
|
251
234
|
s3db/ ← durable database (issues, events, sessions, settings)
|
|
252
235
|
source/ ← project snapshot used for workspace seeding
|
|
253
|
-
workspaces/ ← isolated per-issue execution directories
|
|
236
|
+
workspaces/ ← isolated per-issue execution directories
|
|
254
237
|
```
|
|
255
238
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
- **
|
|
259
|
-
-
|
|
260
|
-
-
|
|
261
|
-
- **
|
|
262
|
-
-
|
|
239
|
+
fifony is split into an explicit runtime contract:
|
|
240
|
+
|
|
241
|
+
- **Persistence layer (s3db.js + resource config):**
|
|
242
|
+
- Issues, events, sessions, states, and settings are first-class resources under `.fifony/s3db/`.
|
|
243
|
+
- No external DB is required in normal mode.
|
|
244
|
+
- **Eventual consistency analytics:**
|
|
245
|
+
- `EventualConsistencyPlugin` is enabled for issue metrics and supports counters, incremental updates, and analytics rollups.
|
|
246
|
+
- Metrics tracked include:
|
|
247
|
+
- `usage.tokens` and `tokenUsage` by phase/model,
|
|
248
|
+
- `eventsCount`,
|
|
249
|
+
- `linesAdded`, `linesRemoved`, `filesChanged`.
|
|
250
|
+
- We query this through `getLastNDays/getLastNHours` to feed `/api/analytics/lines` and `/api/analytics/tokens`.
|
|
251
|
+
- **Issue lifecycle in StateMachinePlugin (single source of truth):**
|
|
252
|
+
- States, guarded transitions, actions, and triggers are centralized in `issue-state-machine.ts`.
|
|
253
|
+
- Public commands (`approve`, `execute`, `queue`, `retry`, `merge`) only emit transitions; the workflow behavior is not duplicated in route handlers.
|
|
254
|
+
- The machine also owns interruption recovery, retry delays, terminal transitions, and rollback edges.
|
|
255
|
+
- **Queue and execution pool:**
|
|
256
|
+
- `s3queue` is the runtime queue adapter with polling workers.
|
|
257
|
+
- Workers consume planning/execution/review jobs and run concurrently respecting configured concurrency.
|
|
258
|
+
- **Agent abstraction:**
|
|
259
|
+
- fifony wraps local CLIs, not proprietary model logic.
|
|
260
|
+
- Per stage we configure `cli`, `model`, and `reasoningEffort` independently (`planning`, `execute`, `review`).
|
|
261
|
+
- This lets you swap providers by issue without changing core orchestration.
|
|
262
|
+
- **Per-issue isolation:**
|
|
263
|
+
- Each issue has its own execution workspace and Git worktree branch.
|
|
264
|
+
- That avoids file conflicts and enables parallel work on the same repo safely.
|
|
265
|
+
- **Review and execution observability:**
|
|
266
|
+
- Diff stats are computed from git `--stat` output (`linesAdded`, `linesRemoved`, `filesChanged`).
|
|
267
|
+
- Runtime events are emitted for state transitions, review path decisions, and merge outcomes.
|
|
268
|
+
- CLI output and audit trails are stored to make mid-run interruptions recoverable.
|
|
269
|
+
- **Capability routing:**
|
|
270
|
+
- Routing derives issue labels (`capability:<category>`, `overlay:<name>`) from issue text and inferred file paths.
|
|
271
|
+
- This improves queue triage and worker assignment.
|
|
263
272
|
|
|
264
273
|
---
|
|
265
274
|
|
|
266
275
|
## Requirements
|
|
267
276
|
|
|
268
277
|
- Node.js 23 or newer
|
|
269
|
-
- At least one of: `claude` CLI, `codex` CLI
|
|
278
|
+
- At least one of: `claude` CLI, `codex` CLI
|
|
270
279
|
|
|
271
280
|
---
|
|
272
281
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const CACHE_VERSION = "
|
|
1
|
+
const CACHE_VERSION = "1774027644110";
|
|
2
2
|
const CORE_CACHE = `fifony-core-${CACHE_VERSION}`;
|
|
3
3
|
const ASSET_CACHE = `fifony-assets-${CACHE_VERSION}`;
|
|
4
4
|
const APP_SHELL_ROUTES = ["/kanban", "/issues", "/agents", "/settings", "/onboarding"];
|