- Replace dual update systems with single markdown-first editor architecture - Add server-side upsert to eliminate 404 errors on PUT operations - Fix content persistence race condition between preview and save operations - Remove legacy updateElementContent system entirely - Add comprehensive authentication with JWT scaffolding and dev mode - Implement EditContext.updateOriginalContent() for proper baseline management - Enable markdown formatting in all text elements (h1-h6, p, div, etc) - Clean terminology: remove 'unified' references from codebase Technical changes: * core/editor.js: Remove legacy update system, unify content types as markdown * ui/Editor.js: Add updateOriginalContent() method to fix save persistence * ui/Previewer.js: Clean live preview system for all content types * api/handlers.go: Implement UpsertContent for idempotent PUT operations * auth/*: Complete authentication service with OAuth scaffolding * db/queries/content.sql: Add upsert query with ON CONFLICT handling * Schema: Remove type constraints, rely on server-side validation Result: Clean content editing with persistent saves, no 404 errors, markdown support in all text elements
1.2 KiB
1.2 KiB
AGENTS.md - Developer Guide for Insertr
Build/Test Commands
just dev- Full-stack development (recommended)just build- Build entire project (Go binary + JS library)just build-lib- Build JS library onlyjust test- Run tests (placeholder, no actual tests yet)just lint- Run linting (placeholder, no actual linting yet)just air- Hot reload Go backend onlygo test ./...- Run Go tests (when available)
Code Style Guidelines
Go (Backend)
- Use standard Go formatting (
gofmt) - Package imports: stdlib → third-party → internal
- Error handling: always check and handle errors
- Naming: camelCase for local vars, PascalCase for exported
- Comments: package-level comments, exported functions documented
JavaScript (Frontend)
- ES6+ modules, no CommonJS
- camelCase for variables/functions, PascalCase for classes
- Use
const/let, avoidvar - Prefer template literals over string concatenation
- Export classes/functions explicitly, avoid default exports when multiple exports exist
Database
- Use
sqlcfor Go database code generation - SQL files in
db/queries/, schemas indb/{sqlite,postgresql}/schema.sql - Run
just sqlcafter schema changes