When you release, tag the commit (e.g. v0.1.0), run uv pip install -e . (or a build) so core/_version.py is regenerated by setuptools-scm, update this file under [Unreleased], then move notes into a dated ## [x.y.z] section. With no matching Git tag, the version falls back to fallback_version in pyproject.toml ([tool.setuptools_scm]).
All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Stability policy (
STABILITY.md): documents stable vs evolving vs unstable interfaces for production and contributors; README links to it.
- Document
pandocas a system dependency (not installed bypip/pypandocalone); centralize install steps for macOS, Debian/Ubuntu, and Windows in the root README and link from contributor setup docs.
- core.collectors: Removed deprecated
CollectorBaseandDjangoCommandCollector; the supported collector contract isAbstractCollector+BaseCollectorCommand(see docs). - Resolved five cross-app import tech-debt edges: Pinecone via
cppa_pinecone_sync.sync_api, dashboard model shim removed, CSV owner lookup viacppa_user_tracker.services, clang imports viagithub_activity_tracker.sync_api. - Added import-linter contracts and pre-commit hook to prevent regressions.
- Enforced service-layer-only ORM writes with
scripts/check_service_layer_writes.pyand pre-commit; moved remaining direct writes (repo metadata sync, star bulk-update, GitHub file backfill, BoostVersion import, commit file-change backfill) intogithub_activity_tracker.services/boost_library_tracker.services. Allowlist.service-layer-write-allowlist.jsonis empty by default for new debt only. - slack_event_handler: Workspace under
workspace/slack_event_handler/; replace Selenium withplyvel+browser-cookie3extraction fromCHROME_PROFILE_PATH(optional Composeslack-session/slack-chromiumnoVNC on port 7900 andmanage.py extract_slack_tokens), store xoxc/xoxd inslack_internal_tokens.jsonwith runtime load and automatic re-extract when stale, and removeslack_session_refresh,refresh_slack_tokens, and theslack-profile-refreshcompose service. - Pydantic boundary schemas at GitHub, Slack, and Discord ingestion (
api_schemas.pyper app; Discord ChatExporter usesstaging_schema.py); fetchers validate withmodel_validate(); services accept typed payloads;classify_failuremaps validation errors toVALIDATION.
core— shared utilities, collector base classes, and cross-cutting operations (e.g. GitHub, Slack, files, markdown).boost_collector_runner— YAML-driven schedules, Celery tasks, andrun_scheduled_collectorsmanagement command.github_activity_tracker— GitHub repos, commits, issues, and related activity.boost_library_tracker— Boost libraries, versions, dependencies, and maintainer/author roles.boost_library_docs_tracker— Boost library documentation scraping and doc content metadata.boost_library_usage_dashboard— usage dashboard collection and analysis.boost_usage_tracker— Boost usage and repository search tracking.boost_mailing_list_tracker— Boost mailing list message ingestion and formatting.clang_github_tracker— Clang-related GitHub activity and workspace sync.cppa_slack_tracker— Slack workspace sync and message tracking (CPPA).cppa_pinecone_sync— Pinecone vector index sync for collected content.cppa_user_tracker— CPPA user records and tracking.cppa_youtube_script_tracker— YouTube script / transcript tracking.discord_activity_tracker— Discord messages and activity sync.wg21_paper_tracker— WG21 paper metadata and pipeline.slack_event_handler— Slack events, jobs, and GitHub/PR integration helpers.