v0.1.7: chore(doctor): warn that 0.1.6 and earlier deploy sites whose assets 404
Stoneware v0.1.7
A reliability, security, diagnostics, and deployment-focused release.
Highlights
Better rendering errors
Stoneware now reports the component path when rendering fails.
For example:
Cannot render a plain object with keys: id, title, price.
in <span>
in <Price>
in <ProductCard>
in <Home>
Error values are described more clearly, including plain objects, Date, Map, and class instances.
Application-thrown error messages are preserved without framework prose being appended to them.
Improved 500 error handling
If a custom _500 page also fails, Stoneware now distinguishes the original application error from the error-page failure.
The original error remains available for diagnosis instead of being masked by a second rendering error.
Vercel deployment assets fixed
stoneware build --target vercel now places generated CSS and island JavaScript under:
public/_stoneware/
This allows Vercel's CDN to serve generated assets correctly.
Generated assets use long-lived immutable caching:
Cache-Control: public, max-age=31536000, immutable
Cross-copy Signals compatibility
Stoneware now recognizes compatible Signals even when multiple copies of @preact/signals-core are present.
This improves compatibility with monorepos, linked packages, and dependency-resolution scenarios without treating arbitrary { value: ... } objects as Signals.
Extensible Content Security Policy
The default CSP remains restrictive, while applications can explicitly allow trusted third-party origins.
For example:
csp: {
scriptSrc: ["https://www.googletagmanager.com"],
connectSrc: ["https://www.google-analytics.com"],
imgSrc: ["https://www.google-analytics.com"],
}Stoneware preserves its secure defaults and rejects malformed sources that could inject additional CSP directives.
Third-party integrations do not require disabling CSP or adding unsafe-inline.
Styling documentation
The documentation now explains:
- CSS discovery
- co-located CSS
- CSS ordering
- production hashing
- production minification
- island style objects
- the difference between
public/CSS and discovered CSS
Static export documentation
The documentation now covers:
stoneware buildvsstoneware exportstaticPaths()- dynamic routes
- generated
dist/structure 404.html- static-host deployment
- pages that cannot be statically exported
Deployment documentation
Deployment documentation now covers:
- pre-deployment checks
STONEWARE_CSRF_SECRETstoneware doctor- dynamic-route export checks
- Cloudflare
- Netlify
- GitHub Pages
- CDN/static deployments
- post-deployment asset verification
Validation
- 492+ tests passing
- Typecheck clean
- Documentation pages rendering successfully
- Vercel CSS and island assets verified with HTTP 200
- Generated assets verified with immutable caching
Notes
Stoneware remains an early-stage framework. The 0.1.x series continues to evolve, and some deployment and runtime capabilities may change in future releases.