Commit graph

32 commits

Author SHA1 Message Date
34a4cf7abd fix: use rtc_mw as fallback for client_load when ppa_capacity is not set
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Fallback order: client_load_mw -> ppa_capacity_mw -> rtc_mw

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 13:12:30 +05:30
48fe2129bf fix: include aux consumption in hourly client_end loss calculation
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Also includes aux consumption in loss_factor alongside transmission and DSM

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 13:11:41 +05:30
38797736a4 fix: correct hourly index calculation for 25-year data
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Reset index per year caused out-of-bounds error
- Simplified loop using sequential hour_idx 0-8759 per year

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 12:56:31 +05:30
5e49926289 feat: add hourly timeseries infrastructure with Total RE, Client End, Load columns
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Add client_load_mw to CommercialConfig (defaults to ppa_capacity_mw)
- Add hourly_timestamps, hourly_fy, hourly_proj_year, hourly_total_re,
  hourly_client_end, hourly_load to ScenarioResult
- Generate 25-year hourly data in runner.py with proper timestamps
- Update API worker to return new hourly fields
- Update WorkbookView HourlyGenerationSheet to show all 5 columns
  at each expandable level (Year > Month > Day > Hour)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 12:52:44 +05:30
27866e86f0 fix: month order - Apr first at top, then subsequent months
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-16 12:07:19 +05:30
96ddb2fa60 feat: fix month labels and reverse order, vertical hourly display
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Show Apr 27 instead of Apr - include FY suffix
- Reverse month order: Apr first, then May... Mar
- Change hourly from horizontal wrap to vertical stack
2026-05-16 12:00:59 +05:30
7062688397 feat: use FY labels in generation sheet based on COD date
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Show FY 2026-27 instead of Y1 based on cod_year
- Show month names (Apr, May, etc.) instead of M1, M2
- Show actual dates (Apr 1, etc.) instead of D1, D2
- Pass codYear from scenario inputs to WorkbookView
2026-05-16 11:51:56 +05:30
0ada193bb0 feat: support %_generation column in solar profile CSV
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Add column %_generation (percentage, 0-100%) to solar profile CSV
- Update loader to read %_generation and convert to normalized fraction
- Fallback to old E_Grid_Kwp format for backwards compatibility
2026-05-16 11:44:29 +05:30
59da8280dc fix: return solar_hourly and wind_hourly from run_scenario
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
These fields were computed but not being returned in the ScenarioResult.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 11:36:49 +05:30
70dfe9b3ce feat: use user's hourly solar profile with 25-year leap year expansion
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Add load_solar_profile_25y() that expands 8760-hour profile to 25 years
- Handle leap years by inserting Feb 29 hours
- Support both normalized and absolute (kWp) input formats
- Normalize absolute values to [0,1] range before processing

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 11:18:52 +05:30
093e62b011 feat: add 25-year hourly generation data with expandable drill-down
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Engine: generate all 25 years × 8760 hours of hourly generation
- Schema: add solar_hourly and wind_hourly fields to ScenarioResult
- API: expose hourly data in statements endpoint
- UI: new HourlyGenerationSheet with Year → Month → Day → Hour drill-down
- Add TYPEOF for hourly generation in web API types

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 10:41:25 +05:30
ef3f2ace25 fix: pass NEXT_PUBLIC_API_URL as Docker build ARG so Next.js bakes it into bundle
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-15 05:15:25 +00:00
71ba62366a Fix config: remove REDIS_ prefix to match docker-compose env var
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-15 09:42:12 +05:30
584660f9a7 Add CORS for production domain
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-15 08:50:39 +05:30
cdcefa389d Add renewable energy favicon with sun and leaf
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-15 08:50:22 +05:30
71d834e992 Fix web: use absolute path /app/node_modules/.bin/next
Some checks failed
CI / Engine — lint / typecheck / test (push) Has been cancelled
CI / API — lint / typecheck / test (push) Has been cancelled
CI / Web — typecheck / lint / build (push) Has been cancelled
2026-05-13 22:24:26 +05:30
e7bb1007e2 Fix web: use pnpm node_modules path for next binary
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-13 22:02:09 +05:30
01c1a9682f Fix web: add node_modules/.bin to PATH
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-13 22:00:50 +05:30
66b76fc947 Fix web: use next start instead of node server.js
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-13 21:55:53 +05:30
fe0689d827 Fix uvicorn PATH in Docker - use poetry venv bin directory
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-13 21:47:53 +05:30
001906ea3c Create placeholder .env.local in builder stage for Docker
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-13 21:31:57 +05:30
614619ca4f Remove unsupported --no-venv-seeding flag for older Poetry
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-13 21:25:50 +05:30
e6955a85f9 Fix Dockerfile for Dokploy deployment
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-13 21:24:23 +05:30
62144ff8ad Fix: pnpm install --ignore-scripts to skip build errors
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-13 21:18:59 +05:30
6a19374af2 Fix: Use Node.js 22 in Dockerfile (required by pnpm)
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-13 21:15:36 +05:30
f125015bcc Add Docker files for deployment
Some checks are pending
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- docker-compose.yml: api, worker, web, redis services
- packages/api/Dockerfile
- packages/web/Dockerfile

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 10:45:35 +05:30
e6dc39aa33 [S1-T12/T13] P&L revenue breakdown + collapsible rows + UI polish
- Engine: Add ppa_revenue_cr, mcp_revenue_cr, tariff, units to PnLRow
- Engine: Split PPA vs MCP revenue in P&L computation
- Web: Collapsible rows for PPA/MCP Revenue and Opex
- Web: Highlighted rows (Total Revenue, EBITDA, EBIT, PBT, PAT)
- Web: Units above Tariff in breakdown, bg-blue-50 highlight
- Fix sticky column z-index for horizontal scroll
- CLAUDE.md: Add project documentation

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 10:42:36 +05:30
314127effc [S1-T01 through T11] Solar, Wind, BESS generation simulation + CLI
- Pydantic schemas: SolarConfig, WindConfig, BessConfig, GenerationResult
- Catalog: synthetic 8760h profiles for RJ/KA/GJ solar and wind; LRU-cached loader
- generation/solar.py: 25yr hourly simulation (DC losses, inverter, clipping, soiling, degradation)
- generation/wind.py: power-law shear, piecewise power curve, wake/electrical losses, degradation
- generation/bess_state.py: SOH-based capacity degradation with augmentation schedule
- CLI: remodel --input scenario.json --output gen.parquet (Typer upgraded to 0.25.1 for Click 8.3 compat)
- 43 unit tests, 97.4% coverage; mypy strict + ruff clean
- S1-T10 parity gate: placeholder fixture + skipped integration tests (awaiting Nagasamudra data)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 10:04:21 +05:30
4fbb723164 [S0-T04/T05/T10/T14] packages/web: Next.js, shadcn, TanStack Query, AG Grid; docker-compose; UI pages; openapi-typescript 2026-05-07 02:27:21 +05:30
89f1e47d54 [S0-T03/T06/T07/T08/T09] Set up packages/api: FastAPI, SQLAlchemy, Arq worker, CRUD endpoints, SSE 2026-05-07 02:22:25 +05:30
8b61c03d3c [S0-T02] Set up packages/engine with Poetry, Ruff, mypy strict, pytest 2026-05-07 02:14:45 +05:30
1d23b579fe [S0-T01] Initialize monorepo with packages/engine, packages/api, packages/web directories 2026-05-07 02:04:47 +05:30