create-zerotal 1.0.2 → 1.0.4

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/CHANGELOG.md CHANGED
@@ -8,6 +8,25 @@ follows the Zerotal monorepo's unified versioning.
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [1.0.4] — 2026-08-07
12
+
13
+ ### Fixed
14
+
15
+ - **The Flow starter rendered unstyled.** Its layout linked `/app.css` while the
16
+ asset build writes `public/css/app.css`, so every page loaded with a 404 for
17
+ the stylesheet — a one-segment path mismatch that looks like a CSS problem.
18
+ A test now asserts the rendered page names the path the build produces.
19
+ - The Flow starter also declares a favicon, so a fresh `serve --dev` no longer
20
+ logs a 404 for `/favicon.ico` on every page load.
21
+
22
+ ## [1.0.3] — 2026-08-07
23
+
24
+ ### Changed
25
+
26
+ - Re-released from a rebuilt repository so the build provenance resolves. The
27
+ 1.0.2 attestation names a repository that was renamed away, which leaves the
28
+ signature valid but the trace back to source dangling. No code changed.
29
+
11
30
  ## [1.0.2] — 2026-08-06
12
31
 
13
32
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-zerotal",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Create a new Zerotal application",
5
5
  "license": "MIT",
6
6
  "maturity": "stable",
package/src/scaffold.ts CHANGED
@@ -13,7 +13,7 @@ export type Template = 'minimal' | 'api' | 'admin' | 'flow' | 'react' | 'vue';
13
13
  // "^1.1.0" found for specifier "zerotal"` — the first thing anyone trying the
14
14
  // framework saw. `scaffold.test.ts` now asserts the two agree, so CI fails rather
15
15
  // than the user's install.
16
- export const ZT_VERSION = '^1.0.2';
16
+ export const ZT_VERSION = '^1.0.4';
17
17
 
18
18
  export interface ScaffoldOptions {
19
19
  name: string;
@@ -18,13 +18,17 @@ const GUEST_NAV = [
18
18
  ];
19
19
 
20
20
  export class AppLayout extends Layout {
21
- // Built by `bun zt serve` from resources/css/app.css (Tailwind) public/app.css.
21
+ // Built by `bun zt serve` from resources/css/app.css (Tailwind). The bundler
22
+ // mirrors the source layout under the asset outDir, so it lands at
23
+ // public/css/app.css and is served from /css/app.css — not /app.css.
24
+ //
22
25
  // A getter (not a static field) so asset() re-runs per request and picks up
23
26
  // the latest ?v= cache-busting token after a dev rebuild.
24
27
  static override get head(): string {
25
28
  return `
26
29
  <meta name="viewport" content="width=device-width, initial-scale=1">
27
- <link rel="stylesheet" href="${asset("/app.css")}">
30
+ <link rel="icon" href="/zt.svg" type="image/svg+xml">
31
+ <link rel="stylesheet" href="${asset("/css/app.css")}">
28
32
  `;
29
33
  }
30
34
 
@@ -74,3 +74,17 @@ describe('auth', () => {
74
74
  expect(res.status).toBe(302);
75
75
  });
76
76
  });
77
+
78
+ /**
79
+ * The stylesheet link has to name the path the asset build actually writes.
80
+ * It shipped pointing at /app.css while the build produced public/css/app.css,
81
+ * so every page rendered unstyled with a 404 in the log — a failure that looks
82
+ * like a CSS problem and is really a one-segment path mismatch.
83
+ */
84
+ describe('assets', () => {
85
+ test('links the stylesheet where the build writes it', async () => {
86
+ const res = await app.get('/');
87
+
88
+ res.assertSee('/css/app.css');
89
+ });
90
+ });