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 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 and merge.
7
+ Point at a repo. Open the dashboard. AI plans, builds, and reviews — you approve.
8
8
 
9
9
  [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
10
10
  [![Node](https://img.shields.io/badge/node-%3E%3D23-brightgreen.svg)]()
@@ -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:4000**. 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.
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 auto-detects your installed CLI tools (Claude, Codex, Gemini) and routes each pipeline stage to the best available provider. Configure per-stage provider, model, and reasoning effort in the Settings UI or drop a `WORKFLOW.md` in your project root.
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
- ```mermaid
33
- stateDiagram-v2
34
- [*] --> Planning
35
- Planning --> Planned: PLANNED
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
- | Step | What happens |
65
- |------|-------------|
66
- | **Create** | Describe what you want done. |
67
- | **Plan** | The planner agent generates a structured execution plan: phases, steps, target files, complexity, risks. |
68
- | **Approve** | You review the plan. Optionally refine it with AI chat before approving. |
69
- | **Execute** | Agents run in an isolated git worktree. Live output streams to the dashboard. |
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`, `gemini`, `git`, `node`, `docker`, and other tools on your system |
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 with 5 columns: Planning, In Progress, Reviewing, Blocked, Done. |
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 (default port 4000)
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:4000/docs`.
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 (git worktrees)
236
+ workspaces/ ← isolated per-issue execution directories
254
237
  ```
255
238
 
256
- - **State machine (single source of truth):** States, guarded transitions, actions, and triggers are centralized in `issue-state-machine.ts`. All side effects (events, field mutations, EC tracking) happen in FSM entry actions.
257
- - **Persistence (s3db.js):** Issues, events, sessions, and settings are first-class resources. No external DB required.
258
- - **Eventual consistency analytics:** `EventualConsistencyPlugin` tracks `linesAdded`, `linesRemoved`, `filesChanged`, token usage, and event counts with daily cohort rollups.
259
- - **Queue workers:** `S3QueuePlugin` dispatches planning/execution/review jobs to concurrent workers.
260
- - **Agent abstraction:** Wraps local CLIs (Claude, Codex, Gemini), not proprietary model logic. Per-stage provider/model/effort configuration.
261
- - **Per-issue isolation:** Each issue gets its own git worktree branch. No file conflicts, safe parallel work.
262
- - **Capability routing:** Issue labels derived from text and file paths drive automatic provider/agent selection.
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, `gemini` CLI
278
+ - At least one of: `claude` CLI, `codex` CLI
270
279
 
271
280
  ---
272
281
 
@@ -1,4 +1,4 @@
1
- const CACHE_VERSION = "1774027862578";
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"];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fifony",
3
- "version": "0.1.26-next.f3fade3",
3
+ "version": "0.1.26",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",