cc-session-tools 3.3.0__tar.gz → 3.3.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cc_session_tools-3.3.0/src/cc_session_tools.egg-info → cc_session_tools-3.3.2}/PKG-INFO +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/pyproject.toml +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/classify.py +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/cutover.py +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/importers.py +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/init_service.py +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/manifest.py +2 -2
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/resolve.py +3 -3
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/service.py +1 -1
- {cc_session_tools-3.3.0/src/cc_session_tools/skills/pm-pdata-schema-design → cc_session_tools-3.3.2/src/cc_session_tools/skills/pm-pdata-design-schema}/SKILL.md +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/pm-pdata-do-audit-and-prepare-to-migrate/SKILL.md +9 -9
- {cc_session_tools-3.3.0/src/cc_session_tools/skills/pm-project-init → cc_session_tools-3.3.2/src/cc_session_tools/skills/pm-pdata-do-init}/SKILL.md +3 -3
- {cc_session_tools-3.3.0/src/cc_session_tools/skills/pm-pdata-do-migrate → cc_session_tools-3.3.2/src/cc_session_tools/skills/pm-pdata-do-manual-migration}/SKILL.md +7 -7
- {cc_session_tools-3.3.0/src/cc_session_tools/skills/pm-pdata-conflict-resolution → cc_session_tools-3.3.2/src/cc_session_tools/skills/pm-pdata-resolve-conflicts}/SKILL.md +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/pm-project-layout-reference/SKILL.md +2 -2
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2/src/cc_session_tools.egg-info}/PKG-INFO +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools.egg-info/SOURCES.txt +4 -4
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_bundle_discovery.py +9 -8
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/LICENSE +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/README.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/setup.cfg +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/ccd.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/ccmsg.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/ccr.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/ccs.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/ccsched.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/ccst.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/migrate_ccmsg.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/migrate_ccsched.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/migrate_sessions_db.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/migrate_telemetry.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/config/hooks-bundle.json +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/config/session-tag-hook.json +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/hooks_install.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/claude_flags.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/claude_md_install.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/context_overrides.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/db.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/debug.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/doctor.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/doctor_mutes.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/hook_registry.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/install_sync.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/levenshtein.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/machine_identity.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/addressing.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/cursor.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/lock.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/message.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/move_safety.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/repository.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/retention.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/service.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/store.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/occupancy.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/paths.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/backup.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/dump.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/formatting.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/init_paths.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/naming.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/rehydrate.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/rename_group.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/reorganize.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/repository.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/session_output.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/store.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/sync_check.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/sync_lock.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/sync_notify.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/vector_clock.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/vector_clock_store.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/verify.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/write_log.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/picker.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/proc_lock.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/prompts.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/roots.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/rules.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/bundled_jobs.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/cadence.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/cursor.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/digest.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/due.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/duration.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/jobspec.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/ledger.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/lock.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/notify.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/reconcile.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/registry.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/runner.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/state.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/store.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/surface.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/throttle.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/worker.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/session_gc.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/sessions.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/sessions_db.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/sessions_repair.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/shell_install.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/tasklist.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/telemetry_store.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/prompts/pdata-migration-claude-md-update.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/prompts/pdata-migration-skills-update.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/analyse-cc-usage/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/clean-hook-sessions/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/clean-hook-sessions/scripts/clean-hook-sessions.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/compact-smart/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/context-override/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/delete-sessions/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/delete-sessions/scripts/delete_sessions.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/do-executor-critic-assessor-loop/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/find-claude-code-session/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/generate-8digit-code/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/generate-8digit-code/scripts/generate_8digit_code.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/list-empty-sessions/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/list-empty-sessions/scripts/list_empty_sessions.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/manage-recurring-cc-jobs-using-ccsched/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/move-session/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/move-session/hooks/sessionstart-pending-rename.sh +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/move-session/scripts/cc_session_rules.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/move-session/scripts/move_session.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/pm-update-central-files/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/reduce-persistent-context/CALIBRATION.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/reduce-persistent-context/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/reduce-persistent-context/scripts/analyze_context.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/reduce-persistent-context/scripts/duplicates.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/reduce-persistent-context/scripts/measure.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/reduce-persistent-context/scripts/report.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/reduce-persistent-context/scripts/tokens.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/reduce-persistent-context/scripts/usage.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/select-agent-model/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/send-session-message/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/update-command-cache/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/update-command-cache/scripts/update_command_cache.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools.egg-info/dependency_links.txt +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools.egg-info/entry_points.txt +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools.egg-info/requires.txt +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools.egg-info/top_level.txt +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/attribution.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/cache.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/ccusage_wrapper.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/data/pricing.json +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/parent_inference.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/parser.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/pricing.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/query.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/report.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/schema.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/session_names.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/after_response.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/bash_hard_deny.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/bash_security_review.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/cache.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/catchup.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/confirm_8digit.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/context_window_warning.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/last_screenshot.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/marker_allow.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/markers.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/messaging_deliver.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/model_info.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/normalise.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/pdata_sync.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/pending_migration.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/pending_rename.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/session_tag.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/stats.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/telemetry.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/telemetry_query.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/telemetry_trim.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/transcript.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/worklog_guard.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_after_response.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_attribution.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_bash_hard_deny.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_bash_security_review.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cache.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cache_sqlite.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccr_orphans.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccs_emptiness.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccs_eta.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccs_list_mode.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccs_scope_flags.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccs_sentinel_sort.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccs_session_counts.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_ccsched_jobs_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_context_override_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_doctor.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_gc_prune.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_gc_report.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_hook_dispatcher.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_hooks_install_prune.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_hooks_install_zero_arg.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_hooks_uninstall.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_install_everything.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_machine_identity_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_main_gate.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_pdata_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_pdata_init_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_pdata_reconcile_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_pdata_rename_group_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_pdata_reorganize_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_pdata_sync_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_pdata_verify_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_repair_sessions_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_sessions_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_shell_install.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_skills_install.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_skills_uninstall.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_telemetry_query.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_telemetry_trim.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccusage_wrapper.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_claude_flags.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_claude_md_install.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cli_ccd.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cli_ccd_dry_run.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cli_ccr.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cli_ccs.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cli_version.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_confirm_8digit.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_context_overrides.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_context_window_warning.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_db.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_debug.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_doctor_mutes.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_empty_session.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_hook_cache.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_hooks_install.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_install_sync.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_last_screenshot.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_levenshtein.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_machine_identity.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_marker_allow.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_migrate_ccmsg.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_migrate_ccsched.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_migrate_sessions_db.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_migrate_telemetry.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_model_info.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_normalise.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_occupancy.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_parent_inference.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_parser.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_paths.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_pending_migration_hook.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_picker.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_pricing.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_proc_lock.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_prompts.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_query.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_report.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_roots.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_rules.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_scheduler_bundled_jobs.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_schema.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_session_names.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_session_tag.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_sessions.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_sessions_db.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_sessions_repair.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_tasklist.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_telemetry.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_telemetry_store.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_transcript.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_worklog_guard.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "cc-session-tools"
|
|
7
|
-
version = "3.3.
|
|
7
|
+
version = "3.3.2"
|
|
8
8
|
description = "Claude Code session management CLI tools (ccd, ccr, ccs, claude-code-usage, ccst) and hook library (hooks package)"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { file = "LICENSE" }
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/classify.py
RENAMED
|
@@ -8,7 +8,7 @@ apart by a generic scan; guessing wrong here would silently bake a per-project
|
|
|
8
8
|
judgement call into shared tooling, which this plan must not do (see the
|
|
9
9
|
per-project inventory doc, not this module, for those calls). Every markdown/
|
|
10
10
|
text/unknown-extension file defaults to folder-owned; a human (via the
|
|
11
|
-
pm-
|
|
11
|
+
pm-pdata-do-init skill) reviews the printed report and flips individual entries
|
|
12
12
|
to db-owned with an explicit record_group/strategy.
|
|
13
13
|
"""
|
|
14
14
|
from __future__ import annotations
|
|
@@ -14,7 +14,7 @@ from cc_session_tools.lib.pdata.manifest import ManifestEntry
|
|
|
14
14
|
def _pointer_file_content(*, project: str, entry: ManifestEntry) -> str:
|
|
15
15
|
"""Generic pointer content (spec pdata/init-pointer-files): the record_group now
|
|
16
16
|
holding this file's data, its field/schema table, and an example query — plus,
|
|
17
|
-
when the entry carries preface_text (set by hand per pm-
|
|
17
|
+
when the entry carries preface_text (set by hand per pm-pdata-do-init's
|
|
18
18
|
garbled-CSV-header fix recipe), that text verbatim under its own heading."""
|
|
19
19
|
lines = [
|
|
20
20
|
f"# {Path(entry.path).name} — migrated to pdata",
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/importers.py
RENAMED
|
@@ -89,7 +89,7 @@ def import_json_array_rows(project_root: Path, entry: ManifestEntry) -> list[Imp
|
|
|
89
89
|
path = project_root / entry.path
|
|
90
90
|
created_at = _mtime(path)
|
|
91
91
|
data: Any = json.loads(path.read_text(encoding="utf-8"))
|
|
92
|
-
# A hand-edited manifest entry (pm-
|
|
92
|
+
# A hand-edited manifest entry (pm-pdata-do-init Step 4 instructs editing this
|
|
93
93
|
# file directly) can assign 'json-array-rows' to a file whose actual JSON
|
|
94
94
|
# shape isn't an array of objects. Validate the shape here and raise
|
|
95
95
|
# ValueError — the exact exception type write()'s per-entry
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/init_service.py
RENAMED
|
@@ -136,7 +136,7 @@ def _render_report(m: Manifest) -> str:
|
|
|
136
136
|
lines.append(
|
|
137
137
|
" ⚠ worth double-checking — these field names read as sentence "
|
|
138
138
|
"fragments, not column names; this file's header may not be what it "
|
|
139
|
-
"looks like (see pm-
|
|
139
|
+
"looks like (see pm-pdata-do-init's garbled-CSV-header caveat)"
|
|
140
140
|
)
|
|
141
141
|
lines.append(
|
|
142
142
|
"Review/override entries in the proposal file listed below before running --write."
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/manifest.py
RENAMED
|
@@ -44,7 +44,7 @@ class ManifestEntry:
|
|
|
44
44
|
# --write skips any entry that already carries one instead of re-importing it
|
|
45
45
|
# (spec pdata/init-write-idempotency). None for an entry never yet migrated.
|
|
46
46
|
migrated_at: str | None = None
|
|
47
|
-
# Hand-set during review (pm-
|
|
47
|
+
# Hand-set during review (pm-pdata-do-init's garbled-CSV-header fix recipe):
|
|
48
48
|
# header/provenance text stripped from the source file before migration,
|
|
49
49
|
# preserved verbatim here so cutover.archive_entries can carry it into the
|
|
50
50
|
# entry's pointer file (spec pdata/init-pointer-files). None when not applicable.
|
|
@@ -95,7 +95,7 @@ def load(path: Path) -> Manifest:
|
|
|
95
95
|
"""Raises ValueError (never a raw KeyError/TypeError/AttributeError) for any
|
|
96
96
|
malformed proposal file — a missing "project"/"entries" key, an "entries" that
|
|
97
97
|
isn't a list, an entry that isn't an object, or an entry with an unexpected
|
|
98
|
-
field shape. This is a real hand-edit surface (pm-
|
|
98
|
+
field shape. This is a real hand-edit surface (pm-pdata-do-init Step 4
|
|
99
99
|
instructs editing this file directly), so a shape error here must reach
|
|
100
100
|
_cmd_pdata_init's `except (FileNotFoundError, ValueError)` and dry_run's
|
|
101
101
|
`except ValueError` and produce the documented exit-2 validation error instead
|
|
@@ -8,7 +8,7 @@ overwrite (that is rehydrate.py's job for the clean fast-forward case; this modu
|
|
|
8
8
|
|
|
9
9
|
Never auto-merges, never silently keeps one side and discards the other — every record surfaced
|
|
10
10
|
here needs an explicit choice from the caller (ultimately Chris, via the CLI/skill), matching the
|
|
11
|
-
existing `pm-pdata-
|
|
11
|
+
existing `pm-pdata-resolve-conflicts` skill's single-file-conflict framing exactly. Every
|
|
12
12
|
record: `apply_resolution` is all-or-nothing over the whole diff, for the reasons in its own
|
|
13
13
|
docstring.
|
|
14
14
|
|
|
@@ -342,7 +342,7 @@ def _apply_resolution(
|
|
|
342
342
|
f"record_id(s) {collisions}: id collision (the same id was independently assigned to "
|
|
343
343
|
f"two unrelated records) — not resolvable as a local/dump choice, since either pick "
|
|
344
344
|
f"would discard one side's real record; needs a manual, out-of-band fix (see the "
|
|
345
|
-
f"pm-pdata-
|
|
345
|
+
f"pm-pdata-resolve-conflicts skill, point 4)"
|
|
346
346
|
)
|
|
347
347
|
|
|
348
348
|
group_mismatches = sorted(rid for rid, rd in by_id.items() if rd.group_mismatch)
|
|
@@ -351,7 +351,7 @@ def _apply_resolution(
|
|
|
351
351
|
f"record_id(s) {group_mismatches}: group mismatch (same id and created_at, but the "
|
|
352
352
|
f"two sides disagree on record_group) — not resolvable as a local/dump choice. "
|
|
353
353
|
f"Compare each side's content/file_path before assuming a rename is safe (see the "
|
|
354
|
-
f"pm-pdata-
|
|
354
|
+
f"pm-pdata-resolve-conflicts skill, point 5, for why it may instead be a "
|
|
355
355
|
f"same-second id collision), then retry"
|
|
356
356
|
)
|
|
357
357
|
|
|
@@ -310,7 +310,7 @@ def update_record(
|
|
|
310
310
|
content and fields are independent — updating fields never re-serializes content, and vice
|
|
311
311
|
versa. This is deliberate (it's what lets a --field-only update skip resending content), not
|
|
312
312
|
a gap: a record group whose content is designed to mirror its fields is the caller's own
|
|
313
|
-
duplication to keep in sync, on every write, by passing both. See pm-pdata-schema
|
|
313
|
+
duplication to keep in sync, on every write, by passing both. See pm-pdata-design-schema
|
|
314
314
|
SKILL.md's "content and extension fields are never auto-synced" section."""
|
|
315
315
|
if content is None and file_path is None and not fields:
|
|
316
316
|
raise ValueError(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: pm-pdata-schema
|
|
2
|
+
name: pm-pdata-design-schema
|
|
3
3
|
description: Use before writing a genuinely new kind of structured data into any project's ccst pdata store - deciding whether it fits an existing record_group, needs a brand-new group, and whether that group needs an extension table or free-text content suffices. Triggers on "I need to track a new kind of record", "what record_group should this be", "does this need an extension table", "add a new field to ccst pdata", or any session about to call `ccst pdata add`/`schema add-field` for a record shape it hasn't used before. Prevents lazy catch-all groups (`notes`/`misc`) that silently recreate the EAV undifferentiated-bucket problem the schema deliberately rejected.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pm-pdata-do-audit-and-prepare-to-migrate
|
|
3
|
-
description: Full consistency/completeness audit of a project's central and recordkeeping files - OneDrive sync-conflict cleanup, cross-checking every index/register/log against what it claims to describe, and a pdata-migration readiness pass. Ends by writing a readiness manifest file that feeds `ccst pdata init` (via `pm-
|
|
3
|
+
description: Full consistency/completeness audit of a project's central and recordkeeping files - OneDrive sync-conflict cleanup, cross-checking every index/register/log against what it claims to describe, and a pdata-migration readiness pass. Ends by writing a readiness manifest file that feeds `ccst pdata init` (via `pm-pdata-do-init`) - the tool-native migration mechanism - and, only for the narrow record shapes it can't express, the deprecated `pm-pdata-do-manual-migration` fallback. Triggers on "review all my central files", "audit the project files", "check everything is up to date and consistent", "get this project ready for pdata", "/pm-pdata-do-audit-and-prepare-to-migrate", or any request for a thorough review/health-check of a project's index/log/register files (as opposed to a single-session wrap-up, which is pm-update-central-files). Especially relevant when a project is scheduled to migrate to pdata - this audit is the recommended prerequisite pass, since a schema design should not be built against files that still have unresolved sync-conflict duplicates or known dangling rows.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Audit central files
|
|
7
7
|
|
|
8
8
|
> **This audit feeds `ccst pdata init`, not a manual migration.** The readiness manifest this
|
|
9
9
|
> skill produces (Phase 5) is a pre-flight pass for `ccst pdata init` (driven by the
|
|
10
|
-
> `pm-
|
|
10
|
+
> `pm-pdata-do-init` skill) - the tool-native, default migration mechanism. `pm-pdata-do-manual-migration`
|
|
11
11
|
> is a deprecated fallback for record shapes `ccst pdata init` genuinely can't express; it is not
|
|
12
12
|
> the default next step after this audit.
|
|
13
13
|
|
|
@@ -121,7 +121,7 @@ Give the user a single reviewable delete script for every confirmed-safe deletio
|
|
|
121
121
|
## Phase 4: pdata-readiness pass
|
|
122
122
|
|
|
123
123
|
Compile a dedicated `pdata-readiness-notes.md` (or equivalent) listing, file by file, every
|
|
124
|
-
blocker a future `pm-pdata-schema
|
|
124
|
+
blocker a future `pm-pdata-design-schema` session would hit if it tried to design a schema
|
|
125
125
|
against the file as it currently stands:
|
|
126
126
|
|
|
127
127
|
- Inconsistent separator/delimiter use within one logical column.
|
|
@@ -137,10 +137,10 @@ against the file as it currently stands:
|
|
|
137
137
|
means something different from a genuinely blank one).
|
|
138
138
|
|
|
139
139
|
This file is deliberately NOT a migration plan - it's a findings list for whoever runs the actual
|
|
140
|
-
`pm-pdata-schema
|
|
140
|
+
`pm-pdata-design-schema` session next, so that work isn't designed against a still-messy
|
|
141
141
|
substrate.
|
|
142
142
|
|
|
143
|
-
## Phase 5: write the readiness manifest (for `ccst pdata init`/`pm-
|
|
143
|
+
## Phase 5: write the readiness manifest (for `ccst pdata init`/`pm-pdata-do-init` to consume)
|
|
144
144
|
|
|
145
145
|
Once the audit reaches a settled state (per your own stopping rule - typically two consecutive
|
|
146
146
|
clean verification rounds, or a documented pragmatic stop), write one machine-and-human-readable
|
|
@@ -151,8 +151,8 @@ otherwise the project's own top-level docs location. Its existence and location
|
|
|
151
151
|
recorded in the project's own instructions file (`CLAUDE.md`/`AGENTS.md`/equivalent) so a future
|
|
152
152
|
session doesn't have to search for it.
|
|
153
153
|
|
|
154
|
-
The manifest must have, in this order, so a `pm-
|
|
155
|
-
(or, for the narrow record shapes it can't express, the deprecated `pm-pdata-do-
|
|
154
|
+
The manifest must have, in this order, so a `pm-pdata-do-init` session running `ccst pdata init`
|
|
155
|
+
(or, for the narrow record shapes it can't express, the deprecated `pm-pdata-do-manual-migration`
|
|
156
156
|
fallback) can parse it deterministically:
|
|
157
157
|
|
|
158
158
|
1. **Header**: audit date, session/agent identifier, and an explicit "STALE IF" note - state the
|
|
@@ -161,8 +161,8 @@ fallback) can parse it deterministically:
|
|
|
161
161
|
2. **File inventory**: every central/index/recordkeeping file the audit covered, with: full path,
|
|
162
162
|
row/entry count, last-verified-clean date, and its role (`index`, `register`, `log`,
|
|
163
163
|
`narrative`, `derived-artefact`).
|
|
164
|
-
3. **Per-file migration blockers**, in the exact shape `pm-pdata-schema
|
|
165
|
-
`pm-
|
|
164
|
+
3. **Per-file migration blockers**, in the exact shape `pm-pdata-design-schema` and
|
|
165
|
+
`pm-pdata-do-init` expect to consume - this is the same content this skill's own Phase 4
|
|
166
166
|
already produces, just formalised into the manifest rather than a standalone prose report:
|
|
167
167
|
inconsistent separators, unstable/non-existent natural keys, mixed date formats, multi-schema
|
|
168
168
|
single files, machine-specific paths, null-value conventions that aren't real nulls.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: pm-
|
|
3
|
-
description: Use when initializing a brand-new project's ccst pdata store, or migrating an existing ~/cc/<project>'s informally-accumulated flat files into it - drives `ccst pdata init` and applies judgement reviewing its classification report (spec §3's folder-owned/db-owned framework), since the tool's own defaults are deliberately conservative and need a human decision on every ambiguous file. Triggers - "migrate <project> to pdata", "run pdata init for <project>", "set up the data store for <project>", "/pm-
|
|
2
|
+
name: pm-pdata-do-init
|
|
3
|
+
description: Use when initializing a brand-new project's ccst pdata store, or migrating an existing ~/cc/<project>'s informally-accumulated flat files into it - drives `ccst pdata init` and applies judgement reviewing its classification report (spec §3's folder-owned/db-owned framework), since the tool's own defaults are deliberately conservative and need a human decision on every ambiguous file. Triggers - "migrate <project> to pdata", "run pdata init for <project>", "set up the data store for <project>", "/pm-pdata-do-init". Do NOT use for ccst pdata verify, per-record-group schema design (pm-pdata-design-schema), or version-conflict reconciliation (pm-pdata-resolve-conflicts) - those are separate skills.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# pm-
|
|
6
|
+
# pm-pdata-do-init
|
|
7
7
|
|
|
8
8
|
Drives `ccst pdata init` (spec §7) end to end and applies the judgement the tool itself
|
|
9
9
|
deliberately does not: `ccst pdata init`'s automatic classifier only proposes CSV/JSON files as
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: pm-pdata-do-
|
|
3
|
-
description: Execute a project's actual migration from flat central/index files to a ccst pdata record store - build a migration plan, adversarially verify the plan itself, present it for the user's confirmation, then execute it and write a results file. Consumes the readiness manifest pm-pdata-do-audit-and-prepare-to-migrate produces if one exists, but always explores the project independently too, so it works even without that manifest. Triggers on "migrate this project to pdata", "run the pdata migration", "/pm-pdata-do-
|
|
2
|
+
name: pm-pdata-do-manual-migration
|
|
3
|
+
description: Execute a project's actual migration from flat central/index files to a ccst pdata record store - build a migration plan, adversarially verify the plan itself, present it for the user's confirmation, then execute it and write a results file. Consumes the readiness manifest pm-pdata-do-audit-and-prepare-to-migrate produces if one exists, but always explores the project independently too, so it works even without that manifest. Triggers on "migrate this project to pdata", "run the pdata migration", "/pm-pdata-do-manual-migration", or any request to actually move a project's CSV/index/log files into pdata (as opposed to just auditing readiness, which is pm-pdata-do-audit-and-prepare-to-migrate, or designing the target schema in the abstract, which is pm-pdata-design-schema).
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Manually migrate a project to pdata (deprecated fallback)
|
|
7
7
|
|
|
8
8
|
> **Deprecated fallback — `ccst pdata init` is the standard mechanism.** `ccst pdata init`
|
|
9
|
-
> (driven by the `pm-
|
|
9
|
+
> (driven by the `pm-pdata-do-init` skill) is the tool-native migration mechanism: classification,
|
|
10
10
|
> a human-reviewable manifest, backup, verify, atomic cutover, and shipped post-write doc/skill-
|
|
11
11
|
> update prompts. It is the default choice wherever it is available, and this skill is superseded
|
|
12
12
|
> by it for any file `ccst pdata init`'s classifier can already handle (a normal CSV/JSON file
|
|
@@ -25,9 +25,9 @@ description: Execute a project's actual migration from flat central/index files
|
|
|
25
25
|
|
|
26
26
|
- `pm-pdata-do-audit-and-prepare-to-migrate` - readiness audit. Finds and fixes problems in the CURRENT flat files.
|
|
27
27
|
Produces a readiness manifest. Does not touch pdata at all.
|
|
28
|
-
- `pm-pdata-schema
|
|
28
|
+
- `pm-pdata-design-schema` - designs the TARGET record-group schema in the abstract (field names,
|
|
29
29
|
types, groupings) before any data moves.
|
|
30
|
-
- `pm-pdata-do-
|
|
30
|
+
- `pm-pdata-do-manual-migration` (this skill) - takes whatever schema exists (designed via the skill above,
|
|
31
31
|
or designed inline as part of this skill's own plan if no separate design session happened) and
|
|
32
32
|
actually moves the data: `ccst pdata add`/`batch` calls, verification, and a results record.
|
|
33
33
|
|
|
@@ -59,7 +59,7 @@ audit pass would.
|
|
|
59
59
|
|
|
60
60
|
## Step 2: design or confirm the target schema
|
|
61
61
|
|
|
62
|
-
For each central file being migrated, decide (or confirm, if `pm-pdata-schema
|
|
62
|
+
For each central file being migrated, decide (or confirm, if `pm-pdata-design-schema` already
|
|
63
63
|
ran):
|
|
64
64
|
|
|
65
65
|
- **Record group name** - typically the file's own conceptual name (`correspondence-log`,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: pm-pdata-
|
|
2
|
+
name: pm-pdata-resolve-conflicts
|
|
3
3
|
description: Use immediately when `ccst pdata update` or `ccst pdata delete` exits 3 (a version conflict) - takes the CLI's current-vs-attempted diff and presents it to Chris for reconciliation, per spec §6.2's "the session asks Chris how to reconcile" contract. Also use when `ccst pdata resolve` reports a cross-machine fork (a `.pdata-db-dump` conflict between two laptops), or phrasing like "pdata update conflict", "version conflict on a record", "someone else already updated this row", "sync conflict", "pdata fork between machines". Never auto-retries, never silently picks a side, never discards either version.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pm-project-layout-reference
|
|
3
|
-
description: Canonical reference for ~/cc/<project>'s optional folder conventions (correspondence/, meetings-and-calls/, analysis/, workstreams/, workstreams-archived/) and the assessment criteria for using them - which folders a given project needs, when correspondence/ should nest by year, and how a workstream moves from active to archived. Read this before setting up a new project's folders, before reorganising an existing project's layout, or before deciding whether a project's correspondence/ needs splitting. Reference-only - does not perform any reorganisation itself; for an actual flat-to-nested split once you've decided one is needed, see `ccst pdata reorganize`. Triggers - "how should this project be organised", "should correspondence/ be split", "archive this workstream", "/pm-project-layout-reference". Do NOT use for the pdata data-store migration itself (pm-
|
|
3
|
+
description: Canonical reference for ~/cc/<project>'s optional folder conventions (correspondence/, meetings-and-calls/, analysis/, workstreams/, workstreams-archived/) and the assessment criteria for using them - which folders a given project needs, when correspondence/ should nest by year, and how a workstream moves from active to archived. Read this before setting up a new project's folders, before reorganising an existing project's layout, or before deciding whether a project's correspondence/ needs splitting. Reference-only - does not perform any reorganisation itself; for an actual flat-to-nested split once you've decided one is needed, see `ccst pdata reorganize`. Triggers - "how should this project be organised", "should correspondence/ be split", "archive this workstream", "/pm-project-layout-reference". Do NOT use for the pdata data-store migration itself (pm-pdata-do-init) or per-record-group schema design (pm-pdata-design-schema) - those are separate skills; this one is about folder-owned content and structure, not the data store.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# pm-project-layout-reference
|
|
@@ -64,7 +64,7 @@ These criteria apply to any of the folders above, not just `correspondence/`:
|
|
|
64
64
|
|
|
65
65
|
These five folders hold folder-owned content by definition - genuinely file-shaped material
|
|
66
66
|
(attachments, PDFs, `.eml` originals) that isn't a good fit for becoming pdata rows. A project
|
|
67
|
-
being pdata-migrated (see `pm-
|
|
67
|
+
being pdata-migrated (see `pm-pdata-do-init`) says nothing about whether it also has any of these
|
|
68
68
|
five folders, and vice versa - they're orthogonal. `home` is the concrete example: it's
|
|
69
69
|
pdata-migrated (its structured data now lives in SQLite) and still has a live `correspondence/`
|
|
70
70
|
folder full of `.md`+`.pdf` pairs, untouched by the migration, sitting right next to its `data/`
|
|
@@ -123,11 +123,11 @@ src/cc_session_tools/skills/move-session/SKILL.md
|
|
|
123
123
|
src/cc_session_tools/skills/move-session/hooks/sessionstart-pending-rename.sh
|
|
124
124
|
src/cc_session_tools/skills/move-session/scripts/cc_session_rules.py
|
|
125
125
|
src/cc_session_tools/skills/move-session/scripts/move_session.py
|
|
126
|
-
src/cc_session_tools/skills/pm-pdata-
|
|
126
|
+
src/cc_session_tools/skills/pm-pdata-design-schema/SKILL.md
|
|
127
127
|
src/cc_session_tools/skills/pm-pdata-do-audit-and-prepare-to-migrate/SKILL.md
|
|
128
|
-
src/cc_session_tools/skills/pm-pdata-do-
|
|
129
|
-
src/cc_session_tools/skills/pm-pdata-
|
|
130
|
-
src/cc_session_tools/skills/pm-
|
|
128
|
+
src/cc_session_tools/skills/pm-pdata-do-init/SKILL.md
|
|
129
|
+
src/cc_session_tools/skills/pm-pdata-do-manual-migration/SKILL.md
|
|
130
|
+
src/cc_session_tools/skills/pm-pdata-resolve-conflicts/SKILL.md
|
|
131
131
|
src/cc_session_tools/skills/pm-project-layout-reference/SKILL.md
|
|
132
132
|
src/cc_session_tools/skills/pm-update-central-files/SKILL.md
|
|
133
133
|
src/cc_session_tools/skills/reduce-persistent-context/CALIBRATION.md
|
|
@@ -140,17 +140,18 @@ def test_bundled_prompts_are_no_longer_placeholders():
|
|
|
140
140
|
assert "PLACEHOLDER" not in text
|
|
141
141
|
|
|
142
142
|
|
|
143
|
-
def
|
|
144
|
-
"""pm-pdata-do-audit-and-prepare-to-migrate and pm-pdata-do-
|
|
145
|
-
pm-pdata-audit/pm-pdata-migrate in 3.1.0
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
143
|
+
def test_pm_pdata_audit_and_manual_migration_are_bundled_skills():
|
|
144
|
+
"""pm-pdata-do-audit-and-prepare-to-migrate and pm-pdata-do-manual-migration (renamed from
|
|
145
|
+
pm-pdata-audit/pm-pdata-migrate in 3.1.0, then pm-pdata-do-migrate renamed again to
|
|
146
|
+
pm-pdata-do-manual-migration for clarity once it became a deprecated fallback) were built
|
|
147
|
+
directly under ~/.claude/skills/ in an earlier session - moved into this repo's bundled
|
|
148
|
+
skills/ so ccst skills install / install-everything provision them on every machine, not
|
|
149
|
+
just the one they were authored on. No registry to update - _discover_skills is a directory
|
|
150
|
+
scan (any subdir with a SKILL.md), so this test is really asserting the directories/files
|
|
150
151
|
exist and are named correctly."""
|
|
151
152
|
discovered = {p.name for p in ccst._discover_skills(ccst._discover_source_dir())}
|
|
152
153
|
assert "pm-pdata-do-audit-and-prepare-to-migrate" in discovered
|
|
153
|
-
assert "pm-pdata-do-
|
|
154
|
+
assert "pm-pdata-do-manual-migration" in discovered
|
|
154
155
|
|
|
155
156
|
|
|
156
157
|
def test_compact_smart_is_a_bundled_skill():
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/migrate_ccsched.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/migrate_sessions_db.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/migrate_telemetry.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/config/hooks-bundle.json
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/config/session-tag-hook.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/claude_md_install.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/context_overrides.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/machine_identity.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/__init__.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/addressing.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/cursor.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/lock.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/message.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/move_safety.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/repository.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/retention.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/service.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/store.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/formatting.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/init_paths.py
RENAMED
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/rehydrate.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/rename_group.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/reorganize.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/repository.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/session_output.py
RENAMED
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/sync_check.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/sync_lock.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/sync_notify.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/vector_clock.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/write_log.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/__init__.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/bundled_jobs.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/cadence.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/cursor.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/digest.py
RENAMED
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/duration.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/jobspec.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/ledger.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/lock.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/notify.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/reconcile.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/registry.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/runner.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/state.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/store.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/surface.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/throttle.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/worker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/sessions_repair.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/telemetry_store.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|