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.3
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.3.tar.gz | 45.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kollabor_config-0.10.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 95.7 kB
Release files / kollabor_config-0.10.3.tar.gz
| Download URL | kollabor_config-0.10.3.tar.gz |
|---|---|
| Size | 45.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
57ca689bc35b1ef3d9610aef9147d4b5d5ea1eba15d8f51bf2707d6568111d55
|
|
BLAKE2b-256 checksum How to use checksums |
5fbcb89a9ac4294c36836d59dc79cc66fd1ca7c83ebac10263dcbf741a0141f3
|
| 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.3-py3-none-any.whl
| Download URL | kollabor_config-0.10.3-py3-none-any.whl |
|---|---|
| Size | 49.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
384d129523820cd4397aac6fe9270c4ff8160b4fadbb3ea57319a095353f2ecb
|
|
BLAKE2b-256 checksum How to use checksums |
de11c71b495a02436269af2b179cb64dacf3c0788c52878322191098ac70086d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|