Files
muxplex/pyproject.toml
T
Brian Krabach abe6a97241 fix: use ResizeObserver for terminal refit after sidebar toggle
The previous transitionend approach (v0.4.5) had a { once: true } bug:
the sidebar transitions two CSS properties (width and min-width), and if
min-width fired first, the listener self-destructed before the width event
arrived — so _refitTerminal() was never called.

Replace the fragile event-based approach with a ResizeObserver on
#terminal-container. This automatically calls _fitAddon.fit() (debounced
50ms) whenever the container dimensions change, handling sidebar toggle,
browser resize, and any future layout change. Remove the now-unnecessary
window._refitTerminal global and the broken transitionend handler.

Bumps version to 0.4.6.
2026-05-02 07:45:11 -07:00

69 lines
1.9 KiB
TOML

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "muxplex"
version = "0.4.6"
description = "Web-based tmux session dashboard — access all your tmux sessions from any browser"
readme = "README.md"
license = { text = "MIT" }
authors = [{name = "Brian Krabach", email = "brian@krabach.com"}]
classifiers = [
"Development Status :: 4 - Beta",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: System :: Systems Administration",
"Topic :: Terminals :: Terminal Emulators/X Terminals",
"Environment :: Web Environment",
"Framework :: FastAPI",
]
keywords = ["tmux", "terminal", "dashboard", "web", "session-manager"]
requires-python = ">=3.11"
dependencies = [
"fastapi>=0.115.0",
"uvicorn[standard]>=0.30.0",
"aiofiles>=23.0",
"websockets>=11.0",
"python-pam>=1.8.4",
"six>=1.16.0", # undeclared dep of python-pam (needed on macOS clean envs)
"itsdangerous>=2.1.0",
"python-multipart>=0.0.9",
"httpx>=0.27.0",
"cryptography",
]
[project.optional-dependencies]
dev = [
"pytest>=8.0.0",
"pytest-asyncio>=0.23.0",
"beautifulsoup4>=4.12",
]
[project.scripts]
muxplex = "muxplex.cli:main"
[project.urls]
Repository = "https://github.com/bkrabach/muxplex"
Issues = "https://github.com/bkrabach/muxplex/issues"
[tool.hatch.build.targets.wheel]
packages = ["muxplex"]
exclude = ["muxplex/tests", "muxplex/frontend/tests"]
[tool.pytest.ini_options]
testpaths = ["muxplex/tests"]
asyncio_mode = "auto"
addopts = "--import-mode=importlib -m 'not integration'"
markers = [
"integration: marks tests as integration tests requiring real tmux (deselect with '-m not integration')",
]
[dependency-groups]
dev = [
"pytest-timeout>=2.4.0",
]