README: drop the stale static version badge (npm badge is live), Agent Skills badge 39 with a test that keeps it in step; CHANGELOG Unreleased for the Windows fixes

This commit is contained in:
CRTkafa 2026-10-21 22:37:51 +08:00
parent 46f3e56c09
commit 5317230b08
3 changed files with 26 additions and 2 deletions

View file

@ -2,6 +2,12 @@
## Unreleased
- **Windows: the MCP server starts.** `storebound install` writes `cmd /c npx -y storebound@<version> mcp` (or
`bun <toolchain>/cli/index.ts mcp`) on Windows, where `npx.cmd` and the sh launcher cannot be spawned. Pitfall 94.
- **`storebound desktop` no longer waits forever on a stalled download.** Progress every 10 %, and an error after
60 s without data. Pitfall 95.
- Windows checkouts keep LF line endings (`.gitattributes`); README badges: live npm version, real skill count.
## 0.8.23 · 2026-10-21
- **`apple submit --yes` submits a draft prepared with `--no-submit`.** The second step of the two-step flow

View file

@ -9,10 +9,9 @@ in-app products and prices, the compliance forms, even the consoles that have no
[![npm](https://img.shields.io/npm/v/storebound?label=npm&color=cb3837)](https://www.npmjs.com/package/storebound)
[![license: MIT](https://img.shields.io/badge/license-MIT-blue)](https://git.crt.fyi/CRT/storebound/src/branch/main/LICENSE)
[![version 0.6.0](https://img.shields.io/badge/version-0.6.0-informational)](https://git.crt.fyi/CRT/storebound/src/branch/main/CHANGELOG.md)
[![runtime: Node 20+ or Bun 1.1+](https://img.shields.io/badge/runtime-Node%2020%2B%20%7C%20Bun%201.1%2B-f9f1e1)](#install-and-start)
[![runtime dependencies: 0](https://img.shields.io/badge/runtime%20dependencies-0-brightgreen)](https://git.crt.fyi/CRT/storebound/src/branch/main/package.json)
[![Agent Skills: 25](https://img.shields.io/badge/Agent%20Skills-25-8a63d2)](https://git.crt.fyi/CRT/storebound/src/branch/main/skills)
[![Agent Skills: 39](https://img.shields.io/badge/Agent%20Skills-39-8a63d2)](https://git.crt.fyi/CRT/storebound/src/branch/main/skills)
[![MCP: 2026-07-28](https://img.shields.io/badge/MCP-2026--07--28-black)](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/mcp.md)
**Website: [storebound.dev](https://storebound.dev) · Docs: [docs/](https://git.crt.fyi/CRT/storebound/src/branch/main/docs/README.md) · `npx storebound init`**

View file

@ -0,0 +1,19 @@
// README badges never go stale: the version comes from npm (a static version badge once said 0.6.0 at 0.8.23) and the
// skill count must match skills/*/SKILL.md.
import { describe, expect, test } from 'bun:test';
import { existsSync, readdirSync, readFileSync } from 'node:fs';
import { join } from 'node:path';
const root = join(import.meta.dir, '..');
const readme = readFileSync(join(root, 'README.md'), 'utf8');
describe('README badges', () => {
test('no hand-written version badge; the npm badge is live', () => {
expect(readme).not.toMatch(/img\.shields\.io\/badge\/version-/);
expect(readme).toContain('img.shields.io/npm/v/storebound');
});
test('the Agent Skills badge counts every skill', () => {
const n = readdirSync(join(root, 'skills')).filter(d => existsSync(join(root, 'skills', d, 'SKILL.md'))).length;
expect(/Agent%20Skills-(\d+)-/.exec(readme)?.[1]).toBe(String(n));
});
});