Сайт публикуется автоматически через GitHub Actions workflow deploy.yml.
После пуша в main action:
- устанавливает зависимости через
npm ci - собирает сайт через
npm run build - публикует содержимое
dist/в GitHub Pages
Чтобы это работало, в настройках репозитория GitHub Pages должен быть выбран источник GitHub Actions.
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel (or oxc when used in rolldown-vite) for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{ts,tsx}'],
extends: [
// Other configs...
// Remove tseslint.configs.recommended and replace with this
tseslint.configs.recommendedTypeChecked,
// Alternatively, use this for stricter rules
tseslint.configs.strictTypeChecked,
// Optionally, add this for stylistic rules
tseslint.configs.stylisticTypeChecked,
// Other configs...
],
languageOptions: {
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
// other options...
},
},
])You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:
// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'
export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{ts,tsx}'],
extends: [
// Other configs...
// Enable lint rules for React
reactX.configs['recommended-typescript'],
// Enable lint rules for React DOM
reactDom.configs.recommended,
],
languageOptions: {
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
// other options...
},
},
])The landing uses the Dashboard's default minimal theme: #050505, flat dark
surfaces, #292929 borders, system sans typography, and no CSS gradients.
public/pets/bots contains the original Sloppy body PNGs; Sloppie.tsx uses the
same color matrix and eye geometry as the Dashboard. Original artwork shading
is retained.
Download links are verified release assets: native macOS v2.1.0 (macOS 26+,
universal), macOS arm64 CLI and Linux x86_64 v1.3.2. Update the explicit tags and
filenames in src/App.tsx when new binaries are published. Do not assume the
latest native release also contains CLI packages.
public/promo/dashboard.jpg and macos.jpg are actual product captures with
synthetic data from scripts/promo-fixtures.mjs. No live Core exports, personal
workspace, tokens, or customer conversations are used.
To refresh the Dashboard image:
- Run the Sloppy Dashboard on
http://127.0.0.1:5178. - Run
npx playwright install chromiumonce. - Run
npm run capture:dashboardin this repository.
The capture script intercepts every API request and blocks other Core/external
origins. A presentation-only rule makes the Dashboard stat meters solid cyan;
it does not change the application source. Review the resulting image before
publishing. PLAYWRIGHT_CHROMIUM_EXECUTABLE optionally selects an existing
Chromium binary.
For native macOS captures, run npm run promo:api, launch a separate copy of
Sloppy with a separate bundle identifier and these defaults:
-client_server_host 127.0.0.1 -client_server_port 5181 -client_server_scheme http
-client_color_scheme dark -client_last_agent_id sloppy -client_last_session_id launch-demo
Dismiss the optional import prompt without importing anything, then open
sloppy://session?agent=sloppy&id=launch-demo in that copy. Capture only its
window, inspect all visible text, and export to public/promo/macos.jpg.
Never capture the regular app connected to a personal workspace.
Run npm run dev -- --host 127.0.0.1 --port 5190 and, in another terminal,
npm run test:ui. This checks four responsive widths, image loading, screenshot
switching, clipboard content, editorial/404 routes, and absence of gradients.
Screenshots are saved to the system temporary directory. npm run build and
npm run lint remain the production checks.