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.14.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.14.1
File Size Uploaded
kollabor_config-0.14.1.tar.gz 48.9 kB Details

Built distribution (wheel)

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

Total release size: 102.4 kB

Release files / kollabor_config-0.14.1.tar.gz

Download URL kollabor_config-0.14.1.tar.gz
Size 48.9 kB
Tags Source
SHA-256 checksum
How to use checksums
8bc8f6dc7258328ff5b4744aa5e8674765421d5566c65708a65b4462579afb87
BLAKE2b-256 checksum
How to use checksums
17e2d767dea3583210ce969f240e3f2048ccc9a2410d8c17a9bc2b7ced05ee62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / kollabor_config-0.14.1-py3-none-any.whl

Download URL kollabor_config-0.14.1-py3-none-any.whl
Size 53.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c0f151c13016286113371938cb2ac4ccd86f38a2c1c5acbd2ad4b8d35d948be8
BLAKE2b-256 checksum
How to use checksums
fd73e7bedf7b8a867e0f9d2d0ed72272b73534cf2c35a5a5afbe599db639549d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

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

This release

0.14.1 This release

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

0.10.1

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