fimo 0.12.1 → 0.13.0

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.
@@ -34,7 +34,7 @@ Every command accepts a global `--json` flag (or `FIMO_OUTPUT=json` env) and emi
34
34
 
35
35
  Branch on `error.code`, never on `error.message`. The envelope shape is versioned — `schema_version: 1` is stable; any breaking change bumps the version. Per-command `data` shapes are documented in `apps/cli/CLAUDE.md` (consumers of this skill don't normally need to read it, but it's the source of truth).
36
36
 
37
- For shell composition use plain pretty mode (`cd $(fimo …)`); for structured parsing use `--json`. JSON mode disables interactive prompts — commands that need a confirmation will fail fast with `NON_INTERACTIVE_REFUSAL` unless every required arg is on the command line (`--yes`, `--org`, etc.).
37
+ For shell composition use plain pretty mode (`cd $(fimo …)`); for structured parsing use `--json`. JSON mode disables interactive prompts — commands that need a confirmation fail fast unless every required arg is on the command line (`--yes`, `--org`, etc.). Locale lifecycle commands use `CONFIRMATION_REQUIRED` and require `--yes`; other older commands may use `NON_INTERACTIVE_REFUSAL`.
38
38
 
39
39
  Pretty output may hide URLs behind clickable labels. Agents should use `--json` and read `data`.
40
40
 
