golem

golem 推送了 main 分支的代碼到 lucky/astro-mcp

  • 26be5714d2 render test charts, intent paper
  • 2a531c6c1b refactor: embed Astronomicon font, add PNG/JPG output, split chart modules, fix datetime convention - Extract chart styles/proportions/aspect-styles to chart_styles.py - Extract font embedding + image conversion to chart_helpers.py - Embed Astronomicon.ttf as base64 data URI in SVG output - Add format parameter (svg/png/jpg) to all render tools - Split chart_renderer into chart_font + chart_styles + chart_helpers + chart_renderer - Fix persons DB datetime convention: naive local + IANA timezone (not UTC) - _get_person_birth_data returns naive local + timezone, _byId tools return local in response - Fix incorrect DB entries for chaka and einstein that had wrong offsets - Add AGENTS.md with datetime convention reference - Update server-guide.md and PROJECT.md with datetime convention docs - Add pillow and cairosvg to requirements.txt
  • 查看 2 次提交的內容比對 »

23 小時之前

golem 推送了 main 分支的代碼到 lucky/exec-mcp

  • 34eb991d76 feat: WAL journaling + automatic DB backup on account changes + auto-restore - PRAGMA journal_mode=WAL on every connection for crash safety - backup_db() uses SQLite online backup API for consistent snapshots - Automatic backup after every account create/update/delete - Backups stored in data/backups/ (inside mounted volume), max 10 - init_db() auto-restores from latest backup if DB file exists but accounts table is empty (protects against volume mount loss) - Startup diagnostics log DB path, size, and table row counts

1 周之前

golem 推送了 main 分支的代碼到 lucky/exec-mcp

  • 71ce544110 feat: add DB startup diagnostics + fix dashboard test isolation init_db() now logs the resolved DB_PATH, whether the file exists, its size, and row counts for all tables after bootstrap. This makes volume-mount issues visible immediately at startup instead of surfacing as cryptic 'account not found' errors later. Dashboard test now uses temp_db (tmp_path + monkeypatch) instead of relying on the production DB, fixing the pre-existing test failure. All 21 tests pass.

1 周之前

golem 推送了 main 分支的代碼到 lucky/exec-mcp

  • 590c0313fd docs: remove price caching suggestion from plan — freshness handled upstream
  • 547c82026b fix: close SQLite connections on exit + defer WS balance snapshot to background pool Fix 1 (critical): get_connection() was returning a raw sqlite3.Connection. The 'with conn:' pattern only commits — it does not close. Connections accumulated for the entire process lifetime, each holding pager cache memory, causing 3GB RAM usage over time. Now a @contextmanager that guarantees conn.close() in finally. Fix 2: _record_order_status_update called capture_account_balance_snapshot synchronously when driven by a WS order-finish message. This blocked the event loop for HTTP calls + per-asset price lookups. Now WS-driven calls (account_id is None) defer the snapshot to a single-worker ThreadPoolExecutor, serialising snapshots without blocking the WS loop. Tool-driven calls (query_order, cancel_order, etc.) are unchanged. Added test for WS-path deferral. All 19 tests pass. Remaining fixes documented in MEMORY_FIXES_PLAN.md.
  • 查看 2 次提交的內容比對 »

1 周之前

golem 推送了 main 分支的代碼到 lucky/astro-mcp

  • 317e173fb9 fix: add missing COPY static ./static to Dockerfile

1 月之前

golem 推送了 main 分支的代碼到 lucky/astro-mcp

1 月之前

golem 推送了 main 分支的代碼到 lucky/astro-mcp

  • fbe94f0de3 feat: add MCP prompts for natal, karmic, synastry, transit, financial workflows; fix Dockerfile missing agent-guides

1 月之前

