Skip to content
Runtime
Framework

Roadmap

Everything documented on this site, and nothing else:

Capability Where
Query input and duplicate keys Codecs
Codecs, both directions Codecs
Seven parameter families Parameters
Query models and composition Query models
Decode results and issues Issues
Canonical encoding and omission Defaults and absence
Runtime transitions Transitions
Memory adapter Testing
Browser adapter Browser
Server and Node helpers Server, Node.js
Standard Schema validation Validation
Vue, Vue Router, Nuxt Frameworks
Package stabilization Architecture

These are not oversights. Each is an open decision recorded in an ADR, and shipping a guess would be worse than shipping nothing.

Transition scheduling Status: planned

Section titled “Transition scheduling planned”

There is no throttling, coalescing, cancellation, or concurrency control. Every transition applies immediately, and two overlapping transitions are not reconciled — the second reads whatever state the first produced.

What to do today: debounce at the call site, and use navigation: "replace" for fast-changing inputs. See Search.

Why it waits: a scheduling model that cannot express “supersede” and “cancel” honestly would have to be replaced later. When it lands, QueryTransitionResult gains an outcome describing what actually happened, which is why it does not carry a constant committed: true today (ADR 0007).

Codec composition Status: planned

Section titled “Codec composition planned”

There are no dedicated families for dates, JSON, objects, tuples, or nested structures.

What to do today: param.custom with your own codec. See Codecs.

Why it waits: each of these has an encoding question with no obviously right answer — how a date carries a time zone, whether an object is JSON or bracketed keys, how a tuple escapes its separator. Choosing wrong is a breaking change to every URL already in the wild.

Per-parameter omission and recovery policy Status: planned

Section titled “Per-parameter omission and recovery policy planned”

Default omission is global: a value equal to its default is always omitted. Recovery is decided by presence and cannot be overridden per parameter.

Model refinements that change the output type Status: planned

Section titled “Model refinements that change the output type planned”

Per-parameter .refine() can transform a value’s type today. Model-level refine is typed to return the same values it received.

Server response contribution Status: planned

Section titled “Server response contribution planned”

QueryWeave decodes a request but contributes nothing to the response — no canonical-URL redirect, no headers.

What to do today: compare encodeQuery(model, values) with the incoming query and redirect yourself. See Server parsing.

In order:

  1. Transition scheduling — throttling, coalescing, cancellation, and concurrency control.
  2. Codec composition — date, JSON, object, tuple, and nested representations.
  3. Publish 0.1.0-alpha.1 — the first npm alpha under the alpha dist-tag, from boussadjra/queryweave. See Releasing.
  4. API stabilization — freezing the public contracts for 1.0.
  5. Additional framework adapters — designed against the established core contracts.

Before 1.0, breaking changes ship in minor versions. Each one requires an architecture decision record explaining the reasoning and a changeset describing the migration. Nothing breaks silently, and nothing breaks in a patch.

Every package shares one version through a fixed version group, so the matrix of compatible versions stays trivial.