Skip to content

Capability Matrix

Chris Michael edited this page Jun 5, 2026 · 137 revisions

Meris

Meris v0.2 Capability Matrix

Implemented            Code path exists and has tests or fixtures.
Implemented with gaps  The slice is real, but the boundary is intentionally narrow.
Design-only            Architecture exists; user-facing implementation does not.
Deferred               The project has explicitly not taken this surface yet.

Status: wiki reference yes. Compiler behavior changed by this page: no.

This matrix is a map of what Meris can do today and where the next work should land. It is not a promise sheet. Each row points to code, tests, wiki pages, or tracking issues so contributors can tell real behavior from planned design.

Syntax And Frontend

Capability Status Evidence
Packages and imports Implemented Reference Index, NameResolverTest
Products and data declarations Implemented Language Surface, core syntax fixture
Closed variant types Implemented Declarations And Types, erased generics fixture
Function, entry, and script bodies Implemented CLI And Runtime, MerisCliScriptBodyTest
Declaration visibility Implemented Declaration Visibility, VisibilityTypeCheckerTest
Generic type expressions and explicit call type arguments Implemented with gaps Declaration Type Parameters, ExpressionParserTest
Type aliases Implemented Type Aliases, TypeAliasTypeCheckerTest
Raised-error set aliases Implemented Parser, formatter, checker, API reports, compatibility diff, hover, signature help, and LSP related diagnostics preserve alias spelling while comparing expanded concrete error sets. Type Aliases, RaisedErrorSetAliasTypeCheckerTest, MerisCliRaisedErrorAliasApiReportTest, LspHoverServiceTest
Source-level classes Deferred Language Surface
Source-level config declarations Deferred Project Manifest

Type System And Effects

Capability Status Evidence
Typed failures with raises, raise, and handle Implemented Expressions And Control Flow, ErrorEffectTypeCheckerTest
Payload-bearing typed failures Implemented Standard Error Boundary, typed errors fixture
Pattern matching on variant and builtin Option<T> values Implemented Closed source variants, builtin Option<T>, and guarded match arms work in the checker, interpreter, and JVM backend. Guarded arms are runtime filters and do not count toward static exhaustiveness. Match Expressions, JvmMatchBytecodeEmitterTest, OptionMatchTypeCheckerTest, MatchGuardTypeCheckerTest, MatchGuardInterpreterTest, issue 1082, issue 1188
Product constructor patterns and nested subpatterns Implemented Parser, formatter, checker, interpreter, and JVM backend accept positional User(Id, Name) product destructuring, named-field User(Name: DisplayName, ..) destructuring, explicit rest .., generic product substitution, and nested constructor subpatterns in match; nested coverage participates in exhaustiveness. Mixed positional/named fields and omitted named fields without .. are rejected. Match Expressions, ExpressionParserTest, ConstructorPatternFormatterTest, ProductPatternTypeCheckerTest, NestedConstructorPatternTypeCheckerTest, ProductPatternInterpreterTest, JvmMatchBytecodeEmitterTest, product pattern parity fixture, issue 1045, issue 1067, issue 1068, issue 1083, issue 1185
Structural equality Implemented Structural Equality, structural equality fixture
Product update Implemented Product Copy Update And Display Helpers, ProductUpdateInterpreterTest, JvmProductUpdateBytecodeEmitterTest, issue 628
Debug shape and field metadata Implemented with gaps Debug Shape And Field Metadata, DebugMetadataInterpreterTest, JvmDebugBytecodeEmitterTest, DebugMetadataTypeCheckerTest, issue 1048
Traits, impls, and static conformance dispatch Implemented Interpreter and JVM static dispatch accept generic conformance applicability such as impl<T> Printable for Box<T>, constrained mapped-function proof, and stable JVM specialization identity across source files. Dynamic trait-object construction reuses checked generic conformance proofs for supported cases. Traits, Dynamic Dispatch Values, TraitConformanceTypeCheckerTest, GenericTraitConformanceApplicabilityTypeCheckerTest, GenericTraitConstraintTypeCheckerTest, DynamicDispatchTypeCheckerTest, generic trait runtime parity fixture, issue 1184, issue 1199
Static standard Counted collection trait Implemented where T: Counted resolves for builtin List<T>, Set<T>, and Map<K, V> and lowers to existing count/emptiness standard calls in the checker, interpreter, JVM, and browser target. dyn Counted is rejected. Standard Library, StandardCountedTypeCheckerTest, StandardCountedInterpreterTest, JvmStandardCountedBytecodeEmitterTest, BrowserCollectionProtocolReadinessTest
Trait overlap diagnostics Implemented Traits, issue 544
Multi-paradigm expressiveness baseline Design-only Language Expressiveness Baseline, issue 608
Function values, lambdas, expected-type lambda elision, and fallible List callbacks Implemented with gaps Function Values, Standard Library, lambda elision parity fixture, LambdaElisionTypeCheckerTest, FunctionValueInterpreterTest, JvmListBytecodeEmitterTest, issue 1496
Dynamic dispatch values Implemented with gaps Dynamic Dispatch Values, DynamicDispatchTypeCheckerTest, DynamicDispatchInterpreterTest, JvmTraitDispatchBytecodeEmitterTest, issue 698
Structured concurrency and cancellation Implemented with gaps Structured Concurrency And Cancellation, ServerTestHostCancellationTest, DeterministicWorkSchedulerTest, issue 633
Reified generic runtime types Deferred JVM Backend