@@ -17,6 +17,7 @@ fimo --env <name> <command> # peek at another env for one command (does not
17
17
  ```
18
18
 
19
19
  - **`--env <name>`** is a global override. `fimo --env main status` inspects `main` while you stay checked out on your feature branch.
20
+ - Git-changing commands use the current branch; cross-branch status only reports the mismatch.
20
21
  - If the branch maps to no env, the CLI errors with a hint (`fimo branch` to list, `fimo branch <name>` to create) rather than guessing.
21
22
  - **`main`** is the default env and cannot be deleted.
22
23
  - **`release/*`** envs are **read-only** — they're tags produced by `fimo publish`, not branches you push to. `fimo deploy` refuses them.
@@ -6,7 +6,9 @@
6
6
 
7
7
  > **Local vs hosted.** The local dev server is localhost only. The Fimo **dashboard preview** and the **shareable preview URL** are served by the deployed sandbox — so if the developer wants to see the site in the dashboard or send someone a link, that requires a `fimo deploy`.
8
8
 
9
- `fimo deploy` is **env-aware**: it targets the env of the current git branch (the same one `fimo status` reports on) and prints a one-line banner saying which. New projects are on `main`. It refuses to deploy to read-only `release/*` envs, and `--publish` only runs from `main`. The full multi-env workflow is in `references/branches.md`.
9
+ `fimo deploy` uses the current branch. New projects start on `main`; `release/*` is read-only, and `--publish` only runs from `main`. See `references/branches.md` for the multi-env workflow.
10
+
11
+ Before deploying, Fimo fast-forwards a clean checkout that is behind and stops on dirty-behind or diverged branches. This syncs the whole branch, including config commits from Studio or locale commands.
10
12
 
11
13
  > **Just need the current preview URL?** That's `fimo preview url` — sub-second, no commit, no push. See `references/preview.md`. `fimo deploy` is only for pushing code changes.
12
14
 
@@ -106,9 +108,9 @@ curl -H 'Accept: text/markdown' https://your-site/ # content negotiation
106
108
  curl https://your-site/?format=md # query param
107
109
  ```
108
110
 
109
- ## Recovering from a failed push
111
+ ## Recovering from Git drift
110
112
 
111
- If the push fails because the remote is ahead:
113
+ Most stale states are caught before deploy changes or commits files. Follow the emitted hint: clean a dirty checkout, or reconcile a diverged branch. A push can still lose a race if the remote advances after preflight:
112
114
 
113
115
  ```bash
114
116
  git pull --rebase fimo <env> # <env> = the branch you're deploying (e.g. main)
@@ -6,7 +6,20 @@ This file covers CLI-side locale configuration and validation. For code integrat
6
6
 
7
7
  ## Configure Locales
8
8
 
9
- Edit `.fimo/config.json`. Keep one locale unless the user asks for multilingual or localized output:
9
+ Keep one locale unless the user asks for multilingual or localized output. Use typed lifecycle commands for the locale set and default:
10
+
11
+ ```bash
12
+ fimo locales list --json
13
+ fimo locales add es --yes --json
14
+ fimo locales set-default es --yes --json
15
+ fimo locales remove es --yes --json
16
+ ```
17
+
18
+ These commands update the selected environment through the locale lifecycle API. The API commits `.fimo/config.json` to the Fimo branch, then the CLI synchronizes the **whole local branch** to that commit. They refuse a dirty config, a local-ahead branch, or a diverged branch before applying the remote change. `--yes` bypasses only the explanatory prompt.
19
+
20
+ If a mutation exits with code `2` and `data.code` is `LOCALE_APPLIED_SYNC_REQUIRED`, the remote operation succeeded (`data.applied` is `true`) but the local fast-forward did not. **Do not retry the locale command.** Run the commands in `data.sync.recovery`, resolve the checkout, and confirm with `fimo status` or `fimo locales list`.
21
+
22
+ Edit `.fimo/config.json` only for declarative routing behavior:
10
23
 
11
24
  ```jsonc
12
25
  {
@@ -21,12 +34,14 @@ Edit `.fimo/config.json`. Keep one locale unless the user asks for multilingual
21
34
  }
22
35
  ```
23
36
 
24
- - `defaultLocale` is the locale used by `fimo validate`, `fimo labels set` without `--locale`, and content commands without `--locale`.
25
- - `locales` must include `defaultLocale`. Do not add non-default locales unless the user asks for multiple languages, localized routes, translations, or a specific locale.
37
+ - `defaultLocale` is the locale used by `fimo validate`, `fimo labels set` without `--locale`, and content commands without `--locale`. Change it with `fimo locales set-default`.
38
+ - `locales` must include `defaultLocale`. Add and remove values with `fimo locales add` and `fimo locales remove`.
26
39
  - Locale tags should be structurally valid, for example `en`, `es`, `pt-BR`, or `zh-Hans`.
27
40
  - `routing.strategy` currently supports `path-prefix`.
28
41
  - If multiple locales are configured, create or update labels and localized content for every configured locale. Create schemas with `i18n: { "enabled": false }` only once.
29
42
 
43
+ `fimo locales remove` permanently deletes that locale's stored entries and labels.
44
+
30
45
  ## Validate
31
46
 
32
47
  Run:
@@ -28,6 +28,16 @@ Buying credits is available on the **Premium** plan, since it charges the paymen
28
28
  4. You get **1,000 credits per $1** spent.
29
29
  5. Confirm the purchase. Your card on file is charged and the credits are added to your account immediately -- there is no separate checkout page to complete.
30
30
 
31
+ ## Refilling Credits Automatically
32
+
33
+ Organization billing admins on Premium can configure auto-refill from **Settings > Billing**:
34
+
35
+ 1. Choose the balance threshold that should trigger a refill.
36
+ 2. Choose the dollar amount to purchase when the balance crosses that threshold.
37
+ 3. Save the configuration. Hyperline stores the setting and charges the payment method on file when the threshold is crossed.
38
+
39
+ Turn auto-refill off from the same control. Fimo does not keep a separate copy of this configuration; the Billing page always shows the provider's current setting. Leaving a paid plan clears auto-refill, and billing admins retain the off-switch if provider cleanup is delayed.
40
+
31
41
  ## Upgrading Your Plan
32
42
 
33
43
  You can upgrade from two places:
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "bundled": true,
3
3
  "bundler": "esbuild",
4
- "bundledAt": "2026-08-11T13:10:15.212Z",
5
- "cliVersion": "0.12.1",
4
+ "bundledAt": "2026-08-12T13:31:56.833Z",
5
+ "cliVersion": "0.13.0",
6
6
  "external": [
7
7
  "oxc-parser",
8
8
  "fsevents",