integratedhub/AGENTS.md
2026-02-14 06:10:15 +00:00

2.5 KiB

AGENTS.md

This file is the operational guide for coding agents working in this repository. It reflects the codebase as it exists now.

Project Reality

  • App type: Fresh 2 + Deno full-stack web app
  • Domain: landlord/tenant rental workflows + financial calendar
  • Primary database: PostgreSQL through Drizzle (db/schema.ts, db/db.ts)
  • Cache/state bridge: modules/KvCacheStore.ts (memory/file KV with SQL synchronization)
  • Auth model: OAuth login/callback with encrypted session cookies

Core Paths

  • main.ts: app bootstrap, middleware wiring, health/debug endpoints
  • routes/: page routes and API endpoints
  • services/: business logic, route auth/role guard, domain services
  • db/: schema and SQL repository methods
  • modules/KvCacheStore.ts: KV facade + SQL write-through for user/session data
  • tests/: Playwright E2E and integration coverage

Required Environment

Required for normal auth + data flow:

  • POSTGRES_OPTIONS
  • AUTHORITY
  • CLIENT_ID
  • CLIENT_SECRET
  • REDIRECT_URI
  • TOKEN_URL
  • REDIRECT_HOME

Frequently used optional vars:

  • PORT, HOSTNAME_DENO, DEVELOPMENT
  • SANDBOX_MODE, DISABLE_EXTERNAL_APIS
  • STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, STRIPE_PUBLISHABLE_KEY
  • KV_CACHE_PATH

Commands You Should Use

  • Start dev server: deno task dev
  • Build: deno task build
  • Start production build: deno task start
  • Full checks: deno task check
  • E2E tests: deno task e2e
  • Auth callback DB regression: deno task test:auth-callback-db

Per-file validation during edits:

  • deno check <file>
  • deno fmt <file>
  • deno lint <file>

Auth/DB Invariants (Do Not Break)

  • Keep search_path with public first (db/db.ts).
  • Upsert/ensure users row before writing user_tokens in auth callback flow.
  • Preserve concurrent-session behavior: user_tokens keyed by (user_id, state_id).
  • Keep session cookie seal/unseal compatible with state_keys persistence.

Editing Expectations

  • Prefer TypeScript for any new code.
  • Keep route protections aligned with services/authRouteConfig.ts.
  • If you add/rename API routes, update tests in tests/e2e.
  • If you modify auth/session behavior, run at least:
    • deno task check
    • deno task test:auth-callback-db

Outdated Docs Cleanup Policy

Do not add one-off session summaries or temporary feature-verification markdown files at the project root. Keep permanent documentation in:

  • README.md for project usage
  • AGENTS.md for contributor/agent runbook
  • CLAUDE.md for deep troubleshooting and invariants