Standard Library And Runtime

Capability Status Evidence
Console, String, Option, List, Args, Env, and Fs modules Implemented Standard Library, StandardLibraryTest
First-class List runtime values and fallible transformations Implemented Standard Library, InterpreterListTest, JvmListBytecodeEmitterTest, issue 701
Json text validation, compacting, and pretty printing Implemented Json Boundary, StandardRuntimeLibraryJsonTest
Typed Json decode for primitives, Option, List, product values, generic product values, and closed variant values Implemented with gaps Json Boundary, StandardRuntimeLibraryJsonTest, issue 563
Typed Json encode for primitives, Option, List, product values, generic product values, and closed variant values Implemented with gaps Json Boundary, JvmJsonEncodeBytecodeEmitterTest, issue 589
Custom Json codec declarations and field-name policy Implemented with gaps Product field-name codecs work in parser, formatter, checker, interpreter, JVM Json.DecodeWith / Json.EncodeWith, checked Server body/response codec metadata, and source-free packaged Server custom Json plan descriptors. Variant renaming, custom envelopes, numeric coercions, and transform callbacks are not implemented. Custom Json Codecs, JsonCodecParserTest, JsonCodecTypeCheckerTest, InterpreterJsonCodecTest, JvmJsonCodecBytecodeEmitterTest, MerisCliPackagedServerJsonCodecDescriptorTest, MerisCliPackagedServerJsonCodecRoundTripTest, issue 715, issue 1219
Db standard-library catalog Implemented with gaps Db defines prepared values, statements, query/execute helpers, explicit transaction helpers, row decoders, and DbError payload metadata for catalog/type-checker use. Runtime adapters, JVM execution, JDBC bridge, database fixtures, schema tooling, and Server examples are not implemented. Db Boundary, StandardDbModule.kt, StandardDbLibraryTest, DbStdlibTypeCheckerTest, issue 1268, PR #1271
Http text client with strict UTF-8 response decoding Implemented HTTP Boundary, issue 545
Assert test helpers and typed assertion failures Implemented Standard Library, Tests, StandardAssertLibraryTest, StandardRuntimeAssertLibraryTest, MerisCliTestCommandTest, issue 1047
Dynamic Json object values Deferred Json Boundary

JVM Backend

Capability Status Evidence
Product and variant bytecode artifacts Implemented JVM Backend, jvm product ABI fixture
Script and entry-point bytecode Implemented JVM Backend, MerisCliRuntimeWrapperTest
Typed failures, handlers, match, equality, and stdlib bridges Implemented JVM Backend, JvmStandardErrorPayloadBytecodeEmitterTest
JVM compiled test runner Implemented Tests, issue 542
Stable public JVM ABI Deferred JVM Backend