golem 推送了 main 分支的代碼到 lucky/astro-mcp

  • 05badb5cfd fix: single-point timezone conversion, clean up double normalization Rule: _get_person_birth_data() is the ONLY function that converts stored birth datetimes to UTC. All _byId tools receive UTC and must not re-normalize. - _get_person_birth_data: now converts naive local time + IANA timezone to UTC using zoneinfo (modern dates) or LMT from longitude (fallback) - call_sky_state: no longer normalizes — expects UTC from callers - calculate_natal_chart: no longer normalizes — expects UTC from callers - All _byId functions use _get_person_birth_data (which returns UTC) - Removed tz parameter from call_sky_state and calculate_natal_chart - Removed stale sidereal time correction from call_sky_state - DB migration: stripped bogus offsets from birth_datetime, added missing IANA timezones - Added agent-guides/server-guide.md with architecture, timezone rules, tool reference - Registered astro://guides/server-guide resource
  • db328c9bef fix: historical timezone handling — IANA for modern, LMT fallback for pre-1890 - _normalize_datetime: always use IANA timezone when available (handles historical LMT correctly for most zones). Fall back to LMT from longitude when no timezone is specified. - call_sky_state passes lon for LMT computation - Removed pre-1890 LMT override — IANA zoneinfo already encodes historical LMT offsets (e.g. Europe/Berlin in 1879 = +0:53:28) - Einstein 0.1° diff is 28s LMT precision (Berlin vs Ulm longitude), not a bug
  • 031aaafa4a fix: timezone handling — naive datetime + IANA timezone, strip bogus DB offsets - _normalize_datetime now accepts optional IANA timezone name for UTC conversion - call_sky_state passes tz through to _normalize_datetime - Removed leftover sidereal time correction (ephemeris is authoritative) - calculate_natal_chart and calculate_natal_chart_by_id thread tz from DB - _get_person_birth_data now returns timezone field - DB migration: stripped bogus offsets from birth_datetime (e.g. T00:05-00:05) - Added missing IANA timezones for chaka, einstein, gaga - All 55 unit tests pass
  • 查看 3 次提交的內容比對 »

1 月之前

golem 推送了標籤 v0.2.0lucky/ephemeris-mcp

1 月之前

golem 推送了 main 分支的代碼到 lucky/ephemeris-mcp

  • 02658e9144 docs: bump to v0.2, reflect Swiss Ephemeris as a service - Reposition server as 'Swiss Ephemeris as a service' for downstream consumers - Add v0.2 release notes: house systems, data directory split, Chiron fix - Document all 22 supported house systems across README, server docstrings, release notes - Update data paths: data/ -> data/ephe/ and data/cache/ - Update module docstrings (server, ephemeris, storage) to reflect service model - Remove house cusps from 'out of scope' (now in scope as swiss ephemeris geometry) - Update IMPLEMENTATION_PLAN with v0.2 acceptance criteria - Historical v0.1 sections preserved as-is

1 月之前

