Releases: golovanov-dev/weft
Releases · golovanov-dev/weft
Release list
Weft v0.1.1
Packaging and example fixes for the first release.
Fixed
- The example/documentation site now runs straight after
composer install, with no Node build
step: its built assets are committed and it defaults to production mode. composer require golovanov/weftno longer pulls the example site, tests or CI config into
vendor/— the package archive now ships only the engine (src/) and its metadata.
Upgrade: none required. golovanov/weft v0.1.1 is API-compatible with v0.1.0; it only changes what
the package archive contains and how the example site is run. Existing sites keep working unchanged.
Weft v0.1.0
Initial release: the complete engine as a Composer library (golovanov/weft), with a working
example site that doubles as the documentation.
Added
- Convention routing:
pages/about.php→/about, directory indexes,[slug]dynamic
segments,api/*.php→ JSON endpoints under/api/*; no route table. - SEO toolkit: title templates, canonical, Open Graph, Twitter cards, hreflang and JSON-LD
rendered from config with per-page overrides; generated/sitemap.xmland/robots.txt. - Optional i18n (off by default): prefix-free default locale, prefixed URLs for others,
automatic hreflang and canonical redirects, translation arrays inlang/<locale>/. - Optional caching with file and Redis stores;
Cache::remember()stays a safe no-op when
caching is disabled. - Request tracing: one JSONL timeline per request via golovanov/traceloom, with automatic
redaction of sensitive keys and anX-Trace-Idresponse header. - Form protection: rate limiting, CSRF tokens, honeypot check and optional Google
reCAPTCHA v3 (safe pass when disabled). - Best-effort alerting to AlertLoop that never blocks a request.
- Built-in utilities: curl-based HTTP client, thin PDO wrapper with a minimal model, JWT
(firebase/php-jwt), security headers, string/array/JSON helpers. - Vite integration: dev server with HMR in development, hashed production assets resolved
from the manifest. - Two-layer configuration: gitignored environment constants plus committed business config
read viaconfig('dot.keys'). example/— a complete working site that is also the engine's documentation
(example/content/en/).