Browser Target

Capability Status Evidence
Browser target compatibility checker Implemented with gaps Browser Target Boundary, issue 592
Browser no-DOM artifact emission Implemented with gaps meris compile --target browser emits deterministic browser-artifact.json metadata and meris-browser.js for compatible lowered modules. The metadata includes serialized Json codec metadata and a schema-versioned v1 capability manifest for required pure-runtime capabilities, Json text helpers, and unsupported host services. The JavaScript shim executes pure functions, products, variants, static trait dispatch, Option, List, Map, structural equality, and browser-safe String/Json text helpers. WebAssembly, DOM, fetch, timers, workers, storage, events, claimed browser host services, source maps, dynamic dispatch values, and function-backed Json codec execution are not implemented. Browser Target Boundary, BrowserExecutableEmitterTest, MerisCliBrowserArtifactTest, issue 1072, issue 1087, issue 1187
WebAssembly, DOM, browser host APIs, and UI packages Deferred Browser Target Boundary

Java Interop

Capability Status Evidence
Static Java method calls Implemented Java Interop, JvmJavaInteropEmitterTest
Java constructors and borrowed instance methods Implemented Java Interop, java object interop fixture, issue 548
Java exception translation to typed failures Implemented Java Interop, JavaInteropTypeCheckerTest
Explicit Java SAM adapters for function values Implemented with gaps Java Interop, JavaSamInteropTypeCheckerTest, JvmJavaSamInteropEmitterTest, issue 700
Java collection copy adapters, including nested List elements Implemented with gaps Java Collection Adapters, issue 547
Interpreter execution of Java interop Deferred Java Interop

CLI, Tooling, And Release

