copilot-session-usage 0.4.0__tar.gz → 0.5.1__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.5.1/.gitattributes +196 -0
- copilot_session_usage-0.5.1/.github/guidelines/git-commit-message.guideline.md +99 -0
- copilot_session_usage-0.5.1/.github/skills/gh-release-notes/SKILL.md +255 -0
- copilot_session_usage-0.5.1/.readthedocs.yaml +36 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/AGENTS.md +1 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/CHANGELOG.md +13 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/PKG-INFO +2 -1
- copilot_session_usage-0.5.1/docs/source/how-to/add-commit-trailer.md +133 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/how-to/index.md +1 -0
- copilot_session_usage-0.5.1/docs/source/reference/cli.md +11 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/justfile +3 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/pyproject.toml +1 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/skills/copilot-session-usage/SKILL.md +55 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/src/copilot_session_usage/_internal/core.py +258 -91
- copilot_session_usage-0.5.1/src/copilot_session_usage/_internal/git.py +126 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/src/copilot_session_usage/_internal/vscode.py +43 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/src/copilot_session_usage/cli.py +110 -1
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/tests/test_cli.py +137 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/tests/test_core.py +213 -5
- copilot_session_usage-0.5.1/tests/test_git.py +176 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/tests/test_rendering.py +11 -10
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/uv.lock +35 -0
- copilot_session_usage-0.4.0/.readthedocs.yaml +0 -24
- copilot_session_usage-0.4.0/docs/source/reference/cli.md +0 -7
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/.editorconfig +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/.github/changes/requests/skill-breakdown/01-request.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/.github/guidelines/knowledge-base.guidelines.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/.github/pull_request_template.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/.github/skills/consolidate-knowledge-base/SKILL.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/.github/skills/record-finding/SKILL.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/.github/workflows/ci.yml +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/.github/workflows/publish.yml +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/.gitignore +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/CONTRIBUTING.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/LICENSE +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/README.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/_static/changelog.js +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/_static/custom.css +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/changelog.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/conf.py +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/explanation/how-cost-estimation-works.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/explanation/index.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/how-to/analyze-specific-session.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/how-to/batch-and-spending.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/how-to/export-json.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/how-to/wsl2.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/index.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/installation.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/reference/api.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/reference/index.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/reference/pricing.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/tutorials/getting-started.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/docs/source/tutorials/index.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/_schema/Base.schema.yaml +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/_schema/Concept.schema.yaml +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/_schema/Experiment.schema.yaml +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/_schema/Finding.schema.yaml +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/_schema/Hypothesis.schema.yaml +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/_schema/Outcome.schema.yaml +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/_schema/Playbook.schema.yaml +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/_schema/Principle.schema.yaml +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/_schema/Reference.schema.yaml +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/_schema/Structure.schema.yaml +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/concepts/copilot-cli.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/concepts/index.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/concepts/overview.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/concepts/session-cost-analysis.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/concepts/threshold-based-pricing.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/experiments/index.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/experiments/verify-subagent-cost-attribution.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/findings/2026.07.02-00.00-subagent-logs-runsubagent-prefix.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/findings/2026.07.02-22.00-title-generation-not-counted-as-model-turn.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/findings/2026.07.02-23.00-cache-write-approximation.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/findings/index.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/guides/automation-scripts.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/guides/cost-optimization.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/guides/index.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/guides/wsl2-setup.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/ideas/index.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/ideas/multi-session-efficiency-analytics.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/index.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/log.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/principles/findings-are-immutable.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/principles/index.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/reference/debug-log-format.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/reference/index.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/reference/pricing-formats.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/structures/cache-cost-approximation.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/structures/index.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/structures/knowledge-base-information-types.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/structures/session-discovery-algorithm.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/structures/subagent-cost-tracking.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/knowledge/structures/vscode-copilot-extension.md +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/scripts/refresh_pricing.py +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/src/copilot_session_usage/__init__.py +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/src/copilot_session_usage/_internal/__init__.py +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/src/copilot_session_usage/_internal/copilot_cli.py +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/src/copilot_session_usage/api.py +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/src/copilot_session_usage/data/__init__.py +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/src/copilot_session_usage/data/custom-models-pricing.yml +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/src/copilot_session_usage/data/models-and-pricing.lock +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/src/copilot_session_usage/data/models-and-pricing.yml +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/tests/conftest.py +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/tests/test_api.py +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/tests/test_coverage_gaps.py +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/tests/test_vscode.py +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/tests/test_vscode_platform.py +0 -0
- {copilot_session_usage-0.4.0 → copilot_session_usage-0.5.1}/uv.toml +0 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
################################################################################
|
|
2
|
+
#
|
|
3
|
+
# Gitattributes - defining git attributes per path
|
|
4
|
+
#
|
|
5
|
+
# this .gitattributes file converts most binary format to git-lfs
|
|
6
|
+
#
|
|
7
|
+
# Resources:
|
|
8
|
+
#
|
|
9
|
+
# - https://git-lfs.com/
|
|
10
|
+
# - https://docs.gitlab.com/ee/topics/git/lfs/
|
|
11
|
+
# - https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes
|
|
12
|
+
#
|
|
13
|
+
################################################################################
|
|
14
|
+
|
|
15
|
+
# Git will always convert line endings to LF on checkout.
|
|
16
|
+
# You should use this for files that must keep LF endings, even on Windows.
|
|
17
|
+
# (in case people don't have core.autocrlf set)
|
|
18
|
+
* text=auto eol=lf
|
|
19
|
+
|
|
20
|
+
# All files with '.lfs.' in its name will be placed in Git LFS automatically
|
|
21
|
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
|
22
|
+
|
|
23
|
+
# Denote all files that are truly filter=lfs diff=lfs merge=lfs -text
|
|
24
|
+
# and should not be modified.
|
|
25
|
+
|
|
26
|
+
# Executables
|
|
27
|
+
*.exe filter=lfs diff=lfs merge=lfs -text
|
|
28
|
+
*.dll filter=lfs diff=lfs merge=lfs -text
|
|
29
|
+
|
|
30
|
+
# documents
|
|
31
|
+
*.csv filter=lfs diff=lfs merge=lfs -text
|
|
32
|
+
*.doc filter=lfs diff=lfs merge=lfs -text
|
|
33
|
+
*.docx filter=lfs diff=lfs merge=lfs -text
|
|
34
|
+
*.odf filter=lfs diff=lfs merge=lfs -text
|
|
35
|
+
*.odp filter=lfs diff=lfs merge=lfs -text
|
|
36
|
+
*.odt filter=lfs diff=lfs merge=lfs -text
|
|
37
|
+
*.pdf filter=lfs diff=lfs merge=lfs -text
|
|
38
|
+
*.ppt filter=lfs diff=lfs merge=lfs -text
|
|
39
|
+
*.pptx filter=lfs diff=lfs merge=lfs -text
|
|
40
|
+
*.xls filter=lfs diff=lfs merge=lfs -text
|
|
41
|
+
*.xls filter=lfs diff=lfs merge=lfs -text
|
|
42
|
+
*.xlsm filter=lfs diff=lfs merge=lfs -text
|
|
43
|
+
*.xlsx filter=lfs diff=lfs merge=lfs -text
|
|
44
|
+
|
|
45
|
+
# Fonts
|
|
46
|
+
*.eot filter=lfs diff=lfs merge=lfs -text
|
|
47
|
+
*.otf filter=lfs diff=lfs merge=lfs -text
|
|
48
|
+
*.ttc filter=lfs diff=lfs merge=lfs -text
|
|
49
|
+
*.ttf filter=lfs diff=lfs merge=lfs -text
|
|
50
|
+
*.woff filter=lfs diff=lfs merge=lfs -text
|
|
51
|
+
*.woff2 filter=lfs diff=lfs merge=lfs -text
|
|
52
|
+
|
|
53
|
+
# Images
|
|
54
|
+
*.ai filter=lfs diff=lfs merge=lfs -text
|
|
55
|
+
*.bmp filter=lfs diff=lfs merge=lfs -text
|
|
56
|
+
*.eps filter=lfs diff=lfs merge=lfs -text
|
|
57
|
+
*.gif filter=lfs diff=lfs merge=lfs -text
|
|
58
|
+
*.ico filter=lfs diff=lfs merge=lfs -text
|
|
59
|
+
*.jng filter=lfs diff=lfs merge=lfs -text
|
|
60
|
+
*.jp2 filter=lfs diff=lfs merge=lfs -text
|
|
61
|
+
*.jpg filter=lfs diff=lfs merge=lfs -text
|
|
62
|
+
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
|
63
|
+
*.jpx filter=lfs diff=lfs merge=lfs -text
|
|
64
|
+
*.jxr filter=lfs diff=lfs merge=lfs -text
|
|
65
|
+
*.png filter=lfs diff=lfs merge=lfs -text
|
|
66
|
+
*.psb filter=lfs diff=lfs merge=lfs -text
|
|
67
|
+
*.psd filter=lfs diff=lfs merge=lfs -text
|
|
68
|
+
*.svg text
|
|
69
|
+
*.svgz filter=lfs diff=lfs merge=lfs -text
|
|
70
|
+
*.tif filter=lfs diff=lfs merge=lfs -text
|
|
71
|
+
*.tiff filter=lfs diff=lfs merge=lfs -text
|
|
72
|
+
*.wbmp filter=lfs diff=lfs merge=lfs -text
|
|
73
|
+
*.webp filter=lfs diff=lfs merge=lfs -text
|
|
74
|
+
|
|
75
|
+
# Audio
|
|
76
|
+
*.kar filter=lfs diff=lfs merge=lfs -text
|
|
77
|
+
*.m4a filter=lfs diff=lfs merge=lfs -text
|
|
78
|
+
*.mid filter=lfs diff=lfs merge=lfs -text
|
|
79
|
+
*.midi filter=lfs diff=lfs merge=lfs -text
|
|
80
|
+
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
|
81
|
+
*.ogg filter=lfs diff=lfs merge=lfs -text
|
|
82
|
+
*.ra filter=lfs diff=lfs merge=lfs -text
|
|
83
|
+
|
|
84
|
+
## VIDEO
|
|
85
|
+
*.3gpp filter=lfs diff=lfs merge=lfs -text
|
|
86
|
+
*.3gp filter=lfs diff=lfs merge=lfs -text
|
|
87
|
+
*.as filter=lfs diff=lfs merge=lfs -text
|
|
88
|
+
*.asf filter=lfs diff=lfs merge=lfs -text
|
|
89
|
+
*.asx filter=lfs diff=lfs merge=lfs -text
|
|
90
|
+
*.fla filter=lfs diff=lfs merge=lfs -text
|
|
91
|
+
*.flv filter=lfs diff=lfs merge=lfs -text
|
|
92
|
+
*.m4v filter=lfs diff=lfs merge=lfs -text
|
|
93
|
+
*.mng filter=lfs diff=lfs merge=lfs -text
|
|
94
|
+
*.mov filter=lfs diff=lfs merge=lfs -text
|
|
95
|
+
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
|
96
|
+
*.mpeg filter=lfs diff=lfs merge=lfs -text
|
|
97
|
+
*.mpg filter=lfs diff=lfs merge=lfs -text
|
|
98
|
+
*.ogv filter=lfs diff=lfs merge=lfs -text
|
|
99
|
+
*.swc filter=lfs diff=lfs merge=lfs -text
|
|
100
|
+
*.swf filter=lfs diff=lfs merge=lfs -text
|
|
101
|
+
*.webm filter=lfs diff=lfs merge=lfs -text
|
|
102
|
+
|
|
103
|
+
# Archives
|
|
104
|
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
|
105
|
+
*.cab filter=lfs diff=lfs merge=lfs -text
|
|
106
|
+
*.ear filter=lfs diff=lfs merge=lfs -text
|
|
107
|
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
|
108
|
+
*.jar filter=lfs diff=lfs merge=lfs -text
|
|
109
|
+
*.aar filter=lfs diff=lfs merge=lfs -text
|
|
110
|
+
*.apk filter=lfs diff=lfs merge=lfs -text
|
|
111
|
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
|
112
|
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
|
113
|
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
|
114
|
+
*.war filter=lfs diff=lfs merge=lfs -text
|
|
115
|
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
|
116
|
+
*.pdf filter=lfs diff=lfs merge=lfs -text
|
|
117
|
+
*.eot filter=lfs diff=lfs merge=lfs -text
|
|
118
|
+
*.otf filter=lfs diff=lfs merge=lfs -text
|
|
119
|
+
*.ttc filter=lfs diff=lfs merge=lfs -text
|
|
120
|
+
*.ttf filter=lfs diff=lfs merge=lfs -text
|
|
121
|
+
*.woff filter=lfs diff=lfs merge=lfs -text
|
|
122
|
+
*.ai filter=lfs diff=lfs merge=lfs -text
|
|
123
|
+
*.bmp filter=lfs diff=lfs merge=lfs -text
|
|
124
|
+
*.eps filter=lfs diff=lfs merge=lfs -text
|
|
125
|
+
*.gif filter=lfs diff=lfs merge=lfs -text
|
|
126
|
+
*.ico filter=lfs diff=lfs merge=lfs -text
|
|
127
|
+
*.jng filter=lfs diff=lfs merge=lfs -text
|
|
128
|
+
*.jp2 filter=lfs diff=lfs merge=lfs -text
|
|
129
|
+
*.jpg filter=lfs diff=lfs merge=lfs -text
|
|
130
|
+
*.jpx filter=lfs diff=lfs merge=lfs -text
|
|
131
|
+
*.jxr filter=lfs diff=lfs merge=lfs -text
|
|
132
|
+
*.png filter=lfs diff=lfs merge=lfs -text
|
|
133
|
+
*.psb filter=lfs diff=lfs merge=lfs -text
|
|
134
|
+
*.psd filter=lfs diff=lfs merge=lfs -text
|
|
135
|
+
*.tif filter=lfs diff=lfs merge=lfs -text
|
|
136
|
+
*.kar filter=lfs diff=lfs merge=lfs -text
|
|
137
|
+
*.m4a filter=lfs diff=lfs merge=lfs -text
|
|
138
|
+
*.mid filter=lfs diff=lfs merge=lfs -text
|
|
139
|
+
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
|
140
|
+
*.ogg filter=lfs diff=lfs merge=lfs -text
|
|
141
|
+
*.ra filter=lfs diff=lfs merge=lfs -text
|
|
142
|
+
*.3gp filter=lfs diff=lfs merge=lfs -text
|
|
143
|
+
*.as filter=lfs diff=lfs merge=lfs -text
|
|
144
|
+
*.asf filter=lfs diff=lfs merge=lfs -text
|
|
145
|
+
*.asx filter=lfs diff=lfs merge=lfs -text
|
|
146
|
+
*.fla filter=lfs diff=lfs merge=lfs -text
|
|
147
|
+
*.flv filter=lfs diff=lfs merge=lfs -text
|
|
148
|
+
*.m4v filter=lfs diff=lfs merge=lfs -text
|
|
149
|
+
*.mng filter=lfs diff=lfs merge=lfs -text
|
|
150
|
+
*.mov filter=lfs diff=lfs merge=lfs -text
|
|
151
|
+
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
|
152
|
+
*.mpg filter=lfs diff=lfs merge=lfs -text
|
|
153
|
+
*.ogv filter=lfs diff=lfs merge=lfs -text
|
|
154
|
+
*.swc filter=lfs diff=lfs merge=lfs -text
|
|
155
|
+
*.swf filter=lfs diff=lfs merge=lfs -text
|
|
156
|
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
|
157
|
+
*.cab filter=lfs diff=lfs merge=lfs -text
|
|
158
|
+
*.ear filter=lfs diff=lfs merge=lfs -text
|
|
159
|
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
|
160
|
+
*.jar filter=lfs diff=lfs merge=lfs -text
|
|
161
|
+
*.aar filter=lfs diff=lfs merge=lfs -text
|
|
162
|
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
|
163
|
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
|
164
|
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
|
165
|
+
*.war filter=lfs diff=lfs merge=lfs -text
|
|
166
|
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
|
167
|
+
|
|
168
|
+
# Matlab binary format
|
|
169
|
+
*.slx filter=lfs diff=lfs merge=lfs -text
|
|
170
|
+
*.mat filter=lfs diff=lfs merge=lfs -text
|
|
171
|
+
*.mltbx filter=lfs diff=lfs merge=lfs -text
|
|
172
|
+
*.mlapp filter=lfs diff=lfs merge=lfs -text
|
|
173
|
+
|
|
174
|
+
# Autosar
|
|
175
|
+
*.arxml filter=lfs diff=lfs merge=lfs -text
|
|
176
|
+
|
|
177
|
+
# 3D objects
|
|
178
|
+
*.ive filter=lfs diff=lfs merge=lfs -text
|
|
179
|
+
*.sketch filter=lfs diff=lfs merge=lfs -text
|
|
180
|
+
*.osgb filter=lfs diff=lfs merge=lfs -text
|
|
181
|
+
|
|
182
|
+
# FMU
|
|
183
|
+
*.fmu filter=lfs diff=lfs merge=lfs -text
|
|
184
|
+
|
|
185
|
+
# Misc
|
|
186
|
+
*.rgb filter=lfs diff=lfs merge=lfs -text
|
|
187
|
+
*.cbf filter=lfs diff=lfs merge=lfs -text
|
|
188
|
+
*.csb filter=lfs diff=lfs merge=lfs -text
|
|
189
|
+
*.db filter=lfs diff=lfs merge=lfs -text
|
|
190
|
+
*.exp filter=lfs diff=lfs merge=lfs -text
|
|
191
|
+
*.lst filter=lfs diff=lfs merge=lfs -text
|
|
192
|
+
*.tptbin filter=lfs diff=lfs merge=lfs -text
|
|
193
|
+
*.vopt filter=lfs diff=lfs merge=lfs -text
|
|
194
|
+
*.res filter=lfs diff=lfs merge=lfs -text
|
|
195
|
+
*.tlog filter=lfs diff=lfs merge=lfs -text
|
|
196
|
+
*.sol filter=lfs diff=lfs merge=lfs -text
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Git Commit Message Guideline 1.0
|
|
3
|
+
description: Guidelines for writing conventional commits that communicate intent and user impact
|
|
4
|
+
metadata:
|
|
5
|
+
owner: Gaetan Semet <gaetan.semet@ampere.cars>
|
|
6
|
+
keywords: [git, commit, conventional, message, changelog]
|
|
7
|
+
guideline-id: 45c42e46-0781-4954-a410-1f380f5553f3
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Git Commit Message Guideline
|
|
11
|
+
|
|
12
|
+
Write clear, focused commit messages following Conventional Commits format. Commit messages communicate *why* changes were made—enabling automated changelog generation, bug investigation, and decision-making during upgrades. Focus on user impact, not implementation details.
|
|
13
|
+
|
|
14
|
+
## Core Rules
|
|
15
|
+
|
|
16
|
+
### Rule 1: Use Conventional Commit Format
|
|
17
|
+
|
|
18
|
+
**Apply:** Format every title as `type(scope): description`
|
|
19
|
+
|
|
20
|
+
**Why:** Enables automated changelog generation and consistent pattern parsing.
|
|
21
|
+
|
|
22
|
+
**Types:** `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `ci`, `chore`, `build`, `revert`
|
|
23
|
+
|
|
24
|
+
**Examples:**
|
|
25
|
+
```
|
|
26
|
+
feat(auth): add two-factor authentication support
|
|
27
|
+
fix(api): resolve request timeout in user endpoint
|
|
28
|
+
docs(readme): update installation instructions
|
|
29
|
+
perf(cache): optimize query performance by 40%
|
|
30
|
+
test(validators): add email format validation tests
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
### Rule 2: Keep Title Under 50 Characters, Body Under 72 Per Line
|
|
36
|
+
|
|
37
|
+
**Apply:** Enforce character limits for scannability and terminal compatibility.
|
|
38
|
+
|
|
39
|
+
**Why:** Short titles force clarity; wrapped body text maintains readability in terminals and email clients.
|
|
40
|
+
|
|
41
|
+
**Example:**
|
|
42
|
+
```
|
|
43
|
+
feat(cache): implement LRU eviction policy
|
|
44
|
+
|
|
45
|
+
Reduces memory usage in long-running processes by
|
|
46
|
+
automatically removing least-recently-used items.
|
|
47
|
+
|
|
48
|
+
Changes:
|
|
49
|
+
- Cache drops oldest accessed items upon limit
|
|
50
|
+
- Configurable cache size (default 1000)
|
|
51
|
+
- < 2% performance overhead on reads
|
|
52
|
+
|
|
53
|
+
Users can set CACHE_SIZE environment variable.
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
### Rule 3: Focus Body on User Impact, Not Implementation Details
|
|
59
|
+
|
|
60
|
+
**Apply:** Describe what users gain and must know; exclude refactoring details, internal functions, and test additions.
|
|
61
|
+
|
|
62
|
+
**Why:** Users deciding whether to upgrade, developers integrating changes, and bug investigators need user-level context—not code structure details.
|
|
63
|
+
|
|
64
|
+
**Example:**
|
|
65
|
+
```
|
|
66
|
+
fix(api): allow null values in optional response fields
|
|
67
|
+
|
|
68
|
+
Optional fields now omitted from JSON when empty,
|
|
69
|
+
reducing response payload by ~15% for sparse data.
|
|
70
|
+
|
|
71
|
+
Migration:
|
|
72
|
+
- Check `field in response` instead of `field != null`
|
|
73
|
+
- Response schema updated in API reference
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
### Rule 4: Include Breaking Changes with Migration Guidance
|
|
79
|
+
|
|
80
|
+
**Apply:** Use `!` in title and `BREAKING CHANGE:` section. Provide explicit migration steps.
|
|
81
|
+
|
|
82
|
+
**Why:** Breaking changes require user action; clear guidance reduces upgrade confusion.
|
|
83
|
+
|
|
84
|
+
**Example:**
|
|
85
|
+
```
|
|
86
|
+
feat(api)!: change pagination to cursor-based tokens
|
|
87
|
+
|
|
88
|
+
Cursors improve performance with large datasets.
|
|
89
|
+
|
|
90
|
+
BREAKING CHANGE: Replaced `pagination_offset` and
|
|
91
|
+
`pagination_limit` with `pagination.cursor`.
|
|
92
|
+
|
|
93
|
+
Migration:
|
|
94
|
+
Old: GET /users?limit=10&offset=20
|
|
95
|
+
New: GET /users?limit=10&cursor=xyz123
|
|
96
|
+
|
|
97
|
+
Update code to use `response.pagination.cursor`
|
|
98
|
+
in next request instead of offset/limit.
|
|
99
|
+
```
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# Release Notes Generator (Git Diff Based)
|
|
2
|
+
|
|
3
|
+
Generate **end-user friendly** release notes by analyzing actual code changes between releases.
|
|
4
|
+
No scripts required — uses git commands to understand what changed and why it matters.
|
|
5
|
+
|
|
6
|
+
The output is meant to be **copy-pasted into a GitHub Release** (or similar).
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Quick Start
|
|
11
|
+
|
|
12
|
+
Provide your repository and range:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Generate release notes from v1.0.0 to v1.1.0 in /path/to/repo
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Or reference the last release:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
What changed since the last release tag?
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## What It Does
|
|
27
|
+
|
|
28
|
+
1. **Reads actual diffs** — examines code changes, not just commit messages
|
|
29
|
+
2. **Interprets for end-users** — no technical jargon, functions, or variable names
|
|
30
|
+
3. **Categorizes intelligently** — Features, Enhancements, Bug Fixes, Breaking Changes
|
|
31
|
+
4. **Adds concrete examples** — shows what users see or can do after the change
|
|
32
|
+
5. **Links to public docs** — points to published documentation, not repo paths
|
|
33
|
+
6. **Consolidates related changes** — groups related diffs, eliminates back-and-forth noise
|
|
34
|
+
7. **Outputs clean markdown** — ready to paste into a GitHub Release note
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Input
|
|
39
|
+
|
|
40
|
+
Accept either:
|
|
41
|
+
|
|
42
|
+
- **Natural language**: "Show release notes from v1.2.0 to v1.3.0"
|
|
43
|
+
- **Range spec**: `from_tag=v1.2.0 to_tag=v1.3.0 repo_path=/path/to/repo`
|
|
44
|
+
- **Last release**: `since_tag=v1.2.0` (everything from tag to HEAD)
|
|
45
|
+
|
|
46
|
+
Required:
|
|
47
|
+
- Repository path (optional: defaults to current directory)
|
|
48
|
+
- Range: `from_tag` + `to_tag`, OR `since_tag`, OR `last_n_commits`
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Analysis Process
|
|
53
|
+
|
|
54
|
+
### Step 1: Collect Commits
|
|
55
|
+
```bash
|
|
56
|
+
git log v1.0.0..v1.1.0 --oneline --no-merges
|
|
57
|
+
```
|
|
58
|
+
Gather all commits in the specified range with their messages.
|
|
59
|
+
|
|
60
|
+
### Step 2: Examine Diffs
|
|
61
|
+
```bash
|
|
62
|
+
git diff v1.0.0..v1.1.0 -- src/
|
|
63
|
+
```
|
|
64
|
+
Read actual code changes line-by-line to understand what changed.
|
|
65
|
+
|
|
66
|
+
### Step 3: Interpret Changes
|
|
67
|
+
|
|
68
|
+
Translate technical changes into user impact:
|
|
69
|
+
|
|
70
|
+
| Code Change | User Impact |
|
|
71
|
+
|-------------|------------|
|
|
72
|
+
| `+ const darkMode = true` in settings | "Dark mode toggle now available in settings" |
|
|
73
|
+
| Deleted login retry logic | "Removed automatic retry on login timeout" |
|
|
74
|
+
| `+ validateEmail()` function | "Email validation improved during signup" |
|
|
75
|
+
| Updated database schema version | "Database schema upgraded (run migration)" |
|
|
76
|
+
| Added 10+ calls to cache layer | "Improved performance on large operations" |
|
|
77
|
+
| Removed old CSV export code | "CSV export removed; use Excel or PDF instead" |
|
|
78
|
+
|
|
79
|
+
**Key: Focus on the user's experience, not the code implementation.**
|
|
80
|
+
|
|
81
|
+
### Step 4: Identify Breaking Changes
|
|
82
|
+
|
|
83
|
+
Breaking changes come from:
|
|
84
|
+
- **Commit messages** containing: "BREAKING", "Breaking", "!:"
|
|
85
|
+
- **Diffs showing**: removed public APIs, changed file formats, data migrations
|
|
86
|
+
- **Config changes**: renamed settings, changed defaults
|
|
87
|
+
|
|
88
|
+
### Step 5: Consolidate
|
|
89
|
+
- If a feature was added then removed → don't mention it
|
|
90
|
+
- If something changed multiple times → only note the final state
|
|
91
|
+
- If multiple commits fix the same issue → merge into one bullet
|
|
92
|
+
|
|
93
|
+
### Step 6: Categorize & Format
|
|
94
|
+
|
|
95
|
+
Organize changes into buckets. **Only include sections that have content.** Omit empty sections entirely.
|
|
96
|
+
|
|
97
|
+
```markdown
|
|
98
|
+
# Release Notes - v1.1.0
|
|
99
|
+
|
|
100
|
+
## New Features
|
|
101
|
+
- Added dark mode toggle in settings
|
|
102
|
+
- New PDF export option
|
|
103
|
+
|
|
104
|
+
## Enhancements
|
|
105
|
+
- Improved search performance (now supports partial matches)
|
|
106
|
+
- Faster file opening for large documents
|
|
107
|
+
|
|
108
|
+
## Bug Fixes
|
|
109
|
+
- Fixed login failures on slow connections
|
|
110
|
+
- Resolved crash when uploading 10MB+ files
|
|
111
|
+
|
|
112
|
+
## Breaking Changes
|
|
113
|
+
- Database schema updated — run migration before upgrading
|
|
114
|
+
- CSV export removed; use Excel or PDF instead
|
|
115
|
+
|
|
116
|
+
## Examples
|
|
117
|
+
- Dark mode can be enabled in Settings → Appearance → Theme
|
|
118
|
+
- CSV export is no longer available; choose Excel or PDF from Export menu
|
|
119
|
+
|
|
120
|
+
## Documentation
|
|
121
|
+
- [Dark mode guide](https://docs.example.com/settings#dark-mode)
|
|
122
|
+
- [Migration notes](https://docs.example.com/upgrade#database)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Workflow for Agent
|
|
128
|
+
|
|
129
|
+
1. **Parse input** — extract `from_tag`, `to_tag`, `repo_path`, and optional filters
|
|
130
|
+
2. **Discover public docs URL** — inspect `README.md`, `pyproject.toml`, `mkdocs.yml`, `docs/conf.py`, or `.readthedocs.yml` for the published documentation URL. Prefer ReadTheDocs, GitHub Pages, or the project's public docs site. If none is found, omit doc links.
|
|
131
|
+
3. **Fetch commits** — run `git log` with range, collect hashes & messages
|
|
132
|
+
4. **Read diffs per file** — `git show <hash>` for each commit, examine changed files
|
|
133
|
+
5. **Interpret impact** — what does each change mean to users?
|
|
134
|
+
6. **Detect breaking changes** — scan for BREAKING markers, API removals, schema changes
|
|
135
|
+
7. **Group by category** — assign each change to **New Features**, **Enhancements**, **Bug Fixes**, **Breaking Changes**, **Examples**, or **Documentation**
|
|
136
|
+
8. **Build examples** — for each user-facing change, look at README, docs, tests, or CLI help in the diff and add a short "what the user gets" example when it clarifies the change
|
|
137
|
+
9. **Consolidate** — merge related items, remove duplicates and flip-flops
|
|
138
|
+
10. **Format markdown** — generate clean bullet points with proper headings
|
|
139
|
+
11. **Omit empty sections** — do not print a section if it has no bullets
|
|
140
|
+
12. **Use public docs links** — every Documentation bullet and every feature/enhancement docs reference must use the public URL with a fragment identifier, not a repo-relative path
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Output Format
|
|
145
|
+
|
|
146
|
+
**Clean markdown** for a GitHub Release:
|
|
147
|
+
|
|
148
|
+
```markdown
|
|
149
|
+
# Release Notes - v1.1.0
|
|
150
|
+
|
|
151
|
+
## New Features
|
|
152
|
+
- Added dark mode toggle in settings
|
|
153
|
+
- New PDF export option
|
|
154
|
+
|
|
155
|
+
## Enhancements
|
|
156
|
+
- Improved search performance (supports partial matches)
|
|
157
|
+
- Faster file opening for large documents
|
|
158
|
+
|
|
159
|
+
## Bug Fixes
|
|
160
|
+
- Fixed login failures on slow connections
|
|
161
|
+
- Resolved crash when uploading 10MB+ files
|
|
162
|
+
|
|
163
|
+
## Breaking Changes
|
|
164
|
+
- Database schema updated — run migration before upgrading
|
|
165
|
+
|
|
166
|
+
## Examples
|
|
167
|
+
- Enable dark mode from Settings → Appearance → Theme
|
|
168
|
+
- Export a report as PDF from the File → Export menu
|
|
169
|
+
|
|
170
|
+
## Documentation
|
|
171
|
+
- [Dark mode guide](https://docs.example.com/settings#dark-mode)
|
|
172
|
+
- [Upgrade instructions](https://docs.example.com/upgrade#database)
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**Key Rules:**
|
|
176
|
+
- One line per bullet point
|
|
177
|
+
- No sub-bullets or elaborate descriptions
|
|
178
|
+
- User impact only (not implementation details)
|
|
179
|
+
- Use public documentation URLs; never use repo-relative paths like `docs/...` or `README.md`
|
|
180
|
+
- Use fragment identifiers (`#section-name`) to point to specific docs sections
|
|
181
|
+
- Add an **Examples** section when the diff shows a CLI command, API call, config snippet, or before/after behavior
|
|
182
|
+
- Add a **Documentation** section when docs were added or updated, linking to the published page
|
|
183
|
+
- Multiple links OK if they point to different topics
|
|
184
|
+
- Omit any section that has no bullets
|
|
185
|
+
- Do not add a "Notes", "Miscellaneous", or "Other" catch-all section
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## How to Use This Skill in a Session
|
|
190
|
+
|
|
191
|
+
**User Query:**
|
|
192
|
+
```
|
|
193
|
+
Generate release notes from v2.1.0 to v2.2.0 for /path/to/my-app
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
**Agent Workflow:**
|
|
197
|
+
1. Navigate to repo: `cd /path/to/my-app`
|
|
198
|
+
2. Fetch commits: `git log v2.1.0..v2.2.0 --oneline --no-merges`
|
|
199
|
+
3. For each commit, examine changes: `git show <hash>`
|
|
200
|
+
4. Interpret: What's the user impact? (not the code details)
|
|
201
|
+
5. Categorize: Feature? Bug fix? Breaking change?
|
|
202
|
+
6. Consolidate: Merge similar items
|
|
203
|
+
7. Format: Clean markdown with categories
|
|
204
|
+
8. Output: Save to RELEASE_NOTES.md
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Best Practices
|
|
209
|
+
|
|
210
|
+
✅ **Do:**
|
|
211
|
+
- Read actual diffs to understand changes
|
|
212
|
+
- Use end-user language ("improved performance" not "optimized O(n) loop")
|
|
213
|
+
- Include breaking changes prominently
|
|
214
|
+
- Group related changes
|
|
215
|
+
- Add concrete examples drawn from README, docs, tests, or CLI help in the diff
|
|
216
|
+
- Link to the project's public documentation site (ReadTheDocs, GitHub Pages, etc.)
|
|
217
|
+
- Omit empty sections
|
|
218
|
+
|
|
219
|
+
❌ **Don't:**
|
|
220
|
+
- Copy commit messages verbatim
|
|
221
|
+
- Include function/variable names
|
|
222
|
+
- Mention internal refactors users won't notice
|
|
223
|
+
- Include dependency bumps or build changes unless they are user-visible
|
|
224
|
+
- Include secrets, passwords, or internal URLs
|
|
225
|
+
- Use repo-relative paths like `docs/source/how-to/...` or `README.md`
|
|
226
|
+
- Make up changes not shown in diffs
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Common Patterns
|
|
231
|
+
|
|
232
|
+
**Performance improvements:**
|
|
233
|
+
> "Improved search speed when filtering 1000+ records"
|
|
234
|
+
|
|
235
|
+
**New integrations:**
|
|
236
|
+
> "Added support for OAuth login via GitHub"
|
|
237
|
+
|
|
238
|
+
**Data format changes:**
|
|
239
|
+
> "Settings file now uses JSON instead of YAML (auto-converted on first run)"
|
|
240
|
+
|
|
241
|
+
**Removed features:**
|
|
242
|
+
> "Removed IE 11 support to modernize codebase"
|
|
243
|
+
|
|
244
|
+
**API changes:**
|
|
245
|
+
> "Changed user profile endpoint response format (see migration guide)"
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Limitations
|
|
250
|
+
|
|
251
|
+
- Requires git repository with proper tags
|
|
252
|
+
- Complex changes may need human interpretation
|
|
253
|
+
- Very large diffs (1000+ files) summarized by file count
|
|
254
|
+
- Works best with semantic versioning (v1.0.0 format)
|
|
255
|
+
- Needs meaningful commit messages for best results
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Read the Docs configuration file
|
|
2
|
+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
|
3
|
+
|
|
4
|
+
version: 2
|
|
5
|
+
|
|
6
|
+
build:
|
|
7
|
+
os: ubuntu-24.04
|
|
8
|
+
tools:
|
|
9
|
+
python: "3.13"
|
|
10
|
+
jobs:
|
|
11
|
+
post_checkout:
|
|
12
|
+
- git fetch --tags
|
|
13
|
+
# Download and uncompress git-lfs binary
|
|
14
|
+
- wget https://github.com/git-lfs/git-lfs/releases/download/v3.6.1/git-lfs-linux-amd64-v3.6.1.tar.gz
|
|
15
|
+
- tar xvfz git-lfs-linux-amd64-v3.6.1.tar.gz
|
|
16
|
+
- cp git-lfs-*/git-lfs ./git-lfs
|
|
17
|
+
# Configure LFS to use the downloaded binary
|
|
18
|
+
- git config filter.lfs.process "`pwd`/git-lfs filter-process"
|
|
19
|
+
- git config filter.lfs.smudge "`pwd`/git-lfs smudge -- %f"
|
|
20
|
+
- git config filter.lfs.clean "`pwd`/git-lfs clean -- %f"
|
|
21
|
+
# Make LFS available in the current repository and fetch/check out content
|
|
22
|
+
- ./git-lfs install
|
|
23
|
+
- ./git-lfs fetch
|
|
24
|
+
- ./git-lfs checkout
|
|
25
|
+
pre_build:
|
|
26
|
+
- uv run cz changelog
|
|
27
|
+
|
|
28
|
+
sphinx:
|
|
29
|
+
configuration: docs/source/conf.py
|
|
30
|
+
|
|
31
|
+
python:
|
|
32
|
+
install:
|
|
33
|
+
- method: uv
|
|
34
|
+
command: sync
|
|
35
|
+
groups:
|
|
36
|
+
- dev
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
- **[README](README.md)** — User-facing overview and quickstart
|
|
8
8
|
- **[CONTRIBUTING](CONTRIBUTING.md)** — Developer setup and conventions
|
|
9
9
|
- **[.github/guidelines/knowledge-base.guidelines.md](.github/guidelines/knowledge-base.guidelines.md)** - How to use, update and maintain the knowledge base
|
|
10
|
+
- **[.github/guidelines/git-commit-message.guideline.md](.github/guidelines/git-commit-message.guideline.md)** — Commit message conventions
|
|
10
11
|
|
|
11
12
|
## Technology Stack
|
|
12
13
|
|
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
## Unreleased
|
|
2
2
|
|
|
3
|
+
### Fix
|
|
4
|
+
|
|
5
|
+
- bad computation of AIC in trailers
|
|
6
|
+
|
|
7
|
+
## v0.5.0 (2026-07-09)
|
|
8
|
+
|
|
9
|
+
### Feat
|
|
10
|
+
|
|
11
|
+
- **cli**: add amend-commit command to inject session cost trailers
|
|
12
|
+
|
|
13
|
+
## v0.4.0 (2026-07-08)
|
|
14
|
+
|
|
3
15
|
### Feat
|
|
4
16
|
|
|
17
|
+
- skill-aware cost attribution and tool-call tracking
|
|
5
18
|
- add session filtering/aggregation/summaries/field extraction
|
|
6
19
|
|
|
7
20
|
## v0.3.0 (2026-07-06)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: copilot-session-usage
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.1
|
|
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/
|
|
@@ -11,6 +11,7 @@ License-Expression: MIT
|
|
|
11
11
|
License-File: LICENSE
|
|
12
12
|
Requires-Python: >=3.10
|
|
13
13
|
Requires-Dist: click>=8.0
|
|
14
|
+
Requires-Dist: gitpython>=3.1.0
|
|
14
15
|
Requires-Dist: ruamel-yaml>=0.18.0
|
|
15
16
|
Description-Content-Type: text/markdown
|
|
16
17
|
|