Files
Aperant/apps/backend/requirements.txt
T
StillKnotKnown 76af0aaabd fix(windows): ensure pywin32 is bundled in Windows binary (ACS-306) (#1197)
* fix(spec): resolve circular import between spec.pipeline and core.client

Implement two-part fix to break circular import dependency:

1. Add __getattr__ lazy imports in spec/__init__.py to defer imports of
   SpecOrchestrator and get_specs_dir until accessed.

2. Move create_client import inside run_agent() method in
   spec/pipeline/agent_runner.py to avoid top-level import.

The circular import chain:
  spec.pipeline.agent_runner -> core.client -> agents.tools_pkg ->
  spec.validate_pkg.auto_fix -> spec.pipeline

By deferring both the pipeline imports in spec/__init__.py AND the
create_client import in agent_runner.py, the circular dependency
is broken.

The __getattr__ implementation caches imports in globals() for efficiency.

Refs: ACS-302

* fix(windows): ensure pywin32 is bundled in Windows binary (ACS-306)

Fixes ModuleNotFoundError: No module named 'win32api' when the MCP
library attempts to import Windows-specific utilities in packaged apps.

Root cause: The build script's critical packages validation did not
include pywin32 for Windows, causing cached bundles without pywin32
to be accepted during Windows binary builds.

Changes:
- Add pywin32 to critical packages validation on Windows
  (download-python.cjs, python-env-manager.ts)
- Remove Python version constraint from pywin32 dependency
  The MCP library unconditionally imports win32api on Windows
  regardless of Python version
- Validate pywin32 on all Python versions on Windows in
  dependency_validator.py (was 3.12+ only)
- Update error message to mention MCP library requirement
- Update tests to reflect new behavior

Refs: ACS-306

---------

Co-authored-by: StillKnotKnown <stillknotknown@users.noreply.github.com>
2026-01-16 20:27:12 +01:00

31 lines
1.1 KiB
Plaintext

# Auto-Build Framework Dependencies
claude-agent-sdk>=0.1.19
python-dotenv>=1.0.0
# TOML parsing fallback for Python < 3.11
tomli>=2.0.0; python_version < "3.11"
# Linux Secret Service support for credential storage
# Provides access to the Freedesktop.org Secret Service API via DBus
# Used on Linux to store OAuth tokens in gnome-keyring/kwallet
secretstorage>=3.3.3; sys_platform == "linux"
# Memory Integration - LadybugDB (embedded graph database)
# Requires Python 3.12+ (no Docker required)
real_ladybug>=0.13.0; python_version >= "3.12"
graphiti-core>=0.5.0; python_version >= "3.12"
# Windows-specific dependency for LadybugDB/Graphiti
# pywin32 provides Windows system bindings required by real_ladybug
# Required on all Python versions on Windows (ACS-306) - MCP library unconditionally imports win32api
pywin32>=306; sys_platform == "win32"
# Google AI (optional - for Gemini LLM and embeddings)
google-generativeai>=0.8.0
# Pydantic for structured output schemas
pydantic>=2.0.0
# Error tracking (optional - requires SENTRY_DSN environment variable)
sentry-sdk>=2.0.0