mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-10 09:19:42 +02:00
chore(uploads): remove the broken upload page and deprecate /api/screenshots
The tunnel Upload URL page (upload.html) has been broken since the response envelope landed in 458fb81c: it reads j.filename and j.files while the server answers { success, data: { filename } } and { success, data: { files } }, so every upload reported "Saved: undefined" and the recent list stayed empty. Nothing else reads ~/.codeman/screenshots/, and handing a file to an agent goes through POST /api/sessions/:id/paste-image into the session's own workspace, so the page, its Settings row, the suffix branch of the tunnel row helper (now folded into its one caller) and the Upload URL i18n key go.
The three /api/screenshots routes keep working unchanged and log one deprecation warning per process on first use, naming paste-image as the replacement. Per docs/versioning-policy.md they are removed in a later MAJOR, after at least one MINOR release that carries the warning; the docs, CLAUDE.md and the multi-user plan say so.
Static caching: with upload.html gone no HTML is served by @fastify/static any more (every page has its own no-cache route; on a built tree only the precompressed index.html.gz artifact is reachable, as application/gzip, and nothing requests it). The .html branch of setHeaders was therefore dead and goes with the test that fetched upload.html to reach it; a comment now says a new static HTML page needs its own route. The index.html no-cache assertion on the route stays.
This commit is contained in:
@@ -11,7 +11,8 @@
|
||||
*
|
||||
* That contract is load-bearing: assets are served `immutable` for a year, and
|
||||
* `index.html` must revalidate every time or a deploy leaves browsers on stale
|
||||
* markup (see `cacheBustAssets` in server.ts).
|
||||
* markup (see `cacheBustAssets` in server.ts). No HTML is left behind the static
|
||||
* plugin (every page has its own route), so the HTML half is asserted on the route.
|
||||
*
|
||||
* These tests drive a REAL WebServer on purpose. Asserting against an inline
|
||||
* re-registration of the plugin would keep passing after a revert in server.ts.
|
||||
@@ -61,18 +62,6 @@ describe('static asset Cache-Control headers', () => {
|
||||
expect(res.headers.get('cache-control')).toBe('public, max-age=31536000, immutable');
|
||||
});
|
||||
|
||||
it('makes static HTML revalidate so deploys are picked up', async () => {
|
||||
// ⚠️ upload.html, NOT index.html. `/index.html` has its own explicit route that
|
||||
// answers from renderIndexHtml() and never reaches @fastify/static, so asserting
|
||||
// on it passes even with setHeaders fully broken (verified: reverting server.ts
|
||||
// to the v9 form fails the two /app.js tests and leaves an index.html assertion
|
||||
// green). upload.html has no route of its own, so it is the only HTML that
|
||||
// actually exercises the `.html` branch of setHeaders.
|
||||
const res = await get(`${baseUrl}/upload.html`);
|
||||
expect(res.status).toBe(200);
|
||||
expect(res.headers.get('cache-control')).toBe('no-cache');
|
||||
});
|
||||
|
||||
it('lets a route keep the Cache-Control it set, so sw.js stays uncached', async () => {
|
||||
// Regression guard for the OTHER half of the v10 change. setHeaders runs for
|
||||
// sendFile() too, and v10 moved it from the raw response onto the reply, which
|
||||
|
||||
Reference in New Issue
Block a user