copilot-session-usage 0.7.2__tar.gz → 0.7.3__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.
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/skills/gh-release-notes/SKILL.md +33 -10
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/workflows/release.yml +1 -1
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/CONTRIBUTING.md +3 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/PKG-INFO +60 -5
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/README.md +59 -4
- copilot_session_usage-0.7.3/docs/articles/presentation.md +90 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/internal/automated_release_proces.md +4 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/src/copilot_session_usage/data/models-and-pricing.lock +3 -3
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/src/copilot_session_usage/data/models-and-pricing.yml +8 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.editorconfig +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.gitattributes +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/changes/requests/skill-breakdown/01-request.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/guidelines/git-commit-message.guideline.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/guidelines/knowledge-base.guidelines.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/pull_request_template.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/skills/consolidate-knowledge-base/SKILL.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/skills/gh-commit-changes/SKILL.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/skills/gh-create-pull-request/SKILL.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/skills/gh-release-notes/scripts/generate_release_notes.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/skills/record-finding/SKILL.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/workflows/ci.yml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/workflows/publish.yml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/workflows/refresh-pricing.yml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/workflows/release-notes.yml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.gitignore +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.readthedocs.yaml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/AGENTS.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/CHANGELOG.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/CONSTITUTION.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/LICENSE +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/_static/changelog.js +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/_static/custom.css +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/changelog.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/conf.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/explanation/how-cost-estimation-works.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/explanation/index.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/how-to/add-commit-trailer.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/how-to/analyze-specific-session.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/how-to/batch-and-spending.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/how-to/export-json.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/how-to/index.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/how-to/wsl2.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/index.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/installation.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/reference/api.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/reference/cli.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/reference/index.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/reference/pricing.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/tutorials/getting-started.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/tutorials/index.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/justfile +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Base.schema.yaml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Concept.schema.yaml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Experiment.schema.yaml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Finding.schema.yaml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Hypothesis.schema.yaml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Outcome.schema.yaml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Playbook.schema.yaml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Principle.schema.yaml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Reference.schema.yaml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Structure.schema.yaml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/concepts/copilot-cli.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/concepts/index.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/concepts/overview.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/concepts/session-cost-analysis.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/concepts/threshold-based-pricing.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/experiments/index.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/experiments/verify-subagent-cost-attribution.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/findings/2026.07.02-00.00-subagent-logs-runsubagent-prefix.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/findings/2026.07.02-22.00-title-generation-not-counted-as-model-turn.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/findings/2026.07.02-23.00-cache-write-approximation.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/findings/2026.07.13-14.27-release-notes-overreported-maintainer-changes.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/findings/2026.07.24-15.01-actions-token-cannot-create-pr.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/findings/2026.08.05-16.24-utility-models-appear-in-logs-but-are-not-billed.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/findings/index.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/guides/automation-scripts.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/guides/cost-optimization.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/guides/index.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/guides/wsl2-setup.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/ideas/index.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/ideas/multi-session-efficiency-analytics.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/index.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/log.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/principles/findings-are-immutable.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/principles/index.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/reference/debug-log-format.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/reference/index.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/reference/pricing-formats.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/structures/cache-cost-approximation.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/structures/index.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/structures/knowledge-base-information-types.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/structures/session-discovery-algorithm.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/structures/subagent-cost-tracking.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/structures/vscode-copilot-extension.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/pyproject.toml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/scripts/refresh_pricing.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/skills/copilot-session-usage/SKILL.md +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/src/copilot_session_usage/__init__.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/src/copilot_session_usage/_internal/__init__.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/src/copilot_session_usage/_internal/copilot_cli.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/src/copilot_session_usage/_internal/core.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/src/copilot_session_usage/_internal/git.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/src/copilot_session_usage/_internal/vscode.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/src/copilot_session_usage/api.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/src/copilot_session_usage/cli.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/src/copilot_session_usage/data/__init__.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/src/copilot_session_usage/data/custom-models-pricing.yml +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/tests/conftest.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/tests/test_api.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/tests/test_cli.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/tests/test_core.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/tests/test_coverage_gaps.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/tests/test_generate_release_notes.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/tests/test_git.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/tests/test_pricing_runtime.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/tests/test_release_notes.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/tests/test_rendering.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/tests/test_vscode.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/tests/test_vscode_platform.py +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/uv.lock +0 -0
- {copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/uv.toml +0 -0
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/skills/gh-release-notes/SKILL.md
RENAMED
|
@@ -10,7 +10,11 @@ user-invocable: true
|
|
|
10
10
|
Generate **end-user-friendly, user-impact-only** release notes by analyzing the actual changes between releases.
|
|
11
11
|
Interactive use requires no script; automated generation and validation use the bundled script described below.
|
|
12
12
|
|
|
13
|
-
The output is meant to be **copy-pasted into a GitHub Release**. It must contain
|
|
13
|
+
The output is meant to be **copy-pasted into a GitHub Release**. It must contain
|
|
14
|
+
release-note sections only: never add a document title, version heading, preamble,
|
|
15
|
+
file summary, commit summary, or closing separator. GitHub already displays the
|
|
16
|
+
release title and version above the body, so do not repeat it in the generated
|
|
17
|
+
Markdown.
|
|
14
18
|
|
|
15
19
|
## Non-negotiable output contract
|
|
16
20
|
|
|
@@ -24,6 +28,11 @@ The output is meant to be **copy-pasted into a GitHub Release**. It must contain
|
|
|
24
28
|
- Never include `## Maintenance` together with any user-facing section. When a
|
|
25
29
|
user-facing change qualifies, omit Maintenance and discard all internal-only
|
|
26
30
|
candidates.
|
|
31
|
+
- Start the output with a permitted `##` section heading. Never emit a `#` heading
|
|
32
|
+
for the version or release title, such as `# v0.7.2`, `# Release v0.7.2`, or
|
|
33
|
+
`# Release notes`.
|
|
34
|
+
- For a maintenance-only release, emit exactly `## Maintenance` and its concise
|
|
35
|
+
maintenance statement. Do not add any title or version heading before it.
|
|
27
36
|
- Before writing the file, inspect the final Markdown for these rules and remove
|
|
28
37
|
any violating bullet or section.
|
|
29
38
|
|
|
@@ -224,7 +233,7 @@ Breaking changes come from:
|
|
|
224
233
|
|
|
225
234
|
### Step 6: Categorize & Format
|
|
226
235
|
|
|
227
|
-
Organize qualifying changes into buckets. **Only include sections that have content.** Omit empty sections entirely. Do not add a title heading.
|
|
236
|
+
Organize qualifying changes into buckets. **Only include sections that have content.** Omit empty sections entirely. Do not add a title heading or version heading. The first line must be one of the permitted `##` section headings.
|
|
228
237
|
|
|
229
238
|
The only permitted headings are `## New Features`, `## Enhancements`, `## Bug
|
|
230
239
|
Fixes`, `## Breaking Changes`, `## Examples`, `## Documentation`, and
|
|
@@ -239,13 +248,13 @@ replace the missing URL with a repository path, an unlinked description, or a
|
|
|
239
248
|
claim that documentation was updated.
|
|
240
249
|
|
|
241
250
|
If no qualifying user-facing change exists, emit exactly one concise `## Maintenance`
|
|
242
|
-
section. Explain generically that the release contains
|
|
243
|
-
improvements without naming CI, workflows, release
|
|
244
|
-
tests, commits, pull requests, governance files,
|
|
245
|
-
files. Do not invent a feature, user benefit,
|
|
246
|
-
publish `Internal` or an empty maintenance
|
|
247
|
-
change exists, omit Maintenance entirely; do
|
|
248
|
-
internal changes.
|
|
251
|
+
section as the first and only heading. Explain generically that the release contains
|
|
252
|
+
maintenance and internal improvements without naming CI, workflows, release
|
|
253
|
+
automation, internal guidelines, tests, commits, pull requests, governance files,
|
|
254
|
+
documentation files, or individual files. Do not invent a feature, user benefit,
|
|
255
|
+
example, or documentation link. Never publish `Internal` or an empty maintenance
|
|
256
|
+
section. If at least one user-facing change exists, omit Maintenance entirely; do
|
|
257
|
+
not use it as a bucket for leftover internal changes.
|
|
249
258
|
|
|
250
259
|
`## Maintenance` and a user-facing section are mutually exclusive. If any
|
|
251
260
|
Enhancements, New Features, Bug Fixes, Breaking Changes, Examples, or qualifying
|
|
@@ -317,6 +326,18 @@ Use absolute HTTPS URLs, and omit a documentation link when no public page can b
|
|
|
317
326
|
|
|
318
327
|
**Clean markdown** for a GitHub Release body:
|
|
319
328
|
|
|
329
|
+
The following is invalid because the GitHub Release page already supplies the
|
|
330
|
+
version title:
|
|
331
|
+
|
|
332
|
+
```markdown
|
|
333
|
+
# v0.7.2
|
|
334
|
+
|
|
335
|
+
## Bug Fixes
|
|
336
|
+
- Fixed an issue with session discovery
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
Start directly with the release-note section instead:
|
|
340
|
+
|
|
320
341
|
```markdown
|
|
321
342
|
## New Features
|
|
322
343
|
- Added dark mode toggle in settings
|
|
@@ -348,7 +369,9 @@ Use absolute HTTPS URLs, and omit a documentation link when no public page can b
|
|
|
348
369
|
- User impact only (not implementation details, changed-file summaries, CI, internal process, or contributor guidance)
|
|
349
370
|
- Every bullet must describe a benefit or changed capability for ordinary users of the published product
|
|
350
371
|
- Do not include release tooling, Git evidence, validation behavior, governance files, contributor guidance, agent instructions, CI, workflows, or repository housekeeping
|
|
351
|
-
- Do not include a title heading; the GitHub Release supplies the title
|
|
372
|
+
- Do not include a title or version heading; the GitHub Release supplies the title
|
|
373
|
+
- The first line must be a permitted `##` section heading, including `## Maintenance`
|
|
374
|
+
for maintenance-only releases
|
|
352
375
|
- Use public documentation URLs; never use repo-relative paths like `docs/...` or `README.md`
|
|
353
376
|
- For each user-facing bullet, search existing documentation for the closest page about the impacted behavior and link it inline with descriptive Markdown text when available, even when the documentation file was unchanged
|
|
354
377
|
- Use fragment identifiers (`#section-name`) to point to specific docs sections
|
|
@@ -84,7 +84,7 @@ jobs:
|
|
|
84
84
|
bump_args+=(--allow-no-commit)
|
|
85
85
|
fi
|
|
86
86
|
if ! next_version_output="$(uv run --no-sync cz bump "${bump_args[@]}" 2>&1)"; then
|
|
87
|
-
echo "::error::No eligible conventional commits were found for an automatic release."
|
|
87
|
+
echo "::error::No eligible conventional commits were found for an automatic release. You can either wait for a user-impacting feature or bug fix and start a new release, or enable 'Force a patch release when auto finds no eligible commit' when triggering the 'Release' Action."
|
|
88
88
|
printf '%s\n' "$next_version_output"
|
|
89
89
|
exit 1
|
|
90
90
|
fi
|
|
@@ -48,6 +48,9 @@ just docs-serve
|
|
|
48
48
|
2. Run it from the default branch, choosing `auto` to derive the major, minor, or
|
|
49
49
|
patch bump from conventional commits, or choose an explicit bump. Enable
|
|
50
50
|
`force` to create a patch release when `auto` finds no eligible commit.
|
|
51
|
+
If `auto` finds no eligible commit, you can either wait for a user-impacting
|
|
52
|
+
feature or bug fix and start a new release, or enable **Force a patch release
|
|
53
|
+
when auto finds no eligible commit** when triggering the **Release** Action.
|
|
51
54
|
3. The workflow uses Commitizen to calculate the next version, prepares a local
|
|
52
55
|
`vX.Y.Z` tag on the existing default-branch commit, generates notes with the
|
|
53
56
|
`gh-release-notes` skill through `gh copilot`, writes the final Markdown to
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: copilot-session-usage
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.3
|
|
4
4
|
Summary: Usage and cost analytics for GitHub Copilot and Copilot-CLI session logs
|
|
5
5
|
Project-URL: Homepage, https://github.com/gsemet/copilot-session-usage
|
|
6
6
|
Project-URL: Documentation, https://copilot-session-usage.readthedocs.io/en/stable/
|
|
@@ -31,6 +31,59 @@ Extract VS Code Copilot session cost KPIs (tokens, estimated USD, model, duratio
|
|
|
31
31
|
|
|
32
32
|
**Full documentation:** [copilot-session-usage.readthedocs.io](https://copilot-session-usage.readthedocs.io/en/stable/)
|
|
33
33
|
|
|
34
|
+
## Chronicle and copilot-session-usage
|
|
35
|
+
|
|
36
|
+
GitHub Copilot provides **Chronicle** session tools for conversational access to your
|
|
37
|
+
Copilot history. Chronicle and this project are complementary, but they answer different
|
|
38
|
+
questions.
|
|
39
|
+
|
|
40
|
+
### What Chronicle is good at
|
|
41
|
+
|
|
42
|
+
Use Chronicle when you want to:
|
|
43
|
+
|
|
44
|
+
- Find a past session by its title or session ID.
|
|
45
|
+
- Search or summarize what happened in a session.
|
|
46
|
+
- Inspect conversational history, checkpoints, referenced files, and session metadata.
|
|
47
|
+
- Get a quick, conversational summary of aggregate session KPIs when cost analysis is
|
|
48
|
+
available in the current Copilot environment.
|
|
49
|
+
|
|
50
|
+
### What Chronicle is not designed to provide
|
|
51
|
+
|
|
52
|
+
Chronicle's session store is not a token-accounting database. Its stored session records
|
|
53
|
+
contain history and metadata, but do not expose a standard set of per-request pricing
|
|
54
|
+
fields. A Chronicle cost answer may therefore provide an aggregate estimate and a list of
|
|
55
|
+
models without providing a reproducible split of tokens and dollars by model or subagent.
|
|
56
|
+
|
|
57
|
+
### What this project adds
|
|
58
|
+
|
|
59
|
+
`copilot-session-usage` reads the original VS Code Copilot debug logs and turns them into
|
|
60
|
+
repeatable reports. It provides:
|
|
61
|
+
|
|
62
|
+
| Need | Chronicle | `copilot-session-usage` |
|
|
63
|
+
| --- | --- | --- |
|
|
64
|
+
| Conversational search and summaries | ✅ | ✅ CLI reports are interpreted by your agent |
|
|
65
|
+
| Session discovery by title or ID | ✅ | ✅ |
|
|
66
|
+
| Aggregate tokens | ✅ | ✅ |
|
|
67
|
+
| Aggregate estimated cost | ⚠️ When available; aggregate only | ✅ |
|
|
68
|
+
| Tokens **per model** | ⚠️ LLM digging each time; consumes tokens | ✅ |
|
|
69
|
+
| Estimated cost (`$`) **per model** | ❌ No accurate cost per breakdown | ✅ |
|
|
70
|
+
| Tokens **per subagent** | ⚠️ LLM digging each time; consumes tokens | ✅ |
|
|
71
|
+
| Estimated cost (`$`) **per subagent** | ❌ No accurate cost per breakdown | ✅ |
|
|
72
|
+
| Cost attribution to skills | ❌ Cannot provide cost per breakdown | ✅ |
|
|
73
|
+
| Tool-call counts by skill and subagent | ⚠️ LLM digging each time | ✅ |
|
|
74
|
+
| Batch analysis, filtering, and aggregation | Limited/conversational | ✅ |
|
|
75
|
+
| Stable JSON, table, and detailed output | No stable contract | ✅ |
|
|
76
|
+
| Python API for embedding in third-party tools | ❌ | ✅ |
|
|
77
|
+
| Pricing provenance and custom model rates | ⚠️ Only for aggregated costs | ✅ |
|
|
78
|
+
| Git commit cost trailers | ❌ | ✅ |
|
|
79
|
+
|
|
80
|
+
In the table, `⚠️` means that Chronicle may answer the question in a particular
|
|
81
|
+
environment or with additional analysis, but does not guarantee a stable, reproducible
|
|
82
|
+
breakdown for it.
|
|
83
|
+
|
|
84
|
+
Use Chronicle for **“What did I do?”** and use this project for **“How much did it cost,
|
|
85
|
+
which model or subagent consumed it, and can I export the evidence?”**
|
|
86
|
+
|
|
34
87
|
## Installation
|
|
35
88
|
|
|
36
89
|
```bash
|
|
@@ -110,7 +163,7 @@ just knowledge-validate
|
|
|
110
163
|
|---------|-------------|
|
|
111
164
|
| `analyze [PATH]` | Analyze one session by PATH, or many by `--name` regex |
|
|
112
165
|
| `latest` | Analyze the most recently modified session |
|
|
113
|
-
| `find TITLE` | Find and analyze a session by title (
|
|
166
|
+
| `find TITLE` | Find and analyze a session by title (case-insensitive substring match) |
|
|
114
167
|
| `id SESSION_ID` | Analyze a session by exact UUID |
|
|
115
168
|
| `list` | List recent sessions (metadata only by default) |
|
|
116
169
|
| `batch N` | Analyze the N most recent sessions in one pass |
|
|
@@ -140,7 +193,7 @@ just knowledge-validate
|
|
|
140
193
|
| `--workspace-storage PATH` | Override workspaceStorage directory (auto-detected by default) |
|
|
141
194
|
| `--agent {vscode,cli}` | Provider to use (`cli` not yet implemented) |
|
|
142
195
|
| `--detail {minimal,compact,full}` | Detail level (default: `compact`) |
|
|
143
|
-
| `--format {json,table,detailed}` | Output format (default: `
|
|
196
|
+
| `--format {json,table,detailed}` | Output format (default: `json`) |
|
|
144
197
|
| `--output PATH` | Write output to file instead of stdout |
|
|
145
198
|
|
|
146
199
|
### Examples
|
|
@@ -157,8 +210,8 @@ $ copilot-session-usage latest --detail full
|
|
|
157
210
|
# JSON output for a specific session
|
|
158
211
|
$ copilot-session-usage analyze /path/to/debug-logs --format json --output report.json
|
|
159
212
|
|
|
160
|
-
# Find sessions containing "
|
|
161
|
-
$ copilot-session-usage find "
|
|
213
|
+
# Find sessions containing "implem" in the title
|
|
214
|
+
$ copilot-session-usage find "implem"
|
|
162
215
|
Multiple sessions match 'implem':
|
|
163
216
|
2026-07-01T21:15:12Z 'Implement copilot-session-usage spec' (id: c890dd60-43d6-44f0-b57c-ab505dfa003b)
|
|
164
217
|
2026-06-26T18:21:21Z 'Resume PRD implementation' (id: 9368ab3e-1c93-4125-8271-d5bd024b057a)
|
|
@@ -241,6 +294,8 @@ copilot-session-usage latest \
|
|
|
241
294
|
## Python API
|
|
242
295
|
|
|
243
296
|
```python
|
|
297
|
+
from pathlib import Path
|
|
298
|
+
|
|
244
299
|
from copilot_session_usage.api import (
|
|
245
300
|
analyze_session,
|
|
246
301
|
analyze_latest,
|
|
@@ -13,6 +13,59 @@ Extract VS Code Copilot session cost KPIs (tokens, estimated USD, model, duratio
|
|
|
13
13
|
|
|
14
14
|
**Full documentation:** [copilot-session-usage.readthedocs.io](https://copilot-session-usage.readthedocs.io/en/stable/)
|
|
15
15
|
|
|
16
|
+
## Chronicle and copilot-session-usage
|
|
17
|
+
|
|
18
|
+
GitHub Copilot provides **Chronicle** session tools for conversational access to your
|
|
19
|
+
Copilot history. Chronicle and this project are complementary, but they answer different
|
|
20
|
+
questions.
|
|
21
|
+
|
|
22
|
+
### What Chronicle is good at
|
|
23
|
+
|
|
24
|
+
Use Chronicle when you want to:
|
|
25
|
+
|
|
26
|
+
- Find a past session by its title or session ID.
|
|
27
|
+
- Search or summarize what happened in a session.
|
|
28
|
+
- Inspect conversational history, checkpoints, referenced files, and session metadata.
|
|
29
|
+
- Get a quick, conversational summary of aggregate session KPIs when cost analysis is
|
|
30
|
+
available in the current Copilot environment.
|
|
31
|
+
|
|
32
|
+
### What Chronicle is not designed to provide
|
|
33
|
+
|
|
34
|
+
Chronicle's session store is not a token-accounting database. Its stored session records
|
|
35
|
+
contain history and metadata, but do not expose a standard set of per-request pricing
|
|
36
|
+
fields. A Chronicle cost answer may therefore provide an aggregate estimate and a list of
|
|
37
|
+
models without providing a reproducible split of tokens and dollars by model or subagent.
|
|
38
|
+
|
|
39
|
+
### What this project adds
|
|
40
|
+
|
|
41
|
+
`copilot-session-usage` reads the original VS Code Copilot debug logs and turns them into
|
|
42
|
+
repeatable reports. It provides:
|
|
43
|
+
|
|
44
|
+
| Need | Chronicle | `copilot-session-usage` |
|
|
45
|
+
| --- | --- | --- |
|
|
46
|
+
| Conversational search and summaries | ✅ | ✅ CLI reports are interpreted by your agent |
|
|
47
|
+
| Session discovery by title or ID | ✅ | ✅ |
|
|
48
|
+
| Aggregate tokens | ✅ | ✅ |
|
|
49
|
+
| Aggregate estimated cost | ⚠️ When available; aggregate only | ✅ |
|
|
50
|
+
| Tokens **per model** | ⚠️ LLM digging each time; consumes tokens | ✅ |
|
|
51
|
+
| Estimated cost (`$`) **per model** | ❌ No accurate cost per breakdown | ✅ |
|
|
52
|
+
| Tokens **per subagent** | ⚠️ LLM digging each time; consumes tokens | ✅ |
|
|
53
|
+
| Estimated cost (`$`) **per subagent** | ❌ No accurate cost per breakdown | ✅ |
|
|
54
|
+
| Cost attribution to skills | ❌ Cannot provide cost per breakdown | ✅ |
|
|
55
|
+
| Tool-call counts by skill and subagent | ⚠️ LLM digging each time | ✅ |
|
|
56
|
+
| Batch analysis, filtering, and aggregation | Limited/conversational | ✅ |
|
|
57
|
+
| Stable JSON, table, and detailed output | No stable contract | ✅ |
|
|
58
|
+
| Python API for embedding in third-party tools | ❌ | ✅ |
|
|
59
|
+
| Pricing provenance and custom model rates | ⚠️ Only for aggregated costs | ✅ |
|
|
60
|
+
| Git commit cost trailers | ❌ | ✅ |
|
|
61
|
+
|
|
62
|
+
In the table, `⚠️` means that Chronicle may answer the question in a particular
|
|
63
|
+
environment or with additional analysis, but does not guarantee a stable, reproducible
|
|
64
|
+
breakdown for it.
|
|
65
|
+
|
|
66
|
+
Use Chronicle for **“What did I do?”** and use this project for **“How much did it cost,
|
|
67
|
+
which model or subagent consumed it, and can I export the evidence?”**
|
|
68
|
+
|
|
16
69
|
## Installation
|
|
17
70
|
|
|
18
71
|
```bash
|
|
@@ -92,7 +145,7 @@ just knowledge-validate
|
|
|
92
145
|
|---------|-------------|
|
|
93
146
|
| `analyze [PATH]` | Analyze one session by PATH, or many by `--name` regex |
|
|
94
147
|
| `latest` | Analyze the most recently modified session |
|
|
95
|
-
| `find TITLE` | Find and analyze a session by title (
|
|
148
|
+
| `find TITLE` | Find and analyze a session by title (case-insensitive substring match) |
|
|
96
149
|
| `id SESSION_ID` | Analyze a session by exact UUID |
|
|
97
150
|
| `list` | List recent sessions (metadata only by default) |
|
|
98
151
|
| `batch N` | Analyze the N most recent sessions in one pass |
|
|
@@ -122,7 +175,7 @@ just knowledge-validate
|
|
|
122
175
|
| `--workspace-storage PATH` | Override workspaceStorage directory (auto-detected by default) |
|
|
123
176
|
| `--agent {vscode,cli}` | Provider to use (`cli` not yet implemented) |
|
|
124
177
|
| `--detail {minimal,compact,full}` | Detail level (default: `compact`) |
|
|
125
|
-
| `--format {json,table,detailed}` | Output format (default: `
|
|
178
|
+
| `--format {json,table,detailed}` | Output format (default: `json`) |
|
|
126
179
|
| `--output PATH` | Write output to file instead of stdout |
|
|
127
180
|
|
|
128
181
|
### Examples
|
|
@@ -139,8 +192,8 @@ $ copilot-session-usage latest --detail full
|
|
|
139
192
|
# JSON output for a specific session
|
|
140
193
|
$ copilot-session-usage analyze /path/to/debug-logs --format json --output report.json
|
|
141
194
|
|
|
142
|
-
# Find sessions containing "
|
|
143
|
-
$ copilot-session-usage find "
|
|
195
|
+
# Find sessions containing "implem" in the title
|
|
196
|
+
$ copilot-session-usage find "implem"
|
|
144
197
|
Multiple sessions match 'implem':
|
|
145
198
|
2026-07-01T21:15:12Z 'Implement copilot-session-usage spec' (id: c890dd60-43d6-44f0-b57c-ab505dfa003b)
|
|
146
199
|
2026-06-26T18:21:21Z 'Resume PRD implementation' (id: 9368ab3e-1c93-4125-8271-d5bd024b057a)
|
|
@@ -223,6 +276,8 @@ copilot-session-usage latest \
|
|
|
223
276
|
## Python API
|
|
224
277
|
|
|
225
278
|
```python
|
|
279
|
+
from pathlib import Path
|
|
280
|
+
|
|
226
281
|
from copilot_session_usage.api import (
|
|
227
282
|
analyze_session,
|
|
228
283
|
analyze_latest,
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
## Title
|
|
2
|
+
|
|
3
|
+
I built `copilot-session-usage`: inspect the token usage and estimated cost of VS Code Copilot sessions
|
|
4
|
+
|
|
5
|
+
## Post
|
|
6
|
+
|
|
7
|
+
I’ve released [`copilot-session-usage`](https://github.com/gsemet/copilot-session-usage), an open-source Python CLI for analyzing VS Code Copilot sessions.
|
|
8
|
+
|
|
9
|
+
VS Code’s UI does not provide a detailed per-session cost report. This tool reads the local Copilot debug logs and reports:
|
|
10
|
+
|
|
11
|
+
- Input, output, and cached token counts
|
|
12
|
+
- Models used during a session
|
|
13
|
+
- Estimated cost in USD
|
|
14
|
+
- Main-conversation versus subagent usage
|
|
15
|
+
- Cost and tool-call attribution by skill
|
|
16
|
+
- Aggregate spending across sessions, workspaces, dates, or features
|
|
17
|
+
- JSON output for scripts and a Python API for integration
|
|
18
|
+
- Optional Git commit trailers containing session usage
|
|
19
|
+
|
|
20
|
+
It supports multi-model sessions, cache-aware pricing, long-context pricing tiers, macOS, Linux, Windows, and WSL2. For Copilot-plan models, it uses the usage value recorded by VS Code when available. For externally billed Azure-hosted models, it falls back to token-based pricing, so reports should be treated as estimates.
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## What this project adds
|
|
24
|
+
|
|
25
|
+
`copilot-session-usage` reads the original VS Code Copilot debug logs and turns them into
|
|
26
|
+
repeatable reports. It provides:
|
|
27
|
+
|
|
28
|
+
| Need | Chronicle | `copilot-session-usage` |
|
|
29
|
+
| --- | --- | --- |
|
|
30
|
+
| Conversational search and summaries | ✅ | ✅ CLI reports are interpreted by your agent |
|
|
31
|
+
| Session discovery by title or ID | ✅ | ✅ |
|
|
32
|
+
| Aggregate tokens | ✅ | ✅ |
|
|
33
|
+
| Aggregate estimated cost | ⚠️ When available; aggregate only | ✅ |
|
|
34
|
+
| Tokens **per model** | ⚠️ LLM digging each time; consumes tokens | ✅ |
|
|
35
|
+
| Estimated cost (`$`) **per model** | ❌ No accurate cost per breakdown | ✅ |
|
|
36
|
+
| Tokens **per subagent** | ⚠️ LLM digging each time; consumes tokens | ✅ |
|
|
37
|
+
| Estimated cost (`$`) **per subagent** | ❌ No accurate cost per breakdown | ✅ |
|
|
38
|
+
| Cost attribution to skills | ❌ Cannot provide cost per breakdown | ✅ |
|
|
39
|
+
| Tool-call counts by skill and subagent | ⚠️ LLM digging each time | ✅ |
|
|
40
|
+
| Batch analysis, filtering, and aggregation | Limited/conversational | ✅ |
|
|
41
|
+
| Stable JSON, table, and detailed output | No stable contract | ✅ |
|
|
42
|
+
| Python API for embedding in third-party tools | ❌ | ✅ |
|
|
43
|
+
| Pricing provenance and custom model rates | ⚠️ Only for aggregated costs | ✅ |
|
|
44
|
+
| Git commit cost trailers | ❌ | ✅ |
|
|
45
|
+
|
|
46
|
+
## Example
|
|
47
|
+
|
|
48
|
+
A typical workflow is simply:
|
|
49
|
+
|
|
50
|
+
`uv tool install copilot-session-usage`
|
|
51
|
+
|
|
52
|
+
Then search for a session ID:
|
|
53
|
+
|
|
54
|
+
`copilot-session-usage find "Get execution costs with Chronicle"`
|
|
55
|
+
|
|
56
|
+
And get details:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
$ copilot-session-usage id "31c51cee-cb1c-4aa5-8c55-83479bcf54da" --format detailed
|
|
60
|
+
Session: 31c51cee-cb1c-4aa5-8c55-83479bcf54da
|
|
61
|
+
Title: Get execution costs with Chronicle
|
|
62
|
+
Started: 2026-08-08T09:16:00Z
|
|
63
|
+
Duration: 1588s (active: 916s)
|
|
64
|
+
Models: claude-opus-4.8, gpt-5.6-luna
|
|
65
|
+
Input: 7,463,752 tokens
|
|
66
|
+
Output: 39,243 tokens
|
|
67
|
+
Cached: 7,050,320 (94%)
|
|
68
|
+
LLM calls: 76
|
|
69
|
+
Est. cost: $1.8836
|
|
70
|
+
|
|
71
|
+
Per-Model Breakdown:
|
|
72
|
+
Model Input Cached Output Calls Cost
|
|
73
|
+
-----------------------------------------------------------
|
|
74
|
+
claude-opus-4.8 1,411,792 1,289,047 9,955 13 $1.66
|
|
75
|
+
gpt-5.6-luna 6,051,960 5,761,273 29,288 63 $0.22
|
|
76
|
+
|
|
77
|
+
Subagents:
|
|
78
|
+
Name Model Input Cached Output Cost
|
|
79
|
+
--------------------------------------------------------------------------------------------------------------
|
|
80
|
+
main gpt-5.6-luna 6,051,960 5,761,273 29,288 $0.22
|
|
81
|
+
Subagent — Claude Opus 4.8-call_CgcUaex8Erf1nChCvxHJtT01 claude-opus-4.8 1,411,792 1,289,047 9,955 $1.66
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Default output is json, perfect for an agent.
|
|
85
|
+
|
|
86
|
+
You can also analyze several sessions together or filter them by title, date, workspace, or skill.
|
|
87
|
+
|
|
88
|
+
This is useful if you use Copilot for substantial agentic work and want a clearer record of what different sessions, models, subagents, or skills actually consumed. It can help with budgeting, comparing workflows, investigating cache usage, and building an auditable usage history without manually inspecting JSONL logs.
|
|
89
|
+
|
|
90
|
+
It is MIT-licensed and available on [GitHub](https://github.com/gsemet/copilot-session-usage) and [PyPI](https://pypi.org/project/copilot-session-usage/).
|
|
@@ -243,6 +243,10 @@ If automatic detection reports no eligible commits and `force` is disabled, the
|
|
|
243
243
|
workflow stops before creating a tag. This is expected for
|
|
244
244
|
changes such as a standalone `ci:` or `chore:` commit.
|
|
245
245
|
|
|
246
|
+
At that point, you can either wait for a user-impacting feature or bug fix and
|
|
247
|
+
start a new release, or enable **Force a patch release when auto finds no
|
|
248
|
+
eligible commit** when triggering the **Release** Action.
|
|
249
|
+
|
|
246
250
|
If `force` is enabled, the workflow intentionally falls back to a patch bump:
|
|
247
251
|
|
|
248
252
|
```text
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_captured": "2026-08-
|
|
2
|
+
"_captured": "2026-08-08T03:44:16.696767+00:00",
|
|
3
3
|
"_source": "https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/models-and-pricing.yml",
|
|
4
4
|
"_yaml_path": "/home/runner/work/copilot-session-usage/copilot-session-usage/src/copilot_session_usage/data/models-and-pricing.yml",
|
|
5
|
-
"model_count":
|
|
6
|
-
"checksum": "
|
|
5
|
+
"model_count": 36,
|
|
6
|
+
"checksum": "a23f8c498f40aff7"
|
|
7
7
|
}
|
|
File without changes
|
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/ISSUE_TEMPLATE/bug_report.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/pull_request_template.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/skills/record-finding/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/workflows/refresh-pricing.yml
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/.github/workflows/release-notes.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/_static/changelog.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/explanation/index.md
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/how-to/add-commit-trailer.md
RENAMED
|
File without changes
|
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/how-to/batch-and-spending.md
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/how-to/export-json.md
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
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/reference/pricing.md
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/docs/source/tutorials/getting-started.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Base.schema.yaml
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Concept.schema.yaml
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Experiment.schema.yaml
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Finding.schema.yaml
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Hypothesis.schema.yaml
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Outcome.schema.yaml
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Playbook.schema.yaml
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Principle.schema.yaml
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Reference.schema.yaml
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/_schema/Structure.schema.yaml
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/concepts/copilot-cli.md
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/guides/automation-scripts.md
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/guides/cost-optimization.md
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
|
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/reference/debug-log-format.md
RENAMED
|
File without changes
|
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/knowledge/reference/pricing-formats.md
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
|
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/skills/copilot-session-usage/SKILL.md
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/src/copilot_session_usage/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/src/copilot_session_usage/api.py
RENAMED
|
File without changes
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/src/copilot_session_usage/cli.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
|
{copilot_session_usage-0.7.2 → copilot_session_usage-0.7.3}/tests/test_generate_release_notes.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
|
|
File without changes
|