create-fate 1.7.7 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/create-fate.mjs +40 -6
- package/package.json +1 -1
- package/templates/fate/_shared/vue-app/package.json +3 -2
- package/templates/fate/_shared/vue-app/src/App.css +1 -6
- package/templates/fate/_shared/vue-app/vite.config.ts +12 -1
- package/templates/fate/drizzle/AGENTS.md +1 -1
- package/templates/fate/drizzle/_gitignore +1 -0
- package/templates/fate/drizzle/client/package.json +2 -2
- package/templates/fate/drizzle/client/pages/layout.tsx +2 -2
- package/templates/fate/drizzle/client/src/App.css +1 -6
- package/templates/fate/drizzle/pnpm-workspace.yaml +4 -4
- package/templates/fate/drizzle/server/package.json +1 -1
- package/templates/fate/graphql/AGENTS.md +1 -1
- package/templates/fate/graphql/_gitignore +1 -0
- package/templates/fate/graphql/client/package.json +2 -2
- package/templates/fate/graphql/client/pages/layout.tsx +2 -2
- package/templates/fate/graphql/client/src/App.css +1 -6
- package/templates/fate/graphql/pnpm-workspace.yaml +3 -3
- package/templates/fate/graphql-client/AGENTS.md +20 -0
- package/templates/fate/graphql-client/_gitignore +1 -0
- package/templates/fate/graphql-client/package.json +2 -2
- package/templates/fate/graphql-client/pnpm-workspace.yaml +3 -3
- package/templates/fate/graphql-client/src/App.css +1 -7
- package/templates/fate/graphql-client/vite.config.ts +1 -11
- package/templates/fate/http/AGENTS.md +1 -1
- package/templates/fate/http/_gitignore +1 -0
- package/templates/fate/http/client/package.json +2 -2
- package/templates/fate/http/client/pages/layout.tsx +2 -2
- package/templates/fate/http/client/src/App.css +1 -6
- package/templates/fate/http/pnpm-workspace.yaml +4 -4
- package/templates/fate/http/server/package.json +1 -1
- package/templates/fate/prisma/AGENTS.md +1 -1
- package/templates/fate/prisma/_gitignore +1 -0
- package/templates/fate/prisma/client/package.json +2 -2
- package/templates/fate/prisma/client/pages/layout.tsx +2 -2
- package/templates/fate/prisma/client/src/App.css +1 -6
- package/templates/fate/prisma/pnpm-workspace.yaml +3 -3
- package/templates/fate/void/AGENTS.md +23 -0
- package/templates/fate/void/_gitignore +1 -0
- package/templates/fate/void/db/migrations/20261015035853_better_auth_accounts.sql +3 -0
- package/templates/fate/void/db/migrations/meta/20261015035853_snapshot.json +918 -0
- package/templates/fate/void/db/migrations/meta/_journal.json +7 -0
- package/templates/fate/void/db/schema.ts +20 -3
- package/templates/fate/void/package.json +4 -4
- package/templates/fate/void/pnpm-workspace.yaml +5 -4
- package/templates/fate/void/src/App.css +1 -6
- package/templates/fate/void/vite.config.ts +0 -7
package/bin/create-fate.mjs
CHANGED
|
@@ -364,7 +364,7 @@ const reactPackageEntries = [
|
|
|
364
364
|
'react-fate',
|
|
365
365
|
];
|
|
366
366
|
|
|
367
|
-
const vueAgentsGuide = `# Using _fate_ for Vue applications
|
|
367
|
+
const vueAgentsGuide = (docsDir) => `# Using _fate_ for Vue applications
|
|
368
368
|
|
|
369
369
|
This guidance is for agents working in projects bootstrapped from the fate Vue template. It focuses on Vue-native composables for fate's view composition and request execution.
|
|
370
370
|
|
|
@@ -391,7 +391,7 @@ This guidance is for agents working in projects bootstrapped from the fate Vue t
|
|
|
391
391
|
- **\`useRequest\` only at route roots:** Create a dedicated \`useRequest\` call per screen root that pulls together all child views; do not scatter \`useRequest\` across leaf components unless it is necessary to issue a separate request.
|
|
392
392
|
- **fate client support:** fate's local client support files are maintained by the Vite/fate tooling. Do not manually edit \`.fate\` files; make the proper schema changes on the server and run \`pnpm fate:generate\` when working outside Vite dev.
|
|
393
393
|
|
|
394
|
-
|
|
394
|
+
Before working on fate, read only the relevant Markdown docs in \`${docsDir}/\`. Start with \`index.md\` to find guides, integrations, and API references; read \`guide/vue.md\` for Vue-specific APIs. The docs match the installed package version. Online documentation is at [fate.technology](https://fate.technology/).
|
|
395
395
|
|
|
396
396
|
## Review Checklist for Agents
|
|
397
397
|
|
|
@@ -651,6 +651,31 @@ const configureVueRootPackageJson = (targetPath) => {
|
|
|
651
651
|
writePackageJson(packagePath, packageJson);
|
|
652
652
|
};
|
|
653
653
|
|
|
654
|
+
const configureVueRootViteConfig = (targetPath) => {
|
|
655
|
+
const configPath = path.join(targetPath, 'vite.config.ts');
|
|
656
|
+
const config = fs.readFileSync(configPath, 'utf8');
|
|
657
|
+
fs.writeFileSync(
|
|
658
|
+
configPath,
|
|
659
|
+
config.replace(
|
|
660
|
+
'overrides: [',
|
|
661
|
+
`overrides: [
|
|
662
|
+
{
|
|
663
|
+
env: { browser: true },
|
|
664
|
+
files: ['**/*.vue'],
|
|
665
|
+
globals: {
|
|
666
|
+
defineEmits: 'readonly',
|
|
667
|
+
defineExpose: 'readonly',
|
|
668
|
+
defineModel: 'readonly',
|
|
669
|
+
defineOptions: 'readonly',
|
|
670
|
+
defineProps: 'readonly',
|
|
671
|
+
defineSlots: 'readonly',
|
|
672
|
+
withDefaults: 'readonly',
|
|
673
|
+
},
|
|
674
|
+
},`,
|
|
675
|
+
),
|
|
676
|
+
);
|
|
677
|
+
};
|
|
678
|
+
|
|
654
679
|
const configureVueVoidServerFiles = (frontendRoot) => {
|
|
655
680
|
const oldSessionUser = path.join(frontendRoot, 'src', 'user', 'SessionUser.tsx');
|
|
656
681
|
const nextSessionUser = path.join(frontendRoot, 'src', 'user', 'SessionUser.ts');
|
|
@@ -667,17 +692,25 @@ const configureVueVoidServerFiles = (frontendRoot) => {
|
|
|
667
692
|
);
|
|
668
693
|
};
|
|
669
694
|
|
|
670
|
-
const configureVueAgents = (targetPath) => {
|
|
695
|
+
const configureVueAgents = (targetPath, selectedVariant) => {
|
|
671
696
|
const agentsPath = path.join(targetPath, 'AGENTS.md');
|
|
697
|
+
const docsDir = path
|
|
698
|
+
.relative(
|
|
699
|
+
targetPath,
|
|
700
|
+
path.join(frontendRootForVariant(targetPath, selectedVariant), 'node_modules/vue-fate/docs'),
|
|
701
|
+
)
|
|
702
|
+
.split(path.sep)
|
|
703
|
+
.join('/');
|
|
704
|
+
const guide = vueAgentsGuide(docsDir);
|
|
672
705
|
if (!fs.existsSync(agentsPath)) {
|
|
673
|
-
fs.writeFileSync(agentsPath, `${
|
|
706
|
+
fs.writeFileSync(agentsPath, `${guide}\n`);
|
|
674
707
|
return;
|
|
675
708
|
}
|
|
676
709
|
|
|
677
710
|
const agents = fs.readFileSync(agentsPath, 'utf8');
|
|
678
711
|
const vitePlusIndex = agents.indexOf('<!--VITE PLUS START-->');
|
|
679
712
|
const suffix = vitePlusIndex === -1 ? agents : agents.slice(vitePlusIndex);
|
|
680
|
-
fs.writeFileSync(agentsPath, `${
|
|
713
|
+
fs.writeFileSync(agentsPath, `${guide}\n\n${suffix.trim()}\n`);
|
|
681
714
|
};
|
|
682
715
|
|
|
683
716
|
const configureVueReadme = (targetPath, selectedVariant) => {
|
|
@@ -770,8 +803,9 @@ const configureVueTemplate = (targetPath, selectedVariant) => {
|
|
|
770
803
|
configureVuePackageJson(frontendRoot, selectedVariant, originalPackageJson);
|
|
771
804
|
if (frontendRoot !== targetPath) {
|
|
772
805
|
configureVueRootPackageJson(targetPath);
|
|
806
|
+
configureVueRootViteConfig(targetPath);
|
|
773
807
|
}
|
|
774
|
-
configureVueAgents(targetPath);
|
|
808
|
+
configureVueAgents(targetPath, selectedVariant);
|
|
775
809
|
if (selectedVariant === 'void') {
|
|
776
810
|
configureVueVoidDemoContent(targetPath);
|
|
777
811
|
}
|
package/package.json
CHANGED
|
@@ -22,13 +22,13 @@
|
|
|
22
22
|
"@nkzw/core": "^1.3.1",
|
|
23
23
|
"@nkzw/define-env": "^1.1.0",
|
|
24
24
|
"@trpc/client": "^11.18.0",
|
|
25
|
-
"@void/vue": "^
|
|
25
|
+
"@void/vue": "^1.1.0",
|
|
26
26
|
"class-variance-authority": "^0.7.1",
|
|
27
27
|
"clsx": "^2.1.1",
|
|
28
28
|
"dotenv": "^17.4.2",
|
|
29
29
|
"graphql-sse": "^2.6.1",
|
|
30
30
|
"tailwind-merge": "^3.6.0",
|
|
31
|
-
"void": "^
|
|
31
|
+
"void": "^1.1.0",
|
|
32
32
|
"vue": "^3.5.41",
|
|
33
33
|
"vue-fate": "latest"
|
|
34
34
|
},
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"@swc/core": "^1.16.1",
|
|
40
40
|
"@tailwindcss/vite": "^4.3.3",
|
|
41
41
|
"@types/node": "^26.4.0",
|
|
42
|
+
"@vitejs/plugin-vue": "^6.0.10",
|
|
42
43
|
"tailwindcss": "^4.3.3",
|
|
43
44
|
"typescript": "^7.0.2",
|
|
44
45
|
"vite": "catalog:",
|
|
@@ -2,12 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
body {
|
|
4
4
|
font-family:
|
|
5
|
-
system-ui,
|
|
6
|
-
-apple-system,
|
|
7
|
-
BlinkMacSystemFont,
|
|
8
|
-
'Segoe UI',
|
|
9
|
-
'Open Sans',
|
|
10
|
-
'Helvetica Neue',
|
|
5
|
+
system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Open Sans', 'Helvetica Neue',
|
|
11
6
|
sans-serif;
|
|
12
7
|
|
|
13
8
|
background-color: hsl(var(--background));
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import nkzw from '@nkzw/oxlint-config';
|
|
2
2
|
import tailwindcss from '@tailwindcss/vite';
|
|
3
|
+
import vue from '@vitejs/plugin-vue';
|
|
3
4
|
import { voidVue } from '@void/vue/plugin';
|
|
4
5
|
import { defineConfig, lazyPlugins } from 'vite-plus';
|
|
5
6
|
import { voidPlugin } from 'void';
|
|
@@ -7,6 +8,8 @@ import { fate } from 'vue-fate/vite';
|
|
|
7
8
|
|
|
8
9
|
/* __ENV_CONFIG__ */
|
|
9
10
|
|
|
11
|
+
const isTest = process.env.NODE_ENV === 'test' || process.env.VITEST;
|
|
12
|
+
|
|
10
13
|
export default defineConfig({
|
|
11
14
|
/* __BUILD_CONFIG__ */
|
|
12
15
|
optimizeDeps: {
|
|
@@ -31,6 +34,7 @@ export default defineConfig({
|
|
|
31
34
|
options: { typeAware: true, typeCheck: true },
|
|
32
35
|
overrides: [
|
|
33
36
|
{
|
|
37
|
+
env: { browser: true },
|
|
34
38
|
files: ['**/*.vue'],
|
|
35
39
|
globals: {
|
|
36
40
|
defineEmits: 'readonly',
|
|
@@ -42,13 +46,20 @@ export default defineConfig({
|
|
|
42
46
|
withDefaults: 'readonly',
|
|
43
47
|
},
|
|
44
48
|
},
|
|
49
|
+
{
|
|
50
|
+
files: ['db/seed.ts', '**/__tests__/**'],
|
|
51
|
+
rules: {
|
|
52
|
+
'no-console': 'off',
|
|
53
|
+
},
|
|
54
|
+
},
|
|
45
55
|
],
|
|
46
56
|
rules: {
|
|
47
57
|
'@typescript-eslint/no-explicit-any': 'off',
|
|
48
58
|
},
|
|
49
59
|
},
|
|
50
60
|
plugins: [
|
|
51
|
-
...(lazyPlugins(() => [tailwindcss(), voidPlugin(), voidVue()]) ??
|
|
61
|
+
...(lazyPlugins(() => [tailwindcss(), ...(isTest ? [vue()] : [voidPlugin(), voidVue()])]) ??
|
|
62
|
+
[]),
|
|
52
63
|
fate({
|
|
53
64
|
module: '__FATE_MODULE__',
|
|
54
65
|
/* __FATE_TRANSPORT__ */
|
|
@@ -29,7 +29,7 @@ This guidance is for agents working in projects bootstrapped from the fate templ
|
|
|
29
29
|
- **fate client support** fate's local client support files are maintained by the Vite/fate tooling. Do not manually edit `.fate` files; make the proper schema changes on the server and run `pnpm fate:generate` when working outside Vite dev.
|
|
30
30
|
- **Library Versions:** This repository uses the most recent releases of React, fate, Vite, tRPC, and more. You might not know about the new releases yet, please don't get confused. The versions you see are real, and there are no feature or version mismatches. You can search the internet for more information about them.
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Before working on fate, read only the relevant Markdown docs in `client/node_modules/react-fate/docs/`. Start with `index.md` to find guides, integrations, and API references. The docs match the installed package version. Online documentation is at [fate.technology](https://fate.technology/).
|
|
33
33
|
|
|
34
34
|
## Review Checklist for Agents
|
|
35
35
|
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"@nkzw/stack": "^2.3.2",
|
|
28
28
|
"@radix-ui/react-slot": "^1.3.3",
|
|
29
29
|
"@trpc/client": "^11.18.0",
|
|
30
|
-
"@void/react": "^
|
|
30
|
+
"@void/react": "^1.1.0",
|
|
31
31
|
"better-auth": "^1.7.7",
|
|
32
32
|
"class-variance-authority": "^0.7.1",
|
|
33
33
|
"clsx": "^2.1.1",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"react-error-boundary": "^6.1.3",
|
|
39
39
|
"react-fate": "latest",
|
|
40
40
|
"tailwind-merge": "^3.6.0",
|
|
41
|
-
"void": "^
|
|
41
|
+
"void": "^1.1.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@nkzw/fbtee-compiler": "^5.0.0",
|
|
@@ -23,7 +23,7 @@ const Thinking = () => (
|
|
|
23
23
|
);
|
|
24
24
|
|
|
25
25
|
export default function Layout({ children }: { children: ReactNode }) {
|
|
26
|
-
const { data: session } = AuthClient.useSession();
|
|
26
|
+
const { data: session, isPending } = AuthClient.useSession();
|
|
27
27
|
const userId = session?.user.id;
|
|
28
28
|
|
|
29
29
|
const fate = useMemo(
|
|
@@ -58,7 +58,7 @@ export default function Layout({ children }: { children: ReactNode }) {
|
|
|
58
58
|
<div className="min-h-screen bg-background text-foreground">
|
|
59
59
|
<div className="min-h-screen bg-[radial-gradient(circle_at_20%_20%,rgba(59,130,246,0.08),transparent_35%),radial-gradient(circle_at_80%_0,rgba(99,102,241,0.08),transparent_28%)]">
|
|
60
60
|
<Header />
|
|
61
|
-
{
|
|
61
|
+
{isPending ? (
|
|
62
62
|
<Thinking />
|
|
63
63
|
) : (
|
|
64
64
|
<FateClient client={fate} key={userId}>
|
|
@@ -2,12 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
body {
|
|
4
4
|
font-family:
|
|
5
|
-
system-ui,
|
|
6
|
-
-apple-system,
|
|
7
|
-
BlinkMacSystemFont,
|
|
8
|
-
'Segoe UI',
|
|
9
|
-
'Open Sans',
|
|
10
|
-
'Helvetica Neue',
|
|
5
|
+
system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Open Sans', 'Helvetica Neue',
|
|
11
6
|
sans-serif;
|
|
12
7
|
|
|
13
8
|
background-color: hsl(var(--background));
|
|
@@ -11,9 +11,9 @@ allowBuilds:
|
|
|
11
11
|
workerd: true
|
|
12
12
|
|
|
13
13
|
catalog:
|
|
14
|
-
vite: npm:@voidzero-dev/vite-plus-core@1.
|
|
15
|
-
vite-plus: 1.
|
|
16
|
-
vitest: 5.0.
|
|
14
|
+
vite: npm:@voidzero-dev/vite-plus-core@1.2.0
|
|
15
|
+
vite-plus: 1.2.0
|
|
16
|
+
vitest: 5.0.4
|
|
17
17
|
|
|
18
18
|
minimumReleaseAgeExclude:
|
|
19
19
|
- '@voidzero-dev/vite-plus-core'
|
|
@@ -29,7 +29,7 @@ onlyBuiltDependencies:
|
|
|
29
29
|
|
|
30
30
|
overrides:
|
|
31
31
|
better-auth: 1.7.7
|
|
32
|
-
drizzle-orm: 0.45.
|
|
32
|
+
drizzle-orm: 0.45.4
|
|
33
33
|
kysely: 0.28.17
|
|
34
34
|
vite: 'catalog:'
|
|
35
35
|
vitest: 'catalog:'
|
|
@@ -29,7 +29,7 @@ This guidance is for agents working in projects bootstrapped from the fate templ
|
|
|
29
29
|
- **fate client support** fate's local client support files are maintained by the Vite/fate tooling. Do not manually edit `.fate` files; make the proper schema changes on the server and run `pnpm fate:generate` when working outside Vite dev.
|
|
30
30
|
- **Library Versions:** This repository uses the most recent releases of React, fate, Vite, GraphQL, and more. You might not know about the new releases yet, please don't get confused. The versions you see are real, and there are no feature or version mismatches. You can search the internet for more information about them.
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Before working on fate, read only the relevant Markdown docs in `client/node_modules/react-fate/docs/`. Start with `index.md` to find guides, integrations, and API references. The docs match the installed package version. Online documentation is at [fate.technology](https://fate.technology/).
|
|
33
33
|
|
|
34
34
|
## Review Checklist for Agents
|
|
35
35
|
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"@nkzw/define-env": "^1.1.0",
|
|
27
27
|
"@nkzw/stack": "^2.3.2",
|
|
28
28
|
"@radix-ui/react-slot": "^1.3.3",
|
|
29
|
-
"@void/react": "^
|
|
29
|
+
"@void/react": "^1.1.0",
|
|
30
30
|
"better-auth": "^1.7.7",
|
|
31
31
|
"class-variance-authority": "^0.7.1",
|
|
32
32
|
"clsx": "^2.1.1",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"react-error-boundary": "^6.1.3",
|
|
39
39
|
"react-fate": "latest",
|
|
40
40
|
"tailwind-merge": "^3.6.0",
|
|
41
|
-
"void": "^
|
|
41
|
+
"void": "^1.1.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@nkzw/fbtee-compiler": "^5.0.0",
|
|
@@ -22,7 +22,7 @@ const Thinking = () => (
|
|
|
22
22
|
);
|
|
23
23
|
|
|
24
24
|
export default function Layout({ children }: { children: ReactNode }) {
|
|
25
|
-
const { data: session } = AuthClient.useSession();
|
|
25
|
+
const { data: session, isPending } = AuthClient.useSession();
|
|
26
26
|
const userId = session?.user.id;
|
|
27
27
|
|
|
28
28
|
const fate = useMemo(
|
|
@@ -45,7 +45,7 @@ export default function Layout({ children }: { children: ReactNode }) {
|
|
|
45
45
|
<div className="min-h-screen bg-background text-foreground">
|
|
46
46
|
<div className="min-h-screen bg-[radial-gradient(circle_at_20%_20%,rgba(59,130,246,0.08),transparent_35%),radial-gradient(circle_at_80%_0,rgba(99,102,241,0.08),transparent_28%)]">
|
|
47
47
|
<Header />
|
|
48
|
-
{
|
|
48
|
+
{isPending ? (
|
|
49
49
|
<Thinking />
|
|
50
50
|
) : (
|
|
51
51
|
<FateClient client={fate} key={userId}>
|
|
@@ -2,12 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
body {
|
|
4
4
|
font-family:
|
|
5
|
-
system-ui,
|
|
6
|
-
-apple-system,
|
|
7
|
-
BlinkMacSystemFont,
|
|
8
|
-
'Segoe UI',
|
|
9
|
-
'Open Sans',
|
|
10
|
-
'Helvetica Neue',
|
|
5
|
+
system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Open Sans', 'Helvetica Neue',
|
|
11
6
|
sans-serif;
|
|
12
7
|
|
|
13
8
|
background-color: hsl(var(--background));
|
|
@@ -12,9 +12,9 @@ allowBuilds:
|
|
|
12
12
|
workerd: true
|
|
13
13
|
|
|
14
14
|
catalog:
|
|
15
|
-
vite: npm:@voidzero-dev/vite-plus-core@1.
|
|
16
|
-
vite-plus: 1.
|
|
17
|
-
vitest: 5.0.
|
|
15
|
+
vite: npm:@voidzero-dev/vite-plus-core@1.2.0
|
|
16
|
+
vite-plus: 1.2.0
|
|
17
|
+
vitest: 5.0.4
|
|
18
18
|
|
|
19
19
|
minimumReleaseAgeExclude:
|
|
20
20
|
- '@voidzero-dev/vite-plus-core'
|
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
# Using fate
|
|
2
|
+
|
|
3
|
+
Before working on fate, read only the relevant Markdown docs in `node_modules/react-fate/docs/`. Start with `index.md` to find guides, integrations, and API references. The docs match the installed package version. Online documentation is at [fate.technology](https://fate.technology/).
|
|
4
|
+
|
|
5
|
+
<!--VITE PLUS START-->
|
|
6
|
+
|
|
7
|
+
# Using Vite+, the Unified Toolchain for the Web
|
|
8
|
+
|
|
9
|
+
This project is using Vite+, a unified toolchain built on top of Vite, Rolldown, Vitest, tsdown, Oxlint, Oxfmt, and Vite Task. Vite+ wraps runtime management, package management, and frontend tooling in a single global CLI called `vp`. Vite+ is distinct from Vite, and it invokes Vite through `vp dev` and `vp build`. Run `vp help` to print a list of commands and `vp <command> --help` for information about a specific command.
|
|
10
|
+
|
|
11
|
+
Docs are local at `node_modules/vite-plus/docs` or online at https://viteplus.dev/guide/.
|
|
12
|
+
|
|
13
|
+
## Review Checklist
|
|
14
|
+
|
|
15
|
+
- [ ] Run `vp install` after pulling remote changes and before getting started.
|
|
16
|
+
- [ ] Run `vp check` and `vp test` to format, lint, type check and test changes.
|
|
17
|
+
- [ ] Check if there are `vite.config.ts` tasks or `package.json` scripts necessary for validation, run via `vp run <script>`.
|
|
18
|
+
|
|
1
19
|
Run `vp run test:all` to verify changes.
|
|
2
20
|
|
|
3
21
|
Run `vp check --fix` to fix formatting and lint errors.
|
|
22
|
+
|
|
23
|
+
<!--VITE PLUS END-->
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@nkzw/fate": "latest",
|
|
26
|
-
"@void/react": "^
|
|
26
|
+
"@void/react": "^1.1.0",
|
|
27
27
|
"fbtee": "^5.0.0",
|
|
28
28
|
"graphql-sse": "^2.6.1",
|
|
29
29
|
"lucide-react": "^1.34.0",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"react-dom": "^19.3.0",
|
|
32
32
|
"react-error-boundary": "^6.1.3",
|
|
33
33
|
"react-fate": "latest",
|
|
34
|
-
"void": "^
|
|
34
|
+
"void": "^1.1.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@nkzw/eslint-plugin": "^2.0.0",
|
|
@@ -9,9 +9,9 @@ allowBuilds:
|
|
|
9
9
|
workerd: true
|
|
10
10
|
|
|
11
11
|
catalog:
|
|
12
|
-
vite: npm:@voidzero-dev/vite-plus-core@1.
|
|
13
|
-
vite-plus: 1.
|
|
14
|
-
vitest: 5.0.
|
|
12
|
+
vite: npm:@voidzero-dev/vite-plus-core@1.2.0
|
|
13
|
+
vite-plus: 1.2.0
|
|
14
|
+
vitest: 5.0.4
|
|
15
15
|
|
|
16
16
|
minimumReleaseAgeExclude:
|
|
17
17
|
- '@voidzero-dev/vite-plus-core'
|
|
@@ -5,13 +5,7 @@ body {
|
|
|
5
5
|
background: #f8fafc;
|
|
6
6
|
color: #111827;
|
|
7
7
|
font-family:
|
|
8
|
-
Inter,
|
|
9
|
-
ui-sans-serif,
|
|
10
|
-
system-ui,
|
|
11
|
-
-apple-system,
|
|
12
|
-
BlinkMacSystemFont,
|
|
13
|
-
'Segoe UI',
|
|
14
|
-
sans-serif;
|
|
8
|
+
Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
15
9
|
}
|
|
16
10
|
|
|
17
11
|
button,
|
|
@@ -16,17 +16,7 @@ export default defineConfig({
|
|
|
16
16
|
environments: {
|
|
17
17
|
void_worker: {
|
|
18
18
|
optimizeDeps: {
|
|
19
|
-
exclude: [
|
|
20
|
-
'@nkzw/fate',
|
|
21
|
-
'@nkzw/fate/client',
|
|
22
|
-
'@nkzw/fate/server',
|
|
23
|
-
'@void/react',
|
|
24
|
-
'@void/react/pages-server',
|
|
25
|
-
'lucide-react',
|
|
26
|
-
'react-error-boundary',
|
|
27
|
-
'react-fate',
|
|
28
|
-
'react-fate/client',
|
|
29
|
-
],
|
|
19
|
+
exclude: ['@nkzw/fate', '@nkzw/fate/client', '@nkzw/fate/server', 'react-fate/client'],
|
|
30
20
|
},
|
|
31
21
|
},
|
|
32
22
|
},
|
|
@@ -29,7 +29,7 @@ This guidance is for agents working in projects bootstrapped from the fate templ
|
|
|
29
29
|
- **fate client support** fate's local client support files are maintained by the Vite/fate tooling. Do not manually edit `.fate` files; make the proper schema changes on the server and run `pnpm fate:generate` when working outside Vite dev.
|
|
30
30
|
- **Library Versions:** This repository uses the most recent releases of React, fate, Vite, and more. You might not know about the new releases yet, please don't get confused. The versions you see are real, and there are no feature or version mismatches. You can search the internet for more information about them.
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Before working on fate, read only the relevant Markdown docs in `client/node_modules/react-fate/docs/`. Start with `index.md` to find guides, integrations, and API references. The docs match the installed package version. Online documentation is at [fate.technology](https://fate.technology/).
|
|
33
33
|
|
|
34
34
|
## Review Checklist for Agents
|
|
35
35
|
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"@nkzw/define-env": "^1.1.0",
|
|
27
27
|
"@nkzw/stack": "^2.3.2",
|
|
28
28
|
"@radix-ui/react-slot": "^1.3.3",
|
|
29
|
-
"@void/react": "^
|
|
29
|
+
"@void/react": "^1.1.0",
|
|
30
30
|
"better-auth": "^1.7.7",
|
|
31
31
|
"class-variance-authority": "^0.7.1",
|
|
32
32
|
"clsx": "^2.1.1",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"react-error-boundary": "^6.1.3",
|
|
38
38
|
"react-fate": "latest",
|
|
39
39
|
"tailwind-merge": "^3.6.0",
|
|
40
|
-
"void": "^
|
|
40
|
+
"void": "^1.1.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@nkzw/fbtee-compiler": "^5.0.0",
|
|
@@ -22,7 +22,7 @@ const Thinking = () => (
|
|
|
22
22
|
);
|
|
23
23
|
|
|
24
24
|
export default function Layout({ children }: { children: ReactNode }) {
|
|
25
|
-
const { data: session } = AuthClient.useSession();
|
|
25
|
+
const { data: session, isPending } = AuthClient.useSession();
|
|
26
26
|
const userId = session?.user.id;
|
|
27
27
|
|
|
28
28
|
const fate = useMemo(
|
|
@@ -43,7 +43,7 @@ export default function Layout({ children }: { children: ReactNode }) {
|
|
|
43
43
|
<div className="min-h-screen bg-background text-foreground">
|
|
44
44
|
<div className="min-h-screen bg-[radial-gradient(circle_at_20%_20%,rgba(59,130,246,0.08),transparent_35%),radial-gradient(circle_at_80%_0,rgba(99,102,241,0.08),transparent_28%)]">
|
|
45
45
|
<Header />
|
|
46
|
-
{
|
|
46
|
+
{isPending ? (
|
|
47
47
|
<Thinking />
|
|
48
48
|
) : (
|
|
49
49
|
<FateClient client={fate} key={userId}>
|
|
@@ -2,12 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
body {
|
|
4
4
|
font-family:
|
|
5
|
-
system-ui,
|
|
6
|
-
-apple-system,
|
|
7
|
-
BlinkMacSystemFont,
|
|
8
|
-
'Segoe UI',
|
|
9
|
-
'Open Sans',
|
|
10
|
-
'Helvetica Neue',
|
|
5
|
+
system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Open Sans', 'Helvetica Neue',
|
|
11
6
|
sans-serif;
|
|
12
7
|
|
|
13
8
|
background-color: hsl(var(--background));
|
|
@@ -11,9 +11,9 @@ allowBuilds:
|
|
|
11
11
|
workerd: true
|
|
12
12
|
|
|
13
13
|
catalog:
|
|
14
|
-
vite: npm:@voidzero-dev/vite-plus-core@1.
|
|
15
|
-
vite-plus: 1.
|
|
16
|
-
vitest: 5.0.
|
|
14
|
+
vite: npm:@voidzero-dev/vite-plus-core@1.2.0
|
|
15
|
+
vite-plus: 1.2.0
|
|
16
|
+
vitest: 5.0.4
|
|
17
17
|
|
|
18
18
|
minimumReleaseAgeExclude:
|
|
19
19
|
- '@voidzero-dev/vite-plus-core'
|
|
@@ -29,7 +29,7 @@ onlyBuiltDependencies:
|
|
|
29
29
|
|
|
30
30
|
overrides:
|
|
31
31
|
better-auth: 1.7.7
|
|
32
|
-
drizzle-orm: 0.45.
|
|
32
|
+
drizzle-orm: 0.45.4
|
|
33
33
|
kysely: 0.28.17
|
|
34
34
|
vite: 'catalog:'
|
|
35
35
|
vitest: 'catalog:'
|
|
@@ -29,7 +29,7 @@ This guidance is for agents working in projects bootstrapped from the fate templ
|
|
|
29
29
|
- **fate client support** fate's local client support files are maintained by the Vite/fate tooling. Do not manually edit `.fate` files; make the proper schema changes on the server and run `pnpm fate:generate` when working outside Vite dev.
|
|
30
30
|
- **Library Versions:** This repository uses the most recent releases of React, fate, Vite, tRPC, and more. You might not know about the new releases yet, please don't get confused. The versions you see are real, and there are no feature or version mismatches. You can search the internet for more information about them.
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Before working on fate, read only the relevant Markdown docs in `client/node_modules/react-fate/docs/`. Start with `index.md` to find guides, integrations, and API references. The docs match the installed package version. Online documentation is at [fate.technology](https://fate.technology/).
|
|
33
33
|
|
|
34
34
|
## Review Checklist for Agents
|
|
35
35
|
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"@nkzw/stack": "^2.3.2",
|
|
28
28
|
"@radix-ui/react-slot": "^1.3.3",
|
|
29
29
|
"@trpc/client": "^11.18.0",
|
|
30
|
-
"@void/react": "^
|
|
30
|
+
"@void/react": "^1.1.0",
|
|
31
31
|
"better-auth": "^1.7.7",
|
|
32
32
|
"class-variance-authority": "^0.7.1",
|
|
33
33
|
"clsx": "^2.1.1",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"react-error-boundary": "^6.1.3",
|
|
39
39
|
"react-fate": "latest",
|
|
40
40
|
"tailwind-merge": "^3.6.0",
|
|
41
|
-
"void": "^
|
|
41
|
+
"void": "^1.1.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@nkzw/fbtee-compiler": "^5.0.0",
|
|
@@ -23,7 +23,7 @@ const Thinking = () => (
|
|
|
23
23
|
);
|
|
24
24
|
|
|
25
25
|
export default function Layout({ children }: { children: ReactNode }) {
|
|
26
|
-
const { data: session } = AuthClient.useSession();
|
|
26
|
+
const { data: session, isPending } = AuthClient.useSession();
|
|
27
27
|
const userId = session?.user.id;
|
|
28
28
|
|
|
29
29
|
const fate = useMemo(
|
|
@@ -48,7 +48,7 @@ export default function Layout({ children }: { children: ReactNode }) {
|
|
|
48
48
|
<div className="min-h-screen bg-background text-foreground">
|
|
49
49
|
<div className="min-h-screen bg-[radial-gradient(circle_at_20%_20%,rgba(59,130,246,0.08),transparent_35%),radial-gradient(circle_at_80%_0,rgba(99,102,241,0.08),transparent_28%)]">
|
|
50
50
|
<Header />
|
|
51
|
-
{
|
|
51
|
+
{isPending ? (
|
|
52
52
|
<Thinking />
|
|
53
53
|
) : (
|
|
54
54
|
<FateClient client={fate} key={userId}>
|