[{"url":"https://api.github.com/repos/amberframework/amber/releases/370077221","assets_url":"https://api.github.com/repos/amberframework/amber/releases/370077221/assets","upload_url":"https://uploads.github.com/repos/amberframework/amber/releases/370077221/assets{?name,label}","html_url":"https://github.com/amberframework/amber/releases/tag/v2.0.0-beta.5","id":370077221,"author":{"login":"crimson-knight","id":13125514,"node_id":"MDQ6VXNlcjEzMTI1NTE0","avatar_url":"https://avatars.githubusercontent.com/u/13125514?v=4","gravatar_id":"","url":"https://api.github.com/users/crimson-knight","html_url":"https://github.com/crimson-knight","followers_url":"https://api.github.com/users/crimson-knight/followers","following_url":"https://api.github.com/users/crimson-knight/following{/other_user}","gists_url":"https://api.github.com/users/crimson-knight/gists{/gist_id}","starred_url":"https://api.github.com/users/crimson-knight/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crimson-knight/subscriptions","organizations_url":"https://api.github.com/users/crimson-knight/orgs","repos_url":"https://api.github.com/users/crimson-knight/repos","events_url":"https://api.github.com/users/crimson-knight/events{/privacy}","received_events_url":"https://api.github.com/users/crimson-knight/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOBUbxUs4WDu4l","tag_name":"v2.0.0-beta.5","target_commitish":"76954f0e2edc10d568e7ffcea3faa94b2aa476d2","name":"Amber 2.0.0-beta.5","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-08-13T17:02:33Z","updated_at":"2026-08-13T17:04:24Z","published_at":"2026-08-13T17:04:24Z","assets":[],"tarball_url":"https://api.github.com/repos/amberframework/amber/tarball/v2.0.0-beta.5","zipball_url":"https://api.github.com/repos/amberframework/amber/zipball/v2.0.0-beta.5","body":"# Amber 2.0.0-beta.5\n\nAmber 2.0.0-beta.5 turns the V2 schema API into a contract the framework\nactually enforces. A controller declaration now owns request parsing,\nvalidation, typed access, response validation, content negotiation, and\nOpenAPI 3.1 output. The release also brings the optimized router and request\npath onto the V2 release line.\n\n## Upgrade compatibility comes first\n\nThe existing `params.validation` API still compiles and runs. It is deprecated\nso new work can use executable controller schemas, but upgrading to beta.5 does\nnot require rewriting every controller. Applications can update Amber, run\ntheir existing tests, and then migrate one action at a time.\n\nAmber does not plan to remove the deprecated validator before a later V2 minor\nsuch as 2.5. The exact removal release will be announced separately.\n\n## Executable request and response contracts\n\n- `schema :action, SchemaClass` enforces the declared request before the action\n  runs.\n- `validated_as(SchemaClass)` exposes request-local typed values without\n  constructing and validating a second schema object.\n- Request fields can come from bodies, paths, query strings, headers, and\n  cookies.\n- `response_schema` verifies the declared status, content type, and response\n  shape before delivery.\n- OpenAPI 3.1 operations are generated from the same contracts the application\n  executes.\n- Server-rendered controllers can override the schema-failure hook to return an\n  ECR form with field errors and the correct 400, 415, or 422 status.\n\n## JSON, CBOR, and authenticated COSE\n\nAmber now supports JSON, XML, URL-encoded forms, multipart forms, and bounded\nCBOR request parsing. COSE Encrypt0 adds authenticated ChaCha20-Poly1305\nencryption in both directions: Amber decrypts and authenticates the inbound\nrequest, applies its schema, and can authenticate and encrypt the response with\na fresh nonce.\n\nThe request boundary fails explicitly for malformed documents, unsupported\nmedia, invalid values, unacceptable response formats, invalid declared\nresponses, and temporarily unavailable encryption configuration.\n\n## Measured performance\n\nThe release candidate was tested on a DigitalOcean Basic one-shared-vCPU,\n512-MB-class target with a separate load generator, 16 keep-alive connections,\nand seven rotating 15-second repetitions per scenario:\n\n| Complete HTTP request path | Median requests/second |\n|---|---:|\n| Generic JSON decode | 20,728 |\n| Schema-validated JSON | 19,488 |\n| Schema-validated CBOR | 21,742 |\n| Authenticated COSE request and response | 14,443 |\n\nAll 7,974,608 retained requests returned HTTP 200. This is a synthetic\nin-memory acknowledgement workload without a database, TLS termination,\nexternal services, or HTML rendering. It measures framework, codec, and schema\ncost under constrained hardware; it is not a capacity promise for an arbitrary\nproduction application.\n\nSee\n[`benchmarks/DIGITALOCEAN_SCHEMA_CONTRACT_ROUND27.md`](benchmarks/DIGITALOCEAN_SCHEMA_CONTRACT_ROUND27.md)\nfor the complete method, ranges, before-and-after comparison, and evidence\npaths.\n\n## Start a fresh web application\n\nAmber CLI 2.0.6 is the coordinated generator release for this beta:\n\n```bash\nbrew install amberframework/amber_cli/amber_cli\namber new pet_tracker --type web\ncd pet_tracker\nshards install\namber assets check\namber generate scaffold Pet name:string:required species:string:required adopted:bool\namber database migrate\ncrystal spec\namber watch\n```\n\nThe generated application uses ECR, Grant, SQLite, Micrate, local front-end\nassets, executable HTML form schemas, and Amber `2.0.0-beta.5`.\n\nSee the [beta installation guide](https://github.com/amberframework/amber/blob/v2.0.0-beta.5/docs/beta-installation.md),\n[migration guide](https://github.com/amberframework/amber/blob/v2.0.0-beta.5/docs/migration-guide.md),\nand [schema guide](https://github.com/amberframework/amber/blob/v2.0.0-beta.5/docs/guides/schema-api.md).\n"},{"url":"https://api.github.com/repos/amberframework/amber/releases/368992023","assets_url":"https://api.github.com/repos/amberframework/amber/releases/368992023/assets","upload_url":"https://uploads.github.com/repos/amberframework/amber/releases/368992023/assets{?name,label}","html_url":"https://github.com/amberframework/amber/releases/tag/v2.0.0-beta.4","id":368992023,"author":{"login":"crimson-knight","id":13125514,"node_id":"MDQ6VXNlcjEzMTI1NTE0","avatar_url":"https://avatars.githubusercontent.com/u/13125514?v=4","gravatar_id":"","url":"https://api.github.com/users/crimson-knight","html_url":"https://github.com/crimson-knight","followers_url":"https://api.github.com/users/crimson-knight/followers","following_url":"https://api.github.com/users/crimson-knight/following{/other_user}","gists_url":"https://api.github.com/users/crimson-knight/gists{/gist_id}","starred_url":"https://api.github.com/users/crimson-knight/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crimson-knight/subscriptions","organizations_url":"https://api.github.com/users/crimson-knight/orgs","repos_url":"https://api.github.com/users/crimson-knight/repos","events_url":"https://api.github.com/users/crimson-knight/events{/privacy}","received_events_url":"https://api.github.com/users/crimson-knight/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOBUbxUs4V_l8X","tag_name":"v2.0.0-beta.4","target_commitish":"a2128cdb4fef07025e0cc1c1578d4c807ae6c274","name":"Amber 2.0.0-beta.4","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-08-12T04:20:04Z","updated_at":"2026-08-12T04:23:00Z","published_at":"2026-08-12T04:23:00Z","assets":[],"tarball_url":"https://api.github.com/repos/amberframework/amber/tarball/v2.0.0-beta.4","zipball_url":"https://api.github.com/repos/amberframework/amber/zipball/v2.0.0-beta.4","body":"Amber 2.0.0-beta.4 connects the V2 web runtime to the deterministic asset compiler and closes the fresh-application path across macOS, Linux, Linux ARM64, and Windows CI.\n\nThe `beta` label applies to the Amber 2.0 release train. The supported surface is the ECR web application created by Amber CLI 2.0.5; native applications and authentication generators remain explicitly marked preview features.\n\n### What ships\n\n- Manifest-backed `asset_path`, stylesheet, JavaScript/import-map, image, and favicon helpers with Subresource Integrity metadata.\n- Production manifest caching and development reload behavior.\n- Immutable cache headers plus correct media type and content-length metadata for fingerprinted assets.\n- Precompressed gzip negotiation, byte ranges, conditional requests, `HEAD`, and safe non-fingerprinted fallback behavior.\n- `AMBER_DATABASE_URL` configuration with `DATABASE_URL` fallback for generated Grant applications.\n- Windows-safe server startup: Amber no longer invokes Crystal's unimplemented Windows signal-trap API.\n- Updated installation, migration, asset-helper, configuration, and release-contract documentation with exact file locations.\n\n### Supported fresh web-app contract\n\nThe release-gated path covers generation, dependency installation, asset compilation and verification, Grant/SQLite/Micrate migrations, resource scaffolds, specs, production compilation, server startup, the generated homepage, and live database CRUD.\n\n- macOS Apple Silicon: supported and release-gated.\n- Linux x86_64: supported and release-gated.\n- Linux ARM64: supported and release-gated.\n- Windows x86_64: the generated application path is release-gated in CI; build the CLI from source because a standalone Windows archive is not published yet.\n\n### Validation\n\n- 2,350 framework examples passed with no failures.\n- GitHub Actions passed on Linux and macOS; CircleCI passed.\n- The Windows generated-app gate compiles and runs this exact framework revision through Amber CLI CI.\n\nUse Amber CLI 2.0.5 to create a new web application. See `docs/beta-installation.md` and `docs/migration-guide.md` in the repository for the reproducible install and upgrade procedures.\n\nFull change: #1407\n"},{"url":"https://api.github.com/repos/amberframework/amber/releases/368847118","assets_url":"https://api.github.com/repos/amberframework/amber/releases/368847118/assets","upload_url":"https://uploads.github.com/repos/amberframework/amber/releases/368847118/assets{?name,label}","html_url":"https://github.com/amberframework/amber/releases/tag/v2.0.0-beta.3","id":368847118,"author":{"login":"crimson-knight","id":13125514,"node_id":"MDQ6VXNlcjEzMTI1NTE0","avatar_url":"https://avatars.githubusercontent.com/u/13125514?v=4","gravatar_id":"","url":"https://api.github.com/users/crimson-knight","html_url":"https://github.com/crimson-knight","followers_url":"https://api.github.com/users/crimson-knight/followers","following_url":"https://api.github.com/users/crimson-knight/following{/other_user}","gists_url":"https://api.github.com/users/crimson-knight/gists{/gist_id}","starred_url":"https://api.github.com/users/crimson-knight/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crimson-knight/subscriptions","organizations_url":"https://api.github.com/users/crimson-knight/orgs","repos_url":"https://api.github.com/users/crimson-knight/repos","events_url":"https://api.github.com/users/crimson-knight/events{/privacy}","received_events_url":"https://api.github.com/users/crimson-knight/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOBUbxUs4V_CkO","tag_name":"v2.0.0-beta.3","target_commitish":"32489e8d21c2ae9bdbc54dce1e5b7b0dc0b7f63f","name":"Amber 2.0.0-beta.3","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-08-11T20:46:41Z","updated_at":"2026-08-11T21:20:14Z","published_at":"2026-08-11T20:47:04Z","assets":[],"tarball_url":"https://api.github.com/repos/amberframework/amber/tarball/v2.0.0-beta.3","zipball_url":"https://api.github.com/repos/amberframework/amber/zipball/v2.0.0-beta.3","body":"# Amber 2.0.0-beta.3\n\nAmber 2.0.0-beta.3 is the framework release for the database-backed web\napplication that Amber CLI 2.0.4 generates by default. The supported path now\nincludes Grant models, SQLite, Micrate migrations, and complete HTML resource\nscaffolds instead of stopping at a database-free homepage.\n\n## What changed\n\n- Schema controllers parse browser form bodies, including bodies already read\n  by routing or CSRF protection.\n- Background-job workers can steal queued work without corrupting request\n  activity accounting.\n- ECR view paths are normalized on Windows.\n- The HTML/JSON `respond_with` behavior is documented with executable examples.\n\n## Install and exercise persistence\n\nInstall Amber CLI 2.0.4, then generate and migrate a real resource:\n\n```bash\nbrew install amberframework/amber_cli/amber_cli\namber new pet_tracker --type web\ncd pet_tracker\nshards install\namber generate scaffold Pet name:string:required species:string:required adopted:bool\namber database migrate\ncrystal spec\namber watch\n```\n\nOpen <http://localhost:3000/pets>. The generated model lives at\n`src/models/pet.cr`, its SQL migration is under `db/migrations/`, and its ECR\nform partial is `src/views/pet/_form.ecr`.\n\nAmber CLI 2.0.4 ships release archives for Apple Silicon macOS, x86_64 Linux,\nand ARM64 Linux. Windows x86_64 generated web applications are compile-gated\nin CI; build the CLI from source on Windows for this beta.\n\nSee the [beta installation guide](https://github.com/amberframework/amber/blob/v2.0.0-beta.3/docs/beta-installation.md)\nand [V1 to V2 migration guide](https://github.com/amberframework/amber/blob/v2.0.0-beta.3/docs/migration-guide.md).\n\nPlease report framework issues at\n<https://github.com/amberframework/amber/issues> and CLI/template/install issues\nat <https://github.com/amberframework/amber_cli/issues>.\n"},{"url":"https://api.github.com/repos/amberframework/amber/releases/363593109","assets_url":"https://api.github.com/repos/amberframework/amber/releases/363593109/assets","upload_url":"https://uploads.github.com/repos/amberframework/amber/releases/363593109/assets{?name,label}","html_url":"https://github.com/amberframework/amber/releases/tag/v1.5.0","id":363593109,"author":{"login":"crimson-knight","id":13125514,"node_id":"MDQ6VXNlcjEzMTI1NTE0","avatar_url":"https://avatars.githubusercontent.com/u/13125514?v=4","gravatar_id":"","url":"https://api.github.com/users/crimson-knight","html_url":"https://github.com/crimson-knight","followers_url":"https://api.github.com/users/crimson-knight/followers","following_url":"https://api.github.com/users/crimson-knight/following{/other_user}","gists_url":"https://api.github.com/users/crimson-knight/gists{/gist_id}","starred_url":"https://api.github.com/users/crimson-knight/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crimson-knight/subscriptions","organizations_url":"https://api.github.com/users/crimson-knight/orgs","repos_url":"https://api.github.com/users/crimson-knight/repos","events_url":"https://api.github.com/users/crimson-knight/events{/privacy}","received_events_url":"https://api.github.com/users/crimson-knight/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOBUbxUs4Vq_2V","tag_name":"v1.5.0","target_commitish":"master","name":"v1.5.0 — Crystal 1.21 support","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-08-01T18:12:47Z","updated_at":"2026-08-01T18:12:49Z","published_at":"2026-08-01T18:12:49Z","assets":[],"tarball_url":"https://api.github.com/repos/amberframework/amber/tarball/v1.5.0","zipball_url":"https://api.github.com/repos/amberframework/amber/zipball/v1.5.0","body":"## Amber 1.5.0 — Crystal 1.21 support\n\nCrystal 1.21 enables multithreading by default, which made `Process.fork` a compile-time error — and broke compilation of **every** Amber app on Crystal 1.21.0+ (`Error: Process fork is unsupported with multithreaded mode`). This release restores compatibility and ships the security and performance work that had been waiting in review.\n\n### Compatibility\n\n- **`Amber::Cluster.fork` no longer uses `Process.fork`** (#1399) — cluster workers are spawned with `Process.new` (same mechanism as v2). `process_count` / master-worker semantics unchanged. Verified: framework specs, `amber new` → build → serve, and cluster mode with 2 workers, on Crystal 1.20.3 and 1.21.0.\n- **ameba pinned to `1.7.0-dev`** in framework dev-dependencies and the generated app template (#1399, supersedes #1394 — thanks @botantony). ameba ≤ 1.6.4 fails to build on Crystal 1.21, which broke `shards install` for new apps.\n- New [`COMPATIBILITY.md`](https://github.com/amberframework/amber/blob/master/COMPATIBILITY.md) documents which Crystal versions build which Amber releases.\n- Declared Crystal requirement is now `>= 1.20.0, < 2.0` (previously `>= 1.0.0`, which overstated reality).\n\n### Security (thanks @renich)\n\n- **XSS**: exception messages are HTML-escaped in the default error response (#1385).\n- **Command injection**: `amber encrypt` no longer passes the editor command through a shell (#1388).\n- **DoS hardening**: `MessageVerifier` / `MessageEncryptor` reject malformed payloads with typed exceptions instead of raising `IndexError` (#1386).\n- **SecureHeaders pipe** (#1390): new apps get `X-Content-Type-Options`, `X-Frame-Options`, `X-XSS-Protection`, and `Referrer-Policy` out of the box, plugged **above** the Error pipe so 404/403 responses keep their headers; HSTS is opt-in (`SecureHeaders.new(hsts: true)`).\n\n### Performance\n\n- Router content-extension matching uses string ops + set lookup instead of regex alternation (#1387, #1391, thanks @renich).\n\n### CI / contributor experience\n\n- CircleCI (broken at the project level) replaced with GitHub Actions: spec matrix on Crystal 1.20.3 + latest, Linux + macOS.\n- Contributor review rubric, PR template, and local dev hooks (#1393).\n\n### Upgrade notes\n\n- If your app pins `amber` to `1.4.1` exactly (the default for apps generated by older CLIs), change it to `~> 1.5.0` in `shard.yml` to build on Crystal 1.21.\n- Existing apps do **not** get SecureHeaders automatically — it's wired in the new-app template. Add `plug Amber::Pipe::SecureHeaders.new` above `plug Amber::Pipe::Error.new` in your `config/routes.cr` to adopt it.\n","reactions":{"url":"https://api.github.com/repos/amberframework/amber/releases/363593109/reactions","total_count":5,"+1":2,"-1":0,"laugh":0,"hooray":2,"confused":0,"heart":1,"rocket":0,"eyes":0},"mentions_count":2},{"url":"https://api.github.com/repos/amberframework/amber/releases/363237021","assets_url":"https://api.github.com/repos/amberframework/amber/releases/363237021/assets","upload_url":"https://uploads.github.com/repos/amberframework/amber/releases/363237021/assets{?name,label}","html_url":"https://github.com/amberframework/amber/releases/tag/v2.0.0-beta.2","id":363237021,"author":{"login":"crimson-knight","id":13125514,"node_id":"MDQ6VXNlcjEzMTI1NTE0","avatar_url":"https://avatars.githubusercontent.com/u/13125514?v=4","gravatar_id":"","url":"https://api.github.com/users/crimson-knight","html_url":"https://github.com/crimson-knight","followers_url":"https://api.github.com/users/crimson-knight/followers","following_url":"https://api.github.com/users/crimson-knight/following{/other_user}","gists_url":"https://api.github.com/users/crimson-knight/gists{/gist_id}","starred_url":"https://api.github.com/users/crimson-knight/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crimson-knight/subscriptions","organizations_url":"https://api.github.com/users/crimson-knight/orgs","repos_url":"https://api.github.com/users/crimson-knight/repos","events_url":"https://api.github.com/users/crimson-knight/events{/privacy}","received_events_url":"https://api.github.com/users/crimson-knight/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOBUbxUs4Vpo6d","tag_name":"v2.0.0-beta.2","target_commitish":"v2-dev","name":"Amber 2.0.0-beta.2","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-07-31T17:48:18Z","updated_at":"2026-07-31T18:39:48Z","published_at":"2026-07-31T17:48:32Z","assets":[],"tarball_url":"https://api.github.com/repos/amberframework/amber/tarball/v2.0.0-beta.2","zipball_url":"https://api.github.com/repos/amberframework/amber/zipball/v2.0.0-beta.2","body":"# Amber 2.0.0-beta.2\n\nAmber 2.0.0-beta.2 supersedes beta.1 for new Amber CLI web applications.\nIt keeps the same public beta surface and fixes application startup on Crystal\n1.21's default multithreaded runtime.\n\n## Compatibility fix\n\n- Replaced the server cluster launcher's `Process.fork` reference with portable\n  process spawning.\n- Release-gated on Apple Silicon macOS and x86_64 Linux with Crystal 1.21.\n- Fresh ECR web apps are tested through dependency installation, specs, core\n  generators, build, server launch, homepage delivery, and static CSS.\n\n## Install and create a web app\n\nInstall Amber CLI 2.0.2 or newer:\n\n```bash\nbrew install amberframework/amber_cli/amber_cli\namber new my_app --type web\ncd my_app\nshards install\ncrystal spec\namber watch\n```\n\nThe generated application pins `amberframework/amber` at `2.0.0-beta.2` and\nuses ECR. Database drivers, persistence, auth, Grant, Gemma, Asset Pipeline,\nand native application generation remain opt-in preview surfaces rather than\npart of the core beta release gate.\n\nSee the [beta installation guide](https://github.com/amberframework/amber/blob/v2.0.0-beta.2/docs/beta-installation.md)\nand [V1 to V2 migration guide](https://github.com/amberframework/amber/blob/v2.0.0-beta.2/docs/migration-guide.md).\n\nPlease report framework issues at\n<https://github.com/amberframework/amber/issues> and CLI/template/install issues\nat <https://github.com/amberframework/amber_cli/issues>.\n"},{"url":"https://api.github.com/repos/amberframework/amber/releases/363231948","assets_url":"https://api.github.com/repos/amberframework/amber/releases/363231948/assets","upload_url":"https://uploads.github.com/repos/amberframework/amber/releases/363231948/assets{?name,label}","html_url":"https://github.com/amberframework/amber/releases/tag/v2.0.0-beta.1","id":363231948,"author":{"login":"crimson-knight","id":13125514,"node_id":"MDQ6VXNlcjEzMTI1NTE0","avatar_url":"https://avatars.githubusercontent.com/u/13125514?v=4","gravatar_id":"","url":"https://api.github.com/users/crimson-knight","html_url":"https://github.com/crimson-knight","followers_url":"https://api.github.com/users/crimson-knight/followers","following_url":"https://api.github.com/users/crimson-knight/following{/other_user}","gists_url":"https://api.github.com/users/crimson-knight/gists{/gist_id}","starred_url":"https://api.github.com/users/crimson-knight/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crimson-knight/subscriptions","organizations_url":"https://api.github.com/users/crimson-knight/orgs","repos_url":"https://api.github.com/users/crimson-knight/repos","events_url":"https://api.github.com/users/crimson-knight/events{/privacy}","received_events_url":"https://api.github.com/users/crimson-knight/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOBUbxUs4VpnrM","tag_name":"v2.0.0-beta.1","target_commitish":"v2-dev","name":"Amber 2.0.0-beta.1 (superseded by beta.2)","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-07-31T17:36:27Z","updated_at":"2026-07-31T18:18:00Z","published_at":"2026-07-31T17:36:50Z","assets":[],"tarball_url":"https://api.github.com/repos/amberframework/amber/tarball/v2.0.0-beta.1","zipball_url":"https://api.github.com/repos/amberframework/amber/zipball/v2.0.0-beta.1","body":"# Amber 2.0.0-beta.1\n\nAmber V2's first public beta establishes a tested, documented path for creating\nan ECR web application with the standalone Amber CLI.\n\nThis is a prerelease. Expect breaking changes before Amber 2.0.0 and do not use\nit for production workloads that cannot tolerate them.\n\n## Install and create a web app\n\nInstall Amber CLI 2.0.2 or newer:\n\n```bash\nbrew install amberframework/amber_cli/amber_cli\namber new my_app --type web\ncd my_app\ncrystal spec\namber watch\n```\n\nSee the [beta installation guide](https://github.com/amberframework/amber/blob/v2.0.0-beta.1/docs/beta-installation.md)\nfor direct archives, checksums, update/uninstall steps, and troubleshooting.\n\n## Release-gated surface\n\n- Apple Silicon macOS and x86_64 Linux\n- Homebrew and matching direct CLI archives\n- ECR web application generation\n- dependency installation, specs, application build, server start, homepage,\n  and static CSS\n- framework core, routing, typed configuration, Schema API, jobs, mailer,\n  WebSockets, adapters, and testing helpers\n\n## Major V2 changes\n\n- CLI and LSP extracted to `amberframework/amber_cli`\n- ECR is the only supported view engine; Kilt and Slang were removed\n- runtime shard dependencies removed from framework core\n- database drivers and ORM are explicit application choices\n- typed, sectioned YAML with environment-variable overrides\n- built-in jobs, mailer, Schema API, and adapter-backed infrastructure\n\nRead the [V1 to V2 migration guide](https://github.com/amberframework/amber/blob/v2.0.0-beta.1/docs/migration-guide.md)\nbefore upgrading an existing application.\n\n## Preview surfaces\n\nPersistence/auth/API-resource generators, Grant integration, Gemma attachments,\nthe separate Asset Pipeline, and native app generation are not part of the\ncore beta release gate. Intel macOS, Linux ARM64, and Windows do not have\nrelease-gated CLI archives in this beta.\n\nPlease report framework issues at\n<https://github.com/amberframework/amber/issues> and CLI/template/install issues\nat <https://github.com/amberframework/amber_cli/issues>.\n"},{"url":"https://api.github.com/repos/amberframework/amber/releases/114838510","assets_url":"https://api.github.com/repos/amberframework/amber/releases/114838510/assets","upload_url":"https://uploads.github.com/repos/amberframework/amber/releases/114838510/assets{?name,label}","html_url":"https://github.com/amberframework/amber/releases/tag/v1.4.1","id":114838510,"author":{"login":"crimson-knight","id":13125514,"node_id":"MDQ6VXNlcjEzMTI1NTE0","avatar_url":"https://avatars.githubusercontent.com/u/13125514?v=4","gravatar_id":"","url":"https://api.github.com/users/crimson-knight","html_url":"https://github.com/crimson-knight","followers_url":"https://api.github.com/users/crimson-knight/followers","following_url":"https://api.github.com/users/crimson-knight/following{/other_user}","gists_url":"https://api.github.com/users/crimson-knight/gists{/gist_id}","starred_url":"https://api.github.com/users/crimson-knight/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crimson-knight/subscriptions","organizations_url":"https://api.github.com/users/crimson-knight/orgs","repos_url":"https://api.github.com/users/crimson-knight/repos","events_url":"https://api.github.com/users/crimson-knight/events{/privacy}","received_events_url":"https://api.github.com/users/crimson-knight/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOBUbxUs4G2Evu","tag_name":"v1.4.1","target_commitish":"master","name":"v1.4.1","draft":false,"immutable":false,"prerelease":false,"created_at":"2023-08-02T14:57:50Z","updated_at":"2023-08-02T15:09:31Z","published_at":"2023-08-02T15:09:31Z","assets":[],"tarball_url":"https://api.github.com/repos/amberframework/amber/tarball/v1.4.1","zipball_url":"https://api.github.com/repos/amberframework/amber/zipball/v1.4.1","body":"## What's Changed\r\n- Fixes tests that check for \"charset=utf-8\" in the `Content-Type` header when `application/json` is the content type.\r\n- Alters the `Static` pipeline slightly. When a directory is trying to be accessed but the trailing slash is not provided, the request will first redirect before returning a `404` if `directory_listing` is `false` (the default behavior). Previously, the redirect would have been skipped and just returned.\r\n\r\n* Resolved failing tests from merged PRs in v1.4.0 by @crimson-knight in https://github.com/amberframework/amber/pull/1335\r\n\r\n\r\n**Full Changelog**: https://github.com/amberframework/amber/compare/v1.4.0...v1.4.1","mentions_count":1},{"url":"https://api.github.com/repos/amberframework/amber/releases/114641500","assets_url":"https://api.github.com/repos/amberframework/amber/releases/114641500/assets","upload_url":"https://uploads.github.com/repos/amberframework/amber/releases/114641500/assets{?name,label}","html_url":"https://github.com/amberframework/amber/releases/tag/v1.4.0","id":114641500,"author":{"login":"crimson-knight","id":13125514,"node_id":"MDQ6VXNlcjEzMTI1NTE0","avatar_url":"https://avatars.githubusercontent.com/u/13125514?v=4","gravatar_id":"","url":"https://api.github.com/users/crimson-knight","html_url":"https://github.com/crimson-knight","followers_url":"https://api.github.com/users/crimson-knight/followers","following_url":"https://api.github.com/users/crimson-knight/following{/other_user}","gists_url":"https://api.github.com/users/crimson-knight/gists{/gist_id}","starred_url":"https://api.github.com/users/crimson-knight/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crimson-knight/subscriptions","organizations_url":"https://api.github.com/users/crimson-knight/orgs","repos_url":"https://api.github.com/users/crimson-knight/repos","events_url":"https://api.github.com/users/crimson-knight/events{/privacy}","received_events_url":"https://api.github.com/users/crimson-knight/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOBUbxUs4G1Upc","tag_name":"v1.4.0","target_commitish":"master","name":"v1.4.0","draft":false,"immutable":false,"prerelease":false,"created_at":"2023-08-01T12:08:40Z","updated_at":"2023-08-01T12:11:19Z","published_at":"2023-08-01T12:11:19Z","assets":[],"tarball_url":"https://api.github.com/repos/amberframework/amber/tarball/v1.4.0","zipball_url":"https://api.github.com/repos/amberframework/amber/zipball/v1.4.0","body":"## What's Changed\r\n* feat!: remove webpack from dependencies by @drujensen in https://github.com/amberframework/amber/pull/1304\r\n* update exception_page to 0.3.0 by @timstapl in https://github.com/amberframework/amber/pull/1315\r\n* #1311 Replace json_mapping with JSON::Serializable by @schodevio in https://github.com/amberframework/amber/pull/1314\r\n* Shard updates, mysql uuid type, and api route bug fix by @kalinon in https://github.com/amberframework/amber/pull/1319\r\n* Explicitly declare the UTF-8 charset for json responses by @damianham in https://github.com/amberframework/amber/pull/1231\r\n* Update README.md by @crimson-knight in https://github.com/amberframework/amber/pull/1323\r\n* docs: update homebrew installation note by @chenrui333 in https://github.com/amberframework/amber/pull/1330\r\n* Updated Ameba to use v1.5 by @crimson-knight in https://github.com/amberframework/amber/pull/1332\r\n* Minor version bump by @crimson-knight in https://github.com/amberframework/amber/pull/1333\r\n\r\n## New Contributors\r\n* @timstapl made their first contribution in https://github.com/amberframework/amber/pull/1315\r\n* @schodevio made their first contribution in https://github.com/amberframework/amber/pull/1314\r\n* @kalinon made their first contribution in https://github.com/amberframework/amber/pull/1319\r\n* @chenrui333 made their first contribution in https://github.com/amberframework/amber/pull/1330\r\n\r\n**Full Changelog**: https://github.com/amberframework/amber/compare/v1.3.2...v1.4.0","mentions_count":7}]