Skip to main content

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.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kollabor-config 0.10.1
File Size Uploaded
kollabor_config-0.10.1.tar.gz 45.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kollabor-config 0.10.1
File Interpreter ABI Platform
kollabor_config-0.10.1-py3-none-any.whl Python 3 none any Details

Total release size: 95.7 kB

Release files / kollabor_config-0.10.1.tar.gz

Download URL kollabor_config-0.10.1.tar.gz
Size 45.9 kB
Tags Source
SHA-256 checksum
How to use checksums
98f830edc7b6ff809e2f2ef0dc71626ebb989a20ceafddee0658f7b30380e017
BLAKE2b-256 checksum
How to use checksums
00fd02c6519302f1d8d142e2dac94b6d10af09a8e3f4bc77415a39e83b15bc65
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.1-py3-none-any.whl

Download URL kollabor_config-0.10.1-py3-none-any.whl
Size 49.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a2eaef8f7410e84c79909c241d31a2d9eb0d110084d9be24f8314179ede17233
BLAKE2b-256 checksum
How to use checksums
9f6394f4b5cb8a01a2c7740788ed45d9636c5b59b064a601514d49700da5c1f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

1.0.1

2 release files

1.0.0

2 release files

0.15.6

2 release files

0.15.5

2 release files

0.15.4

2 release files

0.15.3

2 release files

0.15.2

2 release files

0.15.1

2 release files

0.15.0

2 release files

0.10.7

2 release files

0.10.6

2 release files

0.10.5

2 release files

0.10.4

2 release files

0.10.3

2 release files

0.10.2

2 release files

This release

0.10.1 This release

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.24

2 release files

0.5.23

2 release files

0.5.22

2 release files

0.5.19

2 release files

0.5.18

2 release files

0.5.16

2 release files

0.5.15

2 release files

0.5.14

2 release files

0.5.13

2 release files

0.5.12

2 release files

0.5.11

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.5

2 release files

0.4.22

2 release files

0.4.21

2 release files

0.4.19

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page