Capability Status Evidence
meris check, run, compile, test, and serve Implemented with gaps CLI And Runtime, MerisCliServeCommandTest
Diagnostic JSON and LSP diagnostics/syntax services Implemented with gaps CLI JSON diagnostics, the compiler-owned LSP diagnostic mapper, and meris lsp stdio diagnostic publishing exist. Project-aware diagnostics reuse CliProjectBuildGraph for source roots, workspace facts, classpath inputs, and package graph diagnostics. Snapshot currentness uses server-owned text revisions and open epochs. Full-sync didChange handling ignores ranged or rangeLength incremental payloads before they can corrupt the open buffer. Syntax-only document symbols, parser-owned child document symbols, folding ranges, and selection ranges exist. Hover includes parser-owned syntax facts and checked occurrence-backed name facts for open documents. Whole-document formatting, exact syntax-owner range formatting, structural on-type formatting for } and newline, and syntax-owned full semantic tokens exist. Compiler occurrence facts include nested type-reference geometry, failed-resolution targets, and a visible-scope occurrence query for semantic LSP consumers; they drive single-location go-to-definition, occurrence-backed references, name-aware hover, unqualified expression completion, checked product-field member completion, and conservative rename edits for resolved source-backed targets. Checked call-signature facts drive textDocument/signatureHelp for provable call sites. The checked project snapshot cache reuses unchanged semantic project checks and invalidates on relevant watched file and workspace-folder events. Workspace-folder roots bound project discovery, seed catalog-backed workspace symbols, and clear diagnostics when removed. Deterministic quickfix code actions exist for M2004 misplaced imports, and source.organizeImports sorts/deduplicates plain import blocks while declining edits that would touch comments or unsupported trivia. A protocol contract harness exercises initialize capabilities, lifecycle errors, unopened and unsupported request surfaces, conservative null/empty responses, changed documents, and UTF-16 ranges through JSON-RPC envelopes. A thin VS Code client is implemented under editors/vscode and forwards Meris source, manifest, and lockfile watcher events. Parser/catalog-backed completion and catalog-backed workspace symbols are implemented with narrow scope; completion consumes visible local facts, checked receiver product-field facts, import-path catalog entries, and qualified project declarations. It does not suggest unqualified project declarations from catalog reachability alone. Recursive project discovery under arbitrary workspace folders, arbitrary expression/block range formatting, general editor indentation, format-on-save, range/delta semantic tokens, and broader code actions are not implemented. Language Server Protocol, Implementation Roadmap And Policies, DiagnosticJsonRendererTest, MerisLanguageServerTest, MerisLanguageServerProtocolContractTest, MerisLanguageServerSnapshotTest, MerisLanguageServerFormattingTest, LspRangeFormattingRequestTest, LspOnTypeFormattingRequestTest, MerisLanguageServerOnTypeFormattingTest, MerisLanguageServerHoverTest, LspHoverServiceTest, LspHoverRequestTest, MerisLanguageServerProjectTest, MerisLanguageServerWorkspaceFoldersTest, MerisLanguageServerSemanticTokensTest, LspSemanticTokensTest, MerisLanguageServerDefinitionTest, MerisLanguageServerCodeActionTest, MerisLanguageServerWatchedFilesTest, LspWatchedFilesTest, LspDocumentStoreTest, LspFormattingServiceTest, LspDefinitionServiceTest, LspSyntaxServicesTest, OccurrenceFactCollectorTest, VisibleScopeOccurrenceQueryTest, CallSignatureFactsTypeCheckerTest, LspCompletionServiceTest, LspCheckedProjectSnapshotCacheTest, LspDiagnosticMapperTest, issue 1069, issue 1096, issue 1097, issue 1098, issue 1104, issue 1105, issue 1106, issue 1107, issue 1108, issue 1109, issue 1110, issue 1114, issue 1115, issue 1124, issue 1125, issue 1126, issue 1129, issue 1130, issue 1099, issue 1131, issue 1146, issue 1148, issue 1150, issue 1157, issue 1152, issue 1156, issue 1173, issue 1174, issue 1175, issue 1176, issue 1177, issue 1178, issue 1181, issue 1225
LSP name-aware hover details Implemented textDocument/hover uses compiler-owned occurrence hover details for signatures, checked types, import alias spelling, module, visibility, and documentation. It covers functions, Java functions with translated Meris errors, product constructors, source variant constructors, standard-library variant constructors in raise / match / handle positions, trait methods, standard-library functions, imports, locals, and parameters where checked facts exist. Unsupported or stale positions return no hover. Language Server Protocol, OccurrenceHoverFacts, StandardLibraryVariants, MerisLanguageServerHoverTest, LspHoverServiceTest, OccurrenceHoverFactsTest, issue 1179, issue 1224
LSP project-aware and checked member completion Implemented with gaps Completion uses the project catalog for reachable import paths and qualified declaration candidates, keeps unqualified expressions backed by visible-scope compiler facts, and excludes private, unrelated, test, codec, and impl declarations from project suggestions. It also suggests checked product fields for compiler-proven receiver expressions and fails closed for unsupported receivers. Language Server Protocol, LspCompletionServiceTest, LspProjectCompletionServiceTest, MerisLanguageServerCompletionTest, issue 1147, issue 1181
LSP workspace symbols Implemented with gaps workspace/symbol uses the project catalog for source-backed declarations visible from open catalog sources or active workspace-folder project roots. It skips standard-library and virtual declarations, sorts exact/prefix/contains/fuzzy matches deterministically, and returns empty results for unsupported contexts. Language Server Protocol, MerisLanguageServerWorkspaceSymbolTest, MerisLanguageServerWorkspaceFoldersTest, LspWorkspaceSymbolServiceTest, LspWorkspaceSymbolRequestTest, issue 1151, issue 1174
LSP signature help Implemented with gaps textDocument/signatureHelp returns one checked signature for provable call sites, uses ( and , trigger characters, selects the active parameter from checked argument spans, and returns null rather than guessing for unsupported positions. Language Server Protocol, MerisLanguageServerSignatureHelpTest, LspSignatureHelpServiceTest, issue 1149
LSP references Implemented with gaps textDocument/references uses exact compiler occurrence targets, honors context.includeDeclaration, sorts and dedupes source-backed locations, and returns [] for unsupported, unresolved, ambiguous, missing-member, standard-library, spanless, unopened, or stale positions. Language Server Protocol, MerisLanguageServerReferencesTest, LspReferencesServiceTest, LspReferencesRequestTest, issue 1152
LSP prepareRename and safe rename edits Implemented with gaps RenameSafetyClassifier classifies exact occurrence targets as safe, review-required, or blocked. textDocument/prepareRename exposes the safe subset to editors, and textDocument/rename produces versioned workspace edits only for that safe subset. Review-required, blocked, unresolved, ambiguous, missing-member, standard-library, unsupported, stale, invalid-name, or spanless requests return null. Language Server Protocol, RenameSafetyClassifierTest, MerisLanguageServerPrepareRenameTest, LspPrepareRenameServiceTest, LspPrepareRenameRequestTest, MerisLanguageServerRenameTest, LspRenameServiceTest, LspRenameRequestTest, issue 1153, issue 1154, issue 1177
LSP code actions and editor gate Implemented M2004 quick fixes use data.meris schema version 1 and require matching code, URI, range, and open document version before returning versioned workspace edits. source.organizeImports sorts and deduplicates plain import blocks, and returns no action when inline comments or interleaved comments would be touched. The Editor LSP Gate runs LSP protocol tests, installDist, VSIX content verification, the real meris lsp diagnostic smoke path, and a packaged VS Code Extension Host smoke on CI. Language Server Protocol, LspCodeActionDiagnosticData, MerisLanguageServerCodeActionTest, MerisLanguageServerOrganizeImportsCodeActionTest, MerisLanguageServerProtocolTest, VS Code LSP smoke script, VSIX content check, VS Code Extension Host smoke script, CI workflow, issue 1158, issue 1159, issue 1180, issue 1178
Versioned API reports and report compatibility diff Implemented with gaps API Reports, MerisCliApiReportTest, MerisCliApiReportDiffTest, issue 1049
Executable non-server examples Implemented Runnable Examples, NonServerExecutableExamplesTest, validation script, issue 1055
Project manifest source, output, classpath, script metadata, selected script check/run, package metadata, server route graph, server profiles, environment launch overrides, and server artifact metadata Implemented with gaps Project Manifest, MerisCliProjectManifestTest, MerisCliProjectScriptManifestTest, MerisCliProjectScriptExecutionTest, ServerLaunchConfigResolverTest, MerisCliServeEnvironmentConfigTest, MerisCliServerArtifactManifestTest, issue 590, issue 1019, issue 1217, issue 1221
Package and workspace boundary model Implemented with gaps Workspace graph failures, namespace-prefix ownership failures, local-path package resolution failures, registry resolver/cache boundary failures, and lockfile metadata failures use structured diagnostics for CLI, JSON, and editor consumers. An exact package graph exists for workspace, path, and registry-source lockfile inputs. Live registry fetches and package assembly remain separate work. Package And Workspace Boundaries, MerisCliWorkspacePackageGraphTest, MerisCliWorkspacePackageGraphNamespaceTest, MerisCliExactPackageGraphTest, MerisCliPackageGraphJsonDiagnosticsTest, PackageDependencyResolverIntegrationTest, issue 642, issue 1085, issue 1086, issue 1182, issue 1183
Workspace lockfile dependency metadata validation Implemented with gaps check --project validates meris.lock package entries, source metadata for workspace/path/registry dependencies, and optional locked dependency edges. Checksums, live registry fetches, cache population, and classpath assembly are not implemented. Package And Workspace Boundaries, MerisCliPackageLockfileMetadataTest, PackageLockfileSourceMetadataTest, issue 1070, issue 1183
Shared immutable CLI project build graph Implemented with gaps Project-backed CLI commands now share CliProjectBuildGraph for manifest package nodes, project-local script entries, dependency edges, source-root order, explicit classpath entries, workspace facts, local-path package facts, registry/cache boundary facts, and lockfile facts. Selected project script check/run consumes those facts while keeping sibling scripts out of package source reads. CliExactPackageGraph adds exact package nodes and selected dependency edges. Package assembly, live registry fetches, cache population, classpath assembly, JVM script emission, and LSP script surfacing are not implemented. Package And Workspace Boundaries, MerisCliWorkspacePackageGraphTest, MerisCliExactPackageGraphTest, MerisCliProjectScriptManifestTest, MerisCliProjectScriptExecutionTest, issue 1084, issue 1086, issue 1183, issue 1217, issue 1221
Test double and architecture fixture policy Implemented Test Doubles And Fixture Conventions, issue 616
Public performance benchmark scaffold and result-history schema Implemented Performance Benchmarks, benchmarks README, issue 665
Benchmark history conversion from CLI JSONL and raw JMH JSON Implemented Performance Benchmarks, history converter, issue 675
Advisory performance gates for risky changes Implemented Performance Benchmarks, performance gate policy, issue 680
Server loopback benchmark runner Implemented with gaps Performance Benchmarks, server loopback runner, issue 677
Named-machine benchmark baseline manifests Implemented Performance Benchmarks, baseline manifest helper, issue 678
Benchmark comparison reports and advisory thresholds Implemented Performance Benchmarks, comparison report helper, issue 679
Benchmark trust levels for public history Implemented Performance Benchmarks, history schema, issue 718
JMH allocation and GC metric capture Implemented with gaps Performance Benchmarks, allocation/GC runner, issue 676
Package-throughput benchmark harness Implemented with gaps Performance Benchmarks, package-throughput runner, issue 690
Server loopback GC-log evidence Implemented with gaps Performance Benchmarks, server loopback runner, issue 691
Server JSON API lifecycle benchmark evidence Implemented with gaps Static lifecycle fixture validation plus benchmark-owned custom-codec loopback shutdown drain and cleanup observations. Source Server.Application acquire/release counters on the default meris serve path are still unavailable. Performance Benchmarks, server loopback runner, static lifecycle runner, server JSON API result schema example, issue 1021
Formatter stability for implemented syntax Implemented Language Surface, SyntaxFormatterTest
Release smoke over installDist, distZip, and distTar Implemented JVM Backend, issue 541
External package dependency resolution Design-only Project Manifest, Package And Workspace Boundaries, issue 522
Architecture pattern conformance fixtures Implemented Architecture Pattern Fixtures, Architecture Pattern Conformance Matrix, product update repository fixture, issue 646

Server

Capability Status Evidence
Server response constructors Implemented Meris Server Package, ServerResponseConstructorsRuntimeTest
Server request builders and accessors Implemented with JVM gaps Meris Server Package, InterpreterServerRequestTest
Route declaration syntax, route constructor catalog, and checked route graph metadata, including query/header extraction metadata Implemented with gaps Meris Server Package, ServerRouteGraphSyntaxTypeCheckerTest, ServerRouteConstructorCheckerTest, issue 568
Public Server.Application builder catalog and runtime bridge, including homogeneous Json body/response codec metadata Implemented with gaps Meris Server Package, StandardServerApplicationLibraryTest, ServerApplicationCatalogTypeCheckerTest, ServerApplicationCodecRouteValidationTest, ServerTestHostPublicApplicationBridgeTest, JvmServerApplicationDescriptorBytecodeEmitterTest, ServerDependencyEnvironment, issue 645
Public Server health and route-inventory management helpers Implemented with gaps Server.Health and Server.RouteInventory are opt-in route helpers for checked application metadata and the in-process test host. Live HTTP adapter exposure, metrics, security policy, and dependency-health execution are deferred. Meris Server Package, ServerTestHostPublicApplicationBridgeTest, issue 1071
Public Server static asset descriptors Implemented with gaps Meris Server Package, StandardServerApplicationLibraryTest, ServerTestHostPublicApplicationBridgeTest, issue 591
In-process Server test host, typed application builder, observations, lifecycle, public middleware/Next pipeline, JSON body codec path, typed JSON response codec path, and first media negotiation policy Implemented with gaps Meris Server Package, ServerApplicationBuilderTest, ServerTestHostBodyCodecTest, ServerTestHostResponseCodecTest, ServerTestHostResponseNegotiationTest, issue 570
Public one-request Server test helpers Implemented with JVM gap Test.CallOnce returns Server.Response; Server.TestCall returns Server.TestResult with status, body, header, failure, route, and cleanup-state accessors. JVM target rejects the test helper family. Tests, Standard Library, Meris Server Package, ServerTestCallOnceTest, ServerRequestRuntimeBuildersTest, JvmTargetCompatibilityCheckerTest, issue 1018, issue 1089
Request-scoped Server pipeline cleanup hooks Implemented with gaps Meris Server Package, ServerTestHostRequestCleanupTest, issue 588
Versioned internal Server observability snapshots and route-linked runtime test-host projections Implemented with gaps Meris Server Package, ServerObservabilitySnapshotTest, issue 587, issue 1017
JVM HTTP host adapter and meris serve startup with manifest profiles and environment overrides Implemented with gaps HTTP Boundary, MerisCliServeCommandTest, MerisCliServeEnvironmentConfigTest, issue 573, issue 1019
Default Server error mapping Implemented with gaps Meris Server Package, ServerDefaultErrorMapperTest, issue 585
Generated Server application descriptors Implemented with gaps Meris Server Package, JvmServerApplicationDescriptorBytecodeEmitterTest, issue 583
Packaged Server artifact smoke coverage Implemented issue 549, JVM Backend
Packaged Server descriptor launchers Implemented with gaps Source-free packaged route-handler and pipeline middleware launch works through generated callable metadata for ordinary handlers/stages, request cleanup hooks, function-backed body decoder/response encoder hooks with supported primitives, runtime carriers, and metadata-backed generated product or variant descriptor values, default Json product body/response codec plans including List<Product> response values and top-level List<Product> / Option<Product> request bodies, and compiler-produced custom Json codec plan descriptors. Source-free packaged application resource acquire/release works for supported callable descriptors and metadata-backed generated product or variant resource values. Non-empty packaged application environments work when every owned dependency is exposed by a matching application resource; hidden resources, external resource exposure, missing owned resources, and resource/dependency type drift are rejected before host startup. Source-free packaged static routes work for project directory output through the compiled static asset manifest. Missing callable metadata, descriptor drift, conflicting/malformed/unsupported/mismatched Json descriptors, and generated value ABI drift are rejected before host startup; legacy planless default Json descriptors remain accepted for primitive default shapes only. Nested request-body erased containers remain a follow-up; unsupported erased carriers remain rejected before host startup. Project Manifest, MerisCliPackagedServerLauncherTest, MerisCliPackagedServerPipelineLauncherTest, MerisCliPackagedServerCleanupLauncherTest, MerisCliPackagedServerCodecSmokeTest, MerisCliPackagedServerDefaultJsonCodecTest, MerisCliPackagedServerJsonBodyContainerTest, MerisCliPackagedServerGeneratedFunctionCodecTest, MerisCliPackagedServerCodecMetadataTest, MerisCliPackagedServerCompileArtifactTest, MerisCliPackagedServerJsonCodecDescriptorTest, MerisCliPackagedServerJsonCodecRoundTripTest, MerisCliPackagedServerSourceFreeGuardTest, MerisCliPackagedServerResourceExposureGuardTest, ServerCompiledResourceLifecycleTest, RuntimeCompiledFunctionGeneratedValueBridgeTest, RuntimeCompiledFunctionErrorFieldsTest, issue 584, issue 1088, issue 1189, issue 1197, issue 1216, issue 1218, issue 1219, issue 1250, PR #1277
WebSockets and streaming request bodies Deferred Meris Server Package

Reading The Matrix

An implemented row may still be small. Meris lands narrow slices when the type rules, diagnostics, interpreter behavior, JVM behavior, and tests can stay in sync. If a planned feature is already tracked by an issue linked above, a new issue should refine that work instead of duplicating it.

Related

Clone this wiki locally