AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
TanStack Query의 query-core를 Dart/Flutter로 포팅, 자체 테스트로 검증, TanStack과 무관, AI 작성
A Dart/Flutter port of TanStack Query's query-core, proven by running upstream's own test suite. Unaffiliated with TanStack. Written by AI.
개발 도구Dart · TypeScriptGitHub @dualmeta-gmbh온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
TanStack Query for Dart and Flutter: cached server state with background
refetching, retries, cancellation, mutations and infinite queries — a port of
TanStack Query's query-core, checked against upstream's own test suite,
ported case by case.README 전문 보기 ↗TanStack Query for Dart and Flutter: cached server state with background
refetching, retries, cancellation, mutations and infinite queries — a port of
TanStack Query's query-core, checked against upstream's own test suite,
ported case by case.
Documentation: TanStack Query for Flutter at query-kit.dualmeta.io · Quick start · Coming from React Query
query_kit is an entirely AI-coded project: all code, tests and documentation were written by AI coding agents (Anthropic's Claude). A human maintainer set the goals and reviews releases, but did not write the code. What stands in for a human author is adversarial checking: upstream's test suite ported case by case, repeated review rounds run by independent AI agents, and a rule that no reported finding is acted on before it has been reproduced. Judge it on that basis; the evidence is in this repository.
context.query(...), a builder
widget, a State mixin, or a controller that is a plain ValueListenable.
All four take the same options, and none of them is the default. Apps on
flutter_hooks can add useQuery with the hooks add-on.clock and meta. Connectivity comes from whichever
package you already use.switch over pending, error and success is exhaustive and there is no
data!. A failed refetch keeps the data already on screen.package:clock, so a test controls staleness and garbage
collection completely.What it does not have yet: a built-in persister and devtools. Other Dart libraries describes the alternatives and where each may fit better.
| Package | What it is |
|---|---|
query_kit | The pure-Dart core: queries, mutations, infinite queries, observers, the client and its caches. No Flutter dependency. |
query_kit_flutter | The Flutter binding: QueryClientProvider, controllers, builder widgets, a State mixin and context.query(...). Four equal call styles, no dependency beyond Flutter. Re-exports the core. |
query_kit_hooks | React Query's hooks — useQuery, useMutation and the rest — on flutter_hooks, an opt-in add-on over the binding. |
In a Flutter app:
flutter pub add query_kit_flutter
In pure Dart (a server, a command-line tool):
dart pub add query_kit
In a Flutter app written with flutter_hooks, if you want the hooks:
flutter pub add query_kit_hooks flutter_hooks
The core needs Dart 3.6 or later, the binding and the hooks Flutter 3.27 or later. Each package README has a quick start.
The documentation site — getting started, a guide per concept, examples, the
JavaScript-to-Dart name map and troubleshooting — is built from
website/ and published at https://query-kit.dualmeta.io/. To
run it locally:
cd website && npm ci && npm start
Coming from React Query? The
name map takes the
JavaScript names to the Dart ones — useQuery to the four call styles,
fetchQuery to QueryClient.query, staleTime: Infinity to
StaleTime.infinite, and the rest.
Not in 1.0: persistence and hydration, streamedQuery, server-side
rendering and devtools.
This is a port of TanStack Query — not a library that was inspired by it in passing. The behaviour is upstream's, the architecture is upstream's, and upstream's own test suite is ported case by case — every case left out is listed with its reason — and run against this code. That is the entire point of the project.
Thank you to Tanner Linsley and to everyone who has built, maintained and
supported TanStack Query. This repository exists for one reason: we used
TanStack Query, we loved it, and we wanted the same thing in Flutter. Every
good idea in here is theirs. It is published under their MIT licence, whose
notice each package keeps in LICENSE-TANSTACK.
It is not theirs, though. This project is not affiliated with, endorsed by, reviewed by, or connected in any way to Tanner Linsley, the TanStack team, or the TanStack organisation. They have not seen it and are not responsible for it. Please do not take problems with this package to them — bugs, questions and complaints belong in this repository's issues.
For contributors. CONTRIBUTING.md leads with the rule that is unusual here — a failing ported test means the port is wrong until shown otherwise — and then the gate. Security reports go through SECURITY.md, never a public issue.
| Path | What it is |
|---|---|
packages/query_kit/ | The core. Its fidelity audit — every ported upstream case, every omission and every divergence, with its reason — is PORTING_NOTES.md. |
packages/query_kit_flutter/ | The binding, and its one-file example. |
packages/query_kit_hooks/ | The hooks add-on, with its ported hook suites and its example app. |
examples/showcase/ | Every feature as its own screen, on a dummy backend built for it, each with widget tests and Playwright end-to-end tests in a real browser. |
examples/task_manager/ | One whole small app: a to-do manager against a deliberately slow backend with scripted failures. |
examples/doc_snippets/ | Every Dart sample on the site and in the package READMEs, as code the analyzer sees, so a sample that stops compiling fails the build. |
website/ | The documentation site (Docusaurus), built in CI. |
docs/ | Decisions (), research, release instructions and history. |
Working on the port needs the upstream checkout, a nested, gitignored clone pinned to the revision the ported tests were taken from (see CONTRIBUTING.md).
Running the tests:
flutter pub get
cd packages/query_kit && dart test
cd packages/query_kit_flutter && flutter test
cd packages/query_kit_hooks && flutter test
cd examples/showcase && flutter test
cd examples/task_manager && flutter test
cd examples/doc_snippets && flutter test
The examples' READMEs say how to run them against their backends and how to run their end-to-end suites. The project was planned as wayfinder maps on GitHub issues, starting with issue #1; the one rule that shaped everything is that closeness to upstream is a tiebreaker, not a goal — where a Dart or Flutter idiom is better, the port diverges and writes down why.
MIT — see the LICENSE in each package. The ported tests are derived from
upstream TanStack Query's MIT-licensed suite; its licence is LICENSE-TANSTACK
in each package.
adr/tool/ | rename_packages.dart, the pass that set the package names. |