kollabor-config
kollabor-config is the configuration and path-management package for
Kollabor.
It centralizes config loading, global/project path helpers, plugin config
schemas, migrations, task settings, and hot reload. Other packages should use
this package instead of hardcoding ~/.kollab paths or parsing config
files directly.
Current Role
- Load and merge Kollabor configuration from files and environment-compatible sources.
- Manage global and project-scoped data directories.
- Provide plugin config schemas and widget metadata.
- Support config migrations and first-run initialization.
- Provide hot reload callbacks when watchdog is available.
- Expose task/queue/background-task config models.
Architecture
| Module | Responsibility |
|---|---|
service.py |
singleton-style config access, save/reload, file watching |
loader.py |
lower-level config loading and merge behavior |
manager.py |
global/project config manager compatibility layer |
config_utils.py |
config directory, logs, conversations, prompt paths |
plugin_schema.py |
plugin field/schema/widget definitions |
plugin_config_manager.py |
plugin config retrieval and persistence |
llm_task_config.py |
LLM task, queue, and background-task settings |
migration.py |
config version migration helpers |
Usage
from kollabor_config import ConfigService, get_plugin_config_manager
config = ConfigService.get_instance()
model = config.get("kollabor.llm.model", "claude-3-5-sonnet")
plugin_config = get_plugin_config_manager().get_plugin_config("my_plugin")
Known Gaps
- Some application code still reaches directly into home-directory paths; those paths should move toward these helpers over time.
- Config keys are not yet fully described by one typed registry, so stale keys can appear in docs, defaults, or plugin code.
- Hot reload depends on optional watchdog support and callback consumers; code that needs reloads should handle the no-watchdog path.
- Root package and workspace package versions can drift during development; the release process should keep them synchronized when publishing packages.
Roadmap
Phase 1: Key registry
- Create a canonical config key catalog with defaults, types, descriptions, and ownership.
- Generate config UI schemas and docs from the same catalog where possible.
- Add tests that catch missing, renamed, or stale config keys.
Phase 2: Path consolidation
- Replace direct
Path.home() / ".kollab"usage in callers with package helpers. - Clarify project-scoped versus global data locations.
- Add path migration tests for existing user config/data layouts.
Phase 3: Reload and migration hardening
- Make reload callback behavior consistent with and without watchdog.
- Add migration dry-run/reporting utilities.
- Improve validation and recovery around corrupted config files.
Development
Targeted validation examples:
python -m py_compile packages/kollabor-config/src/kollabor_config/*.py
python -m pytest tests/unit/commands/test_all_command_handlers.py -q
Dependencies
kollabor-events
License
MIT
Metadata
Release files for kollabor-config 0.10.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kollabor_config-0.10.7.tar.gz | 45.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kollabor_config-0.10.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 95.7 kB
Release files / kollabor_config-0.10.7.tar.gz
| Download URL | kollabor_config-0.10.7.tar.gz |
|---|---|
| Size | 45.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c73f850ecd258194c8452b5022d5fc75447e5ba776e491e27d2032179d6746d4
|
|
BLAKE2b-256 checksum How to use checksums |
f307d5786a113c24de6333942867465c56959cd096d8508a73f76238fbf4aaa1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / kollabor_config-0.10.7-py3-none-any.whl
| Download URL | kollabor_config-0.10.7-py3-none-any.whl |
|---|---|
| Size | 49.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8913f60aee16e425986b4f293ac144c6cb13d5249d5f8bcf5ba11de457b8123e
|
|
BLAKE2b-256 checksum How to use checksums |
bdaa0f8e182ecb8502f9a4c1448f3d956edbb3a2504b60b27862cf00496e1cae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|