# Beta 4 Language Usability

Release label: `1.0.0-beta.4`

Release date: 2026-05-22

Status: released beta language-usability diagnostics slice.

## Scope

This post-`1.0.0-beta.3` slice reduces friction in ordinary project use
without changing the typed core or claiming new syntax stability.

## Current Work

- Improve project/workspace build and run entry diagnostics.
- Keep the accepted entry contract unchanged: `(fn main () -> i32 ...)`.
- Use precise diagnostic codes for missing and invalid entry `main` functions.
- Make non-exhaustive `match` diagnostics clearer and deterministic.

## Acceptance Gates

- `cargo test --test project_mode entry_main`
- `cargo test --test diagnostics_contract`
- `cargo fmt --check`
- `git diff --check`

## Deferrals

- No implicit `main` return conversions.
- No argument-taking `main`.
- No async, package registry, or stable ABI/layout promises.
- Broader type aliases, match diagnostics, and destructuring remain candidate
  follow-up items in the same language usability roadmap lane.