golem 推送了 main 分支的代碼到 lucky/ephemeris-mcp

  • 26902f7102 refactor: split data/ into ephe/ and cache/ - data/ephe/: static Swiss Ephemeris .se1 files, git-tracked, copied into Docker image - data/cache/: runtime sqlite cache (ephemeris.sqlite3), gitignored - Update config.py: DATA_DIR -> data/ephe, DB_PATH -> data/cache/ephemeris.sqlite3 - Update Dockerfile: COPY data/ephe/ instead of empty mkdir - Update docker-compose: mount only data/cache/ volume, set EPHEMERIS_DATA_DIR - Simplify .gitignore: ignore data/cache/ and data/ephe/*.bsp (no more 42 whitelist lines) - Remove data/ from .dockerignore
  • 8708e8820c fix: replace Chiron workaround with complete ephemeris file set Replace custom seas_18.se1 workaround (223KB) with the full set of time-segmented Swiss Ephemeris asteroid files needed for Chiron positions from ~675 CE to ~4650 CE and beyond. - 28 seas_*.se1 files (Chiron time segments from seas_00 to seas_168) - 10 sepl_*.se1 files (far-future planetary/moon segments) - 10 semo_*.se1 files (far-future moon segments) - All sourced from Swiss Ephemeris DE441 distribution Trump Chiron verified: Libra 14.91 (matches expected Libra 14°54)
  • 查看 2 次提交的內容比對 »

1 月之前

golem 推送了 main 分支的代碼到 lucky/astro-mcp

  • c7ee0ea269 fix: chart rendering improvements - title block, angle glyphs, ticks, band fill - Title block: grouped <g> with hanging baseline, proper line spacing - Angle glyphs: single Astronomicon glyph per axis, larger (22px), tangentially offset - Angle axis lines: extended beyond outer rim to r_zod_out+24 - Tick marks: 30°/10°=10px, 5°=7px, 1°=3px, all outward from zodiac edge - Zodiac band fill: proper ring segment paths (outer arc → line → inner arc → close) - Zodiac glyphs: centered in band at 0.855 - Wheel: slightly smaller (margin 20px) to accommodate labels

1 月之前

golem 推送了標籤 v0.10.0lucky/astro-mcp

1 月之前

golem 推送了 main 分支的代碼到 lucky/astro-mcp

  • e7850621fa chore: bump version to 0.10.0
  • 06c0dbe629 refactor: use server-side houses from ephemeris-mcp, remove local fallbacks - Add extract_angles() to ephemeris_client.py to get ASC/MC/DSC/IC from server - Remove all local calculate_houses/calculate_angles fallbacks from tools.py - Remove calculate_houses, calculate_angles, and all private helpers from astrology.py (~321 lines) - list_house_systems() now lists all 24 Swiss Ephemeris house systems - Add extract_houses/extract_angles unit tests - Add test_reference_charts.py with Einstein + Chaka Khan reference data - Add test_live_charts.py: 9 end-to-end tests calling live astro-mcp server via MCP SSE - Update test_tools.py mock to include house data - Add pytest.ini for async test mode - Add 3 celebrities to persons DB: einstein, chaka, gaga All 64 tests pass (55 unit + 9 live integration)
  • 0c6a503676 fix: house calculation, MC formula, LST correction, zodiac direction
  • 查看 3 次提交的內容比對 »

1 月之前

golem 推送了 main 分支的代碼到 lucky/ephemeris-mcp

1 月之前

golem 推送了 main 分支的代碼到 lucky/ephemeris-mcp

1 月之前

golem 推送了 main 分支的代碼到 lucky/ephemeris-mcp

1 月之前

golem 推送了 main 分支的代碼到 lucky/astro-mcp

  • 13cc83329b feat(chart): SVG chart wheel renderer with Astronomicon font Chart rendering engine for astro-mcp. Renders professional astrological chart wheels as SVG with the Astronomicon font (OFL licensed). Renderer (chart_renderer.py): - Natal wheel with zodiac ring, house sectors, planet glyphs, aspect lines - Transit bi-wheel (natal inner + transit outer) - Three color modes: color (element-themed), bw (line-style coded), dark (web) - Zodiac band rotates based on ASC (correct for all house systems) - Degree tick marks on zodiac ring (every 5°, major at 30°) - Angular house cusps (1,4,7,10) drawn bolder - Planet collision avoidance (spreads overlapping glyphs) - Angle axis lines (ASC-DSC horizontal, MC-IC vertical) - Angle labels at outer edge with degree+sign for ASC - Compact title block: chart type, birth datetime, lat/lon, house system - Footer: astro-mcp version, house system, zodiac type - Table layouts: 'none' (wheel only), 'below' (portrait), 'right' (landscape) - Planet table: glyph, sign, degree, house, Rx - House table: house, sign, cusp degree MCP Tools (10 new render tools): - render_natal_chart / render_natal_chart_by_id - render_transit_chart / render_transit_chart_by_id - render_synastry_chart / render_synastry_chart_by_id - render_composite_chart / render_composite_chart_by_id - render_davison_chart / render_davison_chart_by_id Each render tool mirrors the corresponding calc tool's birth data params, plus rendering options (style, color_mode, size, table_position, etc). Reference docs: - docs/astrological_chart_rendering_guide.md (comprehensive guide) - docs/chart-rendering-api-design.md (API design decisions)

1 月之前

golem 推送了 main 分支的代碼到 lucky/astro-mcp

  • c8c5b6097c feat(chart): add Astronomicon font and glyph mapping - Add Astronomicon.ttf (OFL licensed, ~90+ glyphs) to static/fonts/ - Add astronomicon-character-map.md reference doc - Add chart_font.py with full glyph lookup: - Zodiac signs (A-L) - Planets (Q-Z, R for Moon) - Major/minor aspects (!, %, #, $, ", etc.) - Angles (c, d, e, f) - Houses (0-9, :, ;) - Asteroids, dwarf planets, Uranian points, lots - glyph() helper with aliases - Prepared for chart rendering engine

1 月之前

golem 推送了 main 分支的代碼到 lucky/astro-mcp

  • 111a627340 docs: chart rendering planning document Comprehensive brainstorm and planning for astro-mcp chart rendering: - Output formats (B&W print, color web, PDF) - Chart types (natal, transit bi-wheel, synastry, composite, Davison) - Style variants (modern, traditional, dark/light themes) - ZodiacFonts.com resource evaluation - SVG rendering architecture using svgwrite - PDF export via WeasyPrint (already installed) - 6-phase implementation plan - Open questions for discussion

1 月之前