- Theme toggle in the nav: follows the device until chosen, remembers the choice, sets data-theme before first paint (no flash). - Site search: Cmd/Ctrl+K command palette on every marketing page, opened by the shortcut, a nav Search button, or the Docs search field. Searches pages, docs topics and articles that have a page. - Docs topics move to content.ts so the page and the search index share one source. - next.config: allowedDevOrigins for private network ranges so a phone on the same Wi-Fi hydrates the dev site. Dev only. - Sun and moon icons added by hand (not Figma exports); noted in the icons README. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
22 lines
991 B
TypeScript
22 lines
991 B
TypeScript
import type { NextConfig } from 'next';
|
|
|
|
const apiOrigin = process.env.WURSOR_API_URL ?? 'http://localhost:3000';
|
|
|
|
const config: NextConfig = {
|
|
reactStrictMode: true,
|
|
// `next dev` blocks its dev endpoints for any host but localhost, so a phone on the same Wi-Fi gets the HTML but a page that
|
|
// never hydrates (menu, search and theme buttons all dead). Allow private-network addresses. Dev only; no effect on `next build`.
|
|
allowedDevOrigins: ['10.*.*.*', '192.168.*.*', '172.*.*.*'],
|
|
// Do not let `next dev` write its own agent instructions into web/. The repository's AGENTS.md is the guide.
|
|
agentRules: false,
|
|
// Interim: the Sprint 1 shell at /app still calls the API on the same origin.
|
|
// Replaced by server-held sessions (ADR 0018, step C).
|
|
async rewrites() {
|
|
return ['/auth/:path*', '/chat/:path*', '/chat', '/sites/:path*', '/sites', '/health'].map(
|
|
(source) => ({ source, destination: `${apiOrigin}${source}` }),
|
|
);
|
|
},
|
|
};
|
|
|
|
export default config;
|