Skip to content

Commit 73a0428

Browse files
Merge pull request #2 from corespan/license-review
License review
2 parents a82f1b9 + 8c1c47b commit 73a0428

23 files changed

Lines changed: 281 additions & 778 deletions

‎Benchmarking/.gitignore‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,6 @@ dist-ssr
2525

2626
.vercel
2727
.env
28+
29+
# TypeScript incremental build cache — build output, not source.
30+
*.tsbuildinfo

‎Benchmarking/CLAUDE.md‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,38 @@ import it — never instantiate a second client.
8585

8686
`VITE_API_URL` is **required** — the dev server throws on startup without it.
8787
Copy `.env.example` to `.env` and point it at your backend.
88+
89+
---
90+
91+
## Deployment Routing
92+
93+
The app is served under `/aistudio/` (`base` in `vite.config.ts`, `basename` in
94+
`App.tsx`), but Vite emits to the deploy root — so `vercel.json` maps the prefixed
95+
request back onto the flat output. Rewrites are matched in order, first match wins:
96+
97+
| Rule | Purpose |
98+
| ---- | ------- |
99+
| `/aistudio` and `/aistudio/` | serve the SPA shell |
100+
| `/aistudio/assets/:path*` | hashed bundles, straight through |
101+
| `/aistudio/:file(<extensions>)` | files copied from `public/` |
102+
| `/aistudio/:path*` | everything else → `index.html` (SPA routes) |
103+
104+
The third rule lists file extensions explicitly. It previously read
105+
`:file([^/]+\.[^/]+)` — "any single segment containing a dot" — which is not the
106+
same question as "is this a file". Any future route with a dot in it
107+
(`/aistudio/model.compare`, `/aistudio/run-v1.2`, `/aistudio/v2.beta`) matched it,
108+
got treated as a static file, and 404'd instead of reaching the SPA. The failure
109+
would appear long after the rule was written and would not look like a routing
110+
problem.
111+
112+
`vercel.json` must be strict JSON, so that reasoning lives here rather than inline.
113+
114+
Two consequences worth knowing before editing it:
115+
116+
- **Adding a new file type to `public/` means adding its extension here**, or the
117+
request falls through to the SPA catch-all and returns `index.html` with a 200 —
118+
a broken asset that does not look like a 404.
119+
- **`[^/]+` matches one segment only.** Assets in a `public/` subdirectory
120+
(`public/img/logo.png`) are not covered by this rule and would hit the catch-all.
121+
That was true of the previous rule too; it is a known gap, not a regression. Use
122+
`assets/` or the flat `public/` root, or widen the pattern deliberately.

‎Benchmarking/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"version": "0.0.0",
55
"type": "module",
66
"license": "Apache-2.0",
7-
"author": "CoreSpan AI",
7+
"author": "Corespan Systems, Inc",
88
"packageManager": "pnpm@11.18.0",
99
"repository": {
1010
"type": "git",
-1.47 MB
Binary file not shown.
-1.67 MB
Binary file not shown.
-1.42 MB
Binary file not shown.

‎Benchmarking/public/hub-diagram.svg‎

Lines changed: 0 additions & 172 deletions
This file was deleted.

‎Benchmarking/public/isometric-cluster.svg‎

Lines changed: 0 additions & 103 deletions
This file was deleted.

‎Benchmarking/public/third-party-licences.txt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ This application bundles the open-source packages listed below.
55
Each is reproduced with its full licence text, as those licences
66
require when the software is distributed.
77

8-
CoreSpan AI's own source is licensed Apache-2.0 and is not covered
9-
by the notices below. See the LICENSE file in the repository.
8+
Corespan Systems, Inc's own source is licensed Apache-2.0 and is not
9+
covered by the notices below. See the LICENSE file in the repository.
1010

1111
Packages: 54
1212

0 commit comments

Comments
 (0)