Skip to content

Conversation

@metaversedance
Copy link
Collaborator

Summary

  • Fix process handling and signals for Linux (SIGKILL handling, process groups)
  • Replace hardcoded Windows paths with cross-platform pathlib.Path
  • Convert maintenance mode to asyncio.Lock to prevent event loop blocking
  • Fix CSV export line endings for cross-platform consistency
  • Add CLAUDE.md project instructions

Changes

File Change
forge/api/routes/system.py Use asyncio.Lock instead of threading.Lock for async handlers
forge/compliance/privacy/dsar_processor.py Add newline='' to StringIO for consistent CSV line endings
forge/federation/protocol.py Document threading.Lock limitation with Redis recommendation
forge/services/hook_service.py Linux-compatible process termination
forge/services/process_service.py Cross-platform process group handling

Test plan

  • Run test suite on Linux
  • Verify maintenance mode enable/disable works
  • Test CSV export produces consistent line endings
  • Verify process hooks terminate cleanly

🤖 Generated with Claude Code

metaversedance and others added 4 commits January 30, 2026 13:05
- Update start_all_servers.py to use start_new_session=True on Unix
  for proper process group management (was using Windows-only creationflags)
- Add error handling for process termination edge cases
- Update Claude Code hooks to use relative paths instead of absolute
  Windows paths, enabling cross-platform compatibility

Both changes maintain backwards compatibility with Windows.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
- Update test_auth_flow.py to use pathlib.Path for sys.path insertion
- Removes hardcoded C:\Users\... path that broke Linux compatibility

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Define project conventions, directory structure, commit message
format, and cross-platform development guidelines.
- Convert maintenance mode to use asyncio.Lock instead of threading.Lock
  to prevent blocking the event loop in async handlers (system.py)
- Add newline='' to StringIO in CSV export for consistent line endings
  across platforms (dsar_processor.py)
- Document threading.Lock usage in DNSPinStore with recommendation for
  Redis-backed storage in multi-process deployments (protocol.py)
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.

2 participants