Skip to content

Conversation

@OmniTroid
Copy link
Contributor

@OmniTroid OmniTroid commented Jan 23, 2026

  • Migrate to modern Python tooling: Replace requirements.txt with pyproject.toml using uv for dependency management and setuptools as the build backend
  • Modernize CI/CD: Replace Travis CI with GitHub Actions (python-ci.yml), switch from flake8 to ruff for linting, add pytest to CI pipeline
  • Code quality: Run Black formatter across codebase, fix all ruff linter errors
  • Rename TsuServer3 to KFOServer: Update class name, file name (tsuserver.pykfoserver.py), and references throughout the codebase
  • Fix asyncio compatibility for Python 3.10+:
    • Wrap websockets.serve() in async function to fix get_running_loop() error
    • Update websocket handler to new single-argument API (removed deprecated path parameter)
    • Replace deprecated asyncio.get_event_loop() with asyncio.to_thread()
    • Remove deprecated loop= parameter from ensure_future() calls
  • Quality of life: Auto-copy config_sample to config on first startup if missing
  • Default config: In sample config, change use_masterserver from true to false to prevent bogus entries
  • Clean up: Remove bootstrap dependency scripts, fix wrapper scripts, update Dockerfile and docker-compose for new tooling

OmniTroid and others added 19 commits January 23, 2026 12:07
Add Development setup section with uv sync, tox, and black commands.
Simplify Server setup Install dependencies section to use uv.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace pip/flake8 with uv/ruff, update action versions, and add ruff
to dependencies. Add lint instructions to README.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add ruff configuration to pyproject.toml
- Fix wrong decorator @inventory.setter -> @latest_area.setter
- Fix undefined target_id variable in area_access.py
- Fix missing raise before ArgumentError in character.py
- Replace bare except clauses with specific exception types
- Auto-fix style issues (membership tests, comparisons, unused imports)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rename tsuserver.py to kfoserver.py
- Rename class TsuServer3 to KFOServer
- Rename workflow to python-ci.yml and add test step
- Update docker-compose service name
- Replace tsuserver references with KFO-Server in docs and strings

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Copy config_sample to config if config folder doesn't exist
- Remove hatchling build backend (not needed for server app)
- Remove deprecated docker-compose version field

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Wrap websockets.serve() in async function to avoid get_running_loop() error
- Update websocket handler to new single-argument API
- Replace deprecated asyncio.get_event_loop() with asyncio.to_thread()
- Remove deprecated loop= parameter from ensure_future calls

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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