pixelkiln 0.63.0 → 0.64.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.
package/docs/CLI.md CHANGED
@@ -304,12 +304,15 @@ Review remote objects that no supplied lockfile claims. On shared accounts, pass
304
304
  every other project lock via repeatable `--claims`; sibling manifests are used
305
305
  to exclude objects matching another project's styles. `--dry-run --json`
306
306
  provides a scriptable inventory. Import, keep, and discard are review decisions;
307
- discard only tags an object. Pass `--provider` when the manifest uses more than
308
- one provider.
307
+ discard only tags an object. Unclaimed characters are reviewed too, one card per
308
+ base and its states, in the manifest's `character` styles; importing one writes
309
+ its base, states, and loops and adopts them (see
310
+ [Recovery](./RECOVERY.md#characters)). Pass `--provider` when the manifest uses
311
+ more than one provider.
309
312
 
310
313
  ### `purge`
311
314
 
312
- Delete provider objects previously tagged `pixelkiln:discard`. It is separate
315
+ Delete provider objects and characters previously tagged `pixelkiln:discard`. It is separate
313
316
  from salvage, lists targets, asks for confirmation, and refuses non-interactive
314
317
  deletion without `--yes`. Use `--dry-run` first. Pass `--provider` when the
315
318
  manifest uses more than one provider.
package/docs/RECOVERY.md CHANGED
@@ -128,6 +128,37 @@ array to stdout and human diagnostics to stderr for piping into `jq`.
128
128
  Imported ids are derived from prompts and land under `_salvaged/`; review and
129
129
  rename them before treating them as stable application ids.
130
130
 
131
+ ### Characters
132
+
133
+ Characters are account records of their own, outside the object listing, and
134
+ salvage reviews them too. A base and the states made from it share a group
135
+ upstream, so each unclaimed group is one card: the base's south rotation, with
136
+ a line counting its directions, states, and loops. A group is unclaimed when
137
+ none of its characters is in any supplied lockfile. A group with some members
138
+ claimed (a project uses the base, say, but not a state) is left out and
139
+ reported, since discarding the rest would delete states of a character in use;
140
+ declare those states and run `pixelkiln adopt` instead.
141
+
142
+ Groups go to the manifest's `character` styles, never to other styles: the
143
+ only character style when there is one, otherwise the style whose prompt
144
+ prefix or suffix the base's prompt carries. `--style <character style>` takes
145
+ every unclaimed group. A manifest with no character style reports the groups
146
+ and triages none of them. Account objects likewise never route to a character
147
+ style, where an import would become a character base with nothing upstream.
148
+
149
+ | Verdict | Effect on a character group |
150
+ |---|---|
151
+ | import | Add a base asset, one asset per state, and one loop asset per animation direction to the manifest, each with a `remoteId`, then adopt them: every rotation and frame is downloaded and gets a lock entry. |
152
+ | keep | Add `pixelkiln:keep` to the base and every state. |
153
+ | discard | Add `pixelkiln:discard` to the base and every state; does not delete. |
154
+
155
+ An imported base is named from the character's name, its states
156
+ `<base>_<state name>`, and its loops `<parent>.<animation>.<direction>`. A loop
157
+ PixelLab recorded without an animation group id cannot be adopted by
158
+ `remoteId` and is left out, with a line saying so. A base whose size differs
159
+ from the style's gets its own `size`; a 4-direction character imported into an
160
+ 8-direction style keeps its four rotations.
161
+
131
162
  ## Shared workspace catalog
132
163
 
133
164
  For a single project, its own lockfile is the whole claim set. On a shared
@@ -190,9 +221,11 @@ pixelkiln purge
190
221
  pixelkiln purge --yes
191
222
  ```
192
223
 
193
- Only objects already tagged `pixelkiln:discard` are eligible. The command lists
194
- targets, asks interactively, and refuses non-interactive deletion without
195
- `--yes`. A shared account should be fully adopted/salvaged before purge.
224
+ Only objects and characters already tagged `pixelkiln:discard` are eligible.
225
+ The command lists targets, asks interactively, and refuses non-interactive
226
+ deletion without `--yes`. A shared account should be fully adopted/salvaged
227
+ before purge. A deleted character takes its animations with it; each state is
228
+ its own record upstream, tagged and deleted on its own.
196
229
 
197
230
  ## Accept intentional spec prose changes
198
231
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pixelkiln",
3
- "version": "0.63.0",
3
+ "version": "0.64.0",
4
4
  "description": "Manifest-driven pixel-art generation, review, recovery, and packaging with deterministic provenance.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -94,7 +94,8 @@ ceilings copied from each plan group.
94
94
  Use the staged `submit` → `poll` → `pick` → `fetch` commands when resuming or
95
95
  debugging one phase. Use the plan's printed stage for paid work and `restore`
96
96
  for missing downloaded bytes, `adopt` for exact matches
97
- already in the provider account, and `salvage` for reviewed unclaimed objects.
97
+ already in the provider account, and `salvage` for reviewed unclaimed objects
98
+ and characters.
98
99
  Use `pack`, `mount`, or `export` only for the artifact format the project needs.
99
100
  Prefer a manifest quality profile when a whole style shares the final-art rule.
100
101
  Use `refine --from` only for a one-off candidate outside that contract, after