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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kollabor_config-0.7.2.tar.gz (38.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kollabor_config-0.7.2-py3-none-any.whl (42.3 kB view details)

Uploaded Python 3

File details

Details for the file kollabor_config-0.7.2.tar.gz.

File metadata

  • Download URL: kollabor_config-0.7.2.tar.gz
  • Upload date:
  • Size: 38.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.14

File hashes

Hashes for kollabor_config-0.7.2.tar.gz
Algorithm Hash digest
SHA256 300c04990945184da1f228e0038bddd38878ebaae6a1048573979acea1f92bb3
MD5 c1466040be0caf0efffeef4e58243365
BLAKE2b-256 cce81532eb0e4bbb04190421b235e1b4a8050b5b6dfc199033748440b293a719

See more details on using hashes here.

File details

Details for the file kollabor_config-0.7.2-py3-none-any.whl.

File metadata

File hashes

Hashes for kollabor_config-0.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c964675ae97a66293ed23a4306423d405e3e939a0405bbcc855a84c77fc79633
MD5 2fe098a5b925d281c7e5926beed2734d
BLAKE2b-256 a6b594b6dbc89fd77ba522d0115b9c03e7075d4b56019e5c4584cb7f892f4bbf

See more details on using hashes here.

Release history Release notifications | RSS feed

1.0.1

2 files

1.0.0

2 files

This release

0.7.2 This release

2 files

0.7.1

2 files

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

0.5.24

2 files

0.5.23

2 files

0.5.22

2 files

0.5.20

2 files

0.5.19

2 files

0.5.18

2 files

0.5.16

2 files

0.5.15

2 files

0.5.14

2 files

0.5.13

2 files

0.5.12

2 files

0.5.11

2 files

0.5.8

2 files

0.5.7

2 files

0.5.5

2 files

0.4.22

2 files

0.4.21

2 files

0.4.19

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page