Skip to content

Commit fb97deb

Browse files
jsvdclaude
andcommitted
Regenerate stale declarations, add shader-showcase audit backlog, fix release skill
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent f1399a8 commit fb97deb

3 files changed

Lines changed: 38 additions & 7 deletions

File tree

.claude/skills/release/SKILL.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,20 +155,30 @@ git push origin main --tags
155155

156156
### 10. Publish to crates.io
157157

158-
Publish in dependency order, waiting for indexing between each:
158+
Publish in dependency order. Run each command **separately** — do not chain them with `&&`.
159159

160160
```bash
161161
# 1. Core library
162162
cargo publish -p arcane-core
163+
```
163164

164-
# Wait ~60s for crates.io to index
165+
```bash
166+
# Wait for crates.io to index before publishing the CLI
165167
sleep 60
168+
```
166169

170+
```bash
167171
# 2. CLI binary (--allow-dirty because cli/data/ is gitignored but included in crate)
168172
cargo publish -p arcane-engine --allow-dirty
169173
```
170174

171-
If the second publish fails with "arcane-core X.Y.Z not found", wait longer and retry.
175+
- If `arcane-engine` fails with **"arcane-core X.Y.Z not found"**: wait longer and retry the last command only.
176+
- If either publish fails with **"already exists on crates.io index"**: **do not assume success — investigate first**:
177+
1. Run `cargo search arcane-core` / `cargo search arcane-engine` to confirm the published version matches X.Y.Z.
178+
2. Check `gh release list` to see if a GitHub release for vX.Y.Z already exists.
179+
3. If both match the intended version and all prior steps (CHANGELOG, git tag, CI) completed correctly, the duplicate was harmless — continue.
180+
4. If the published version matches X.Y.Z but earlier steps (CHANGELOG, tag, CI) are incomplete, complete those steps before finishing.
181+
5. If the published version is wrong (e.g. stale from a failed prior run), a new crates.io publish is impossible for that version — bump to a patch version (X.Y.Z+1), fix the root cause, and restart the release.
172182

173183
### 11. Create GitHub Release
174184

docs/roadmap.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,25 @@ GPU pipeline code (`renderer/mod.rs`, `sprite.rs`, `gpu.rs`, `texture.rs`, `shad
388388
| **Tier 1+2+3 done** | +5 more test files | TS coverage ~95%, Rust unchanged |
389389
| **Tier 4 done** | Rust test harness + integration tests | Rust coverage 60-70% (up from 41%) |
390390

391+
### Shader Showcase Effects Audit
392+
393+
**Status:** Open
394+
**Severity:** Medium — demo launches but multiple effects are visually broken
395+
396+
Several effect presets in `demos/shader-showcase/` produce incorrect or no visual output. The demo structure is now fixed (correct `drawText` calls, `setBackgroundColor` object form) but the underlying shader/uniform wiring for individual effects needs investigation.
397+
398+
**Known symptoms:**
399+
- Multiple effects appear broken or identical (likely uniform not being set correctly per-effect)
400+
401+
**Suggested investigation:**
402+
- [ ] Run each of the 8 effect presets and note which produce expected output vs. no change
403+
- [ ] Check `runtime/rendering/effects.ts` — verify each preset sets the correct named uniforms via `setShaderUniform()`
404+
- [ ] Check `runtime/rendering/shader.ts` — verify `createShader()` and `setShaderUniform()` correctly map names to slots and flush per-frame
405+
- [ ] Check the demo's per-effect `animate()` callbacks pass correct uniform names and value ranges
406+
- [ ] Cross-reference with `demos/shader-showcase/main.ts` effect definitions
407+
408+
---
409+
391410
### World Authoring DSL
392411

393412
**Status:** Open (Design in docs/world-authoring.md, not yet implemented)

templates/default/types/rendering.d.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -788,12 +788,14 @@ declare module "@arcane/runtime/rendering" {
788788
*/
789789
export declare function playMusic(path: string, volume?: number): InstanceId;
790790
/**
791-
* Stop a specific playing sound.
792-
* No-op in headless mode.
791+
* Stop a specific playing sound by sound ID.
792+
* Deprecated: use stopInstance() with an instance ID returned by playSound() instead.
793+
* This function is now a no-op; stop individual sounds using stopInstance().
793794
*
794-
* @param id - Sound handle from loadSound().
795+
* @param id - Sound handle from loadSound() (unused).
796+
* @deprecated Use stopInstance() with the InstanceId from playSound().
795797
*/
796-
export declare function stopSound(id: SoundId): void;
798+
export declare function stopSound(_id: SoundId): void;
797799
/**
798800
* Stop all currently playing sounds and music.
799801
* No-op in headless mode.

0 commit comments

Comments
 (0)