Skip to content

docs: GitAgent handover package + 6 ADRs - #5

Open
iamadarsha wants to merge 2 commits into
mainfrom
docs/agent-handover-package
Open

docs: GitAgent handover package + 6 ADRs#5
iamadarsha wants to merge 2 commits into
mainfrom
docs/agent-handover-package

Conversation

@iamadarsha

Copy link
Copy Markdown
Owner

Summary

  • Adds docs/HANDOVER.md — session context, recent commits, immediate next steps for the next agent/dev
  • Adds docs/ARCHITECTURE.md — full system diagram, Railway Docker constraints, AI fallback chain
  • Adds docs/ONBOARDING.md — local dev setup, deployment steps, key production URLs
  • Adds docs/DECISIONS.md — 6 Architecture Decision Records covering the fixes made this session

Context

This PR follows two sessions of production incident work:

  1. 502 OOM fix — unpinned requirements.txt caused Railway to install pandas 3.x, exhausting 512MB RAM. Fixed in be6e4bd with pinned pandas>=2.2.0,<3.0.0 + pandas-ta>=0.4.67b0 + numpy>=2.2.6
  2. Security hardening — slowapi rate limiting, CORS hardening, debug endpoint guard (8d4d024)
  3. Reliability — NSE poller watchdog with exponential back-off, circuit breaker pattern (0a622c7)

The handover docs encode all institutional knowledge from this sprint so future agents/devs can continue without re-investigating the same issues.

Test plan

  • Verify https://breakoutscan-api-production.up.railway.app/health returns 200 after latest Railway build
  • Confirm ENVIRONMENT=production is set in Railway dashboard
  • Review Supabase RLS policies (still open item from session notes)

🤖 Generated with claude-flow

Add four agent-readable docs to docs/ covering:
- HANDOVER.md: session summary, recent commits, immediate next steps
- ARCHITECTURE.md: full system diagram, tech stack, Docker constraints
- ONBOARDING.md: local dev setup, deployment, key URLs
- DECISIONS.md: 6 ADRs (dep pinning, rate limiting, poller watchdog,
  asyncpg/PgBouncer, AI fallback chain, null-safe market status)

Includes explanation of the pandas-ta PyPI availability issue that
caused two broken commits (0.3.14b0 doesn't exist; 0.4.67b0+ required).

Co-Authored-By: claude-flow <ruv@ruv.net>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a0e5e6c0e0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/ARCHITECTURE.md
│ WebSocket → WSS proxy
FastAPI (Railway API service)
├── REST: /api/screener, /api/ai, /api/health

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Stop documenting /api/health as the backend health probe

This is misleading for operations: apps/web/src/app/api/health/route.ts handles /api/health inside Next and always returns {status:"ok"}, while the real FastAPI health endpoint is /health in apps/api/app/main.py. Anyone following this architecture doc to verify backend health can get a false green even when the API is down.

Useful? React with 👍 / 👎.

Comment thread docs/ONBOARDING.md
Comment on lines +50 to +52
```bash
curl http://localhost:8001/health
# Expected: {"status":"ok","market":{"is_open":false,...},"poller_running":true}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Correct the expected payload for the local /health check

Step 4 currently tells newcomers to expect fields that no longer exist. apps/api/app/main.py:175-191 now returns {status, redis, poller, universe_size, uptime_seconds}, and on a typical local setup without Redis it reports status: "degraded" rather than the documented market/poller_running shape. As written, the first verification step makes a normal startup look broken.

Useful? React with 👍 / 👎.

Add project documentation files to docs/:
- BreakoutScan_Design_System.md: full design system spec (components,
  colours, typography, tokens) for v1.0 — March 2026
- create_deck.py / create_design_system_pdf.py: utility scripts for
  generating pitch deck and design system PDF exports

Update .gitignore to exclude:
- *.tsbuildinfo, .claude-flow/ (build artifacts)
- claude_code_templates_output/, firebase-debug.log (generated)
- chat_history_*.md, *CHAT_HISTORY*.md (session logs)
- *.pdf, *.pptx (binary outputs — track source, not rendered)

Co-Authored-By: claude-flow <ruv@ruv.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant