Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
cfa6498
chore: fix version numbers in changelog
Sep 18, 2025
ea6ecb2
ci: add Discord notifications for releases and pre-releases
Sep 18, 2025
de661e2
feat: implement MCP host configuration backup system
Sep 21, 2025
ed5cd35
test: add MCP backup test infrastructure and data utilities
Sep 21, 2025
0bfeecf
test: add comprehensive MCPHostConfigBackupManager tests
Sep 21, 2025
aac323e
test: add atomic file operations and backup-aware operation tests
Sep 21, 2025
7b6a261
test: add integration and performance tests for backup system
Sep 21, 2025
de7d16a
docs: add MCP backup system architecture documentation
Sep 21, 2025
c5858ff
refactor: directory name
Sep 21, 2025
e984a82
feat: implement consolidated MCPServerConfig Pydantic model
Sep 21, 2025
b424520
feat: implement decorator-based strategy registration system
Sep 21, 2025
1e8d95b
feat: implement host strategy classes with inheritance architecture
Sep 21, 2025
61681be
feat: add decorator registration for new MCP host configs
Sep 21, 2025
688b4ed
test: extend test data infrastructure for MCP host configuration
Sep 21, 2025
391f2b9
test: add comprehensive MCPServerConfig model validation tests
Sep 21, 2025
ff80500
test: add decorator-based strategy registration validation tests
Sep 21, 2025
502ab4c
test: add configuration manager integration tests
Sep 21, 2025
99302fe
test: add environment integration validation tests
Sep 21, 2025
e188c90
docs: add comprehensive MCP host configuration documentation
Sep 21, 2025
b3597a8
docs: rewrite MCP host configuration
Sep 21, 2025
7da69aa
feat: enhance package management with MCP host configuration integration
Sep 21, 2025
f4dd2fc
feat: implement package-MCP integration with existing APIs
Sep 21, 2025
f8fdbe9
feat: implement MCP host discovery and listing commands (Phase 3c)
Sep 22, 2025
ee04223
feat: implement MCP backup management commands (Phase 3d)
Sep 22, 2025
799e1fa
fix: resolve non-TTY environment blocking in request_confirmation
Sep 22, 2025
84caa7c
fix: replace blocking input() with TTY-aware request_confirmation
Sep 22, 2025
e355bd7
fix: resolve all MCP CLI test failures achieving 100% pass rate
Sep 22, 2025
f7af78a
fix: backup system filename format
Sep 22, 2025
6119fe2
fix: implement environment-specific Python executable path resolution
Sep 22, 2025
55efeaa
fix: resolve configuration file corruption and data loss issues
Sep 22, 2025
981ff0c
fix: config backup restore system
Sep 22, 2025
4e496bc
feat: implement comprehensive host configuration tracking system
Sep 22, 2025
ca82163
feat(mcp): add host configuration removal functionality
Sep 23, 2025
b172ab4
feat(cli): implement object-action pattern for MCP remove commands
Sep 23, 2025
73f39f2
test(mcp): add comprehensive test coverage for new remove commands
Sep 23, 2025
5b6ab9e
docs(mcp): streamline architecture documentation
Sep 23, 2025
456971c
docs(mcp): add user guide for direct management commands
Sep 23, 2025
969c793
test(mcp): add comprehensive test suite for sync functionality
Sep 23, 2025
9ed6ec6
feat(mcp): implement advanced synchronization backend
Sep 23, 2025
80f67a1
feat(cli): implement hatch mcp sync command with advanced options
Sep 23, 2025
dab37fd
docs(mcp): add comprehensive synchronization command documentation
Sep 23, 2025
5638299
fix(test): resolve failing integration tests with proper error handling
Sep 23, 2025
aae1e85
fix(cli): string value usage
Sep 23, 2025
7179d31
fix: use the FastMCP instance and not HatchMCP
Sep 23, 2025
535843c
refactor(test): mark tests taking around 30 secs as slow
Sep 23, 2025
bfa4aed
fix(deps): add pydantic dep
Sep 23, 2025
033ccc1
chore(ci): clean semantic release commit message
Sep 23, 2025
7f5c7d2
ci: add `artessan-devs/sr-uv-plugin` to semantic release
Sep 23, 2025
a5ed541
fix(ci): plugin definition structure
Sep 23, 2025
fa47900
fix(ci): using custom `@artessan-devs/sr-uv-plugin`
Sep 23, 2025
700f190
chore(release): 0.7.0-dev.1
semantic-release-bot Sep 23, 2025
505ad2b
fix(ci): Discord pre-release notification should happen when on `dev`
Sep 23, 2025
7d385e6
feat(cli): enhance mcp configure command argument structure
Sep 24, 2025
edcca56
docs(mcp): correct command examples and enhance configuration guidance
Sep 24, 2025
8ca57c3
docs: fix critical CLI command inaccuracies across documentation
Sep 24, 2025
3d5d11e
docs: consolidate MCP/ subdirectory into MCPHostConfiguration.md
Sep 24, 2025
a0a5ba4
feat(tutorials): add complete MCP Host Configuration tutorial series
Sep 24, 2025
79086a0
docs: update cross-references following corrected alignment strategy
Sep 24, 2025
c48be5c
docs: minor legacy typos
Sep 25, 2025
e855749
fix(docs): Tutorial 04-01
Sep 25, 2025
d098b0b
feat: implement environment-scoped list hosts command
Sep 26, 2025
077c532
test: add comprehensive test suite for environment-scoped commands
Sep 26, 2025
b2e5a80
docs: update CLI reference for environment-scoped list hosts
Sep 26, 2025
902fa8a
fix(cli): mcp host configuration when using paths to hatch pkgs
Sep 28, 2025
ce6ecc6
fix(dev): overwrite server config in mcp host rather than merging
Sep 28, 2025
6c5bc07
fix(dev): remove host configuration
Sep 28, 2025
fa273a4
fix(serialization): explicit model dump of server configuration
Sep 28, 2025
17d1cc3
fix(cli): pass in expected mcp server configuration
Sep 28, 2025
bdfa4c5
fix(cli): resolve critical UnboundLocalError in hatch package add
Sep 28, 2025
04838bc
fix(test): function signatures and environment variable interference
Sep 28, 2025
b0c9c7f
test(env): enhance environment cleanup to prevent debris accumulation
Sep 28, 2025
c06378f
docs(tutorials): update MCP host configuration tutorial content
Sep 28, 2025
2824de7
fix(host): configuration cleanup after package and environment removal
Sep 28, 2025
a688f52
fix(vscode): set mcp configure to user-wide by default
Sep 28, 2025
d08a202
fix(vscode): update configuration format from settings.json to mcp.json
Sep 29, 2025
945f66b
refactor(cli): replace --env with --env-var in mcp configure
Sep 29, 2025
1eb86e4
fix(host): multi-environment mcp configuration conflict resolution
Sep 29, 2025
16c7990
fix(workaround): relax Pydantic data model constraint
Sep 29, 2025
a7bea4b
chore(release): 0.7.0-dev.2
semantic-release-bot Sep 29, 2025
b04757a
chore: configure semantic-release for 0.x.x versioning behavior
LittleCoinCoin Oct 1, 2025
ba5a02a
fix(claude-code): user-wide config file of the mcp
Oct 1, 2025
58b7613
fix(lmstudio): user-wide config file of the mcp
Oct 1, 2025
28313b2
chore(release): 0.7.0-dev.3
semantic-release-bot Oct 1, 2025
ac9919b
test: add version command test suite
Oct 2, 2025
4d06b40
refactor: remove outdated __version__ from hatch/__init__.py
Oct 2, 2025
c3410c3
feat: add --version flag to CLI argument parser
Oct 2, 2025
724c957
docs: add --version flag documentation and installation verification
Oct 2, 2025
c04984f
chore(release): 0.7.0-dev.4
semantic-release-bot Oct 2, 2025
1774610
fix(tests): add missing mock
Oct 11, 2025
44d6a73
fix(cli): resolve argparse naming conflict
Oct 11, 2025
cbbdf40
fix(tests): correct dependency dummy metadata extraction
Oct 11, 2025
f21ec7d
fix(tests): update simple_dep_pkg to use local base_pkg
Oct 11, 2025
655cf0a
feat: add host-specific MCP configuration models with type field
Oct 11, 2025
0265d48
test: add comprehensive tests for MCP configuration models
Oct 11, 2025
fa8fa42
feat: add user feedback reporting system for MCP configuration
Oct 11, 2025
d8076e2
test: add tests for user feedback reporting
Oct 11, 2025
a1e3c21
test: add CLI integration tests for MCP host configuration
Oct 12, 2025
d59fc6a
feat: integrate Pydantic model hierarchy into CLI handlers
Oct 12, 2025
5a98b64
docs: update CLI reference for MCP host configuration integration
Oct 12, 2025
f244c61
feat: add user feedback reporting to package add/sync commands
Oct 12, 2025
478c655
fix: correct report display logic to exclude unset fields
Oct 12, 2025
40faabb
feat: add host-specific CLI arguments for MCP configure command
Oct 12, 2025
6726bbb
feat: implement ALL host-specific CLI arguments with new reporting
Oct 12, 2025
66724ca
chore(release): 0.7.0-dev.5
semantic-release-bot Oct 13, 2025
294ca04
chore(.gitignore): ignoring .augment and .github/instructions
Oct 29, 2025
47dd21e
test: add comprehensive test suite for partial configuration updates
Oct 29, 2025
7b53e42
feat: add get_server_config method for server existence detection
Oct 29, 2025
4268d4e
feat: implement partial update merge logic in CLI handler
Oct 29, 2025
dede78e
fix(mcp): add Claude Desktop transport validation
Oct 30, 2025
a7e21d2
fix(cli): implement shlex.split() for --args parsing
Oct 30, 2025
1933351
fix(mcp): clear type field during transport switching
Oct 30, 2025
f715df1
feat(mcp): implement Gemini dual-transport validation
Oct 30, 2025
49e91bc
fix(cli): allow --http-url as standalone option for Gemini
Oct 30, 2025
5d84755
refactor(cli): rename --headers to --header for consistency
Oct 30, 2025
0807712
refactor(cli): rename --inputs to --input for consistency
Oct 30, 2025
3d0a7a7
docs(cli): update CLI reference for parameter naming changes
Oct 30, 2025
aa58720
chore(.gititnore): directory Laghari/
Oct 30, 2025
321d2f1
chore(release): 0.7.0-dev.6
semantic-release-bot Oct 30, 2025
c7fb36b
chore: add submodule `cracking-shells-playbook`
Nov 3, 2025
d545e90
fix(cli): enable partial configuration updates for existing MCP servers
Nov 18, 2025
35e25d8
chore(release): 0.7.0-dev.7
semantic-release-bot Nov 18, 2025
d326328
docs(fix): release policy
Nov 23, 2025
681a922
style: json formating of the `.releaserc.json`
Nov 23, 2025
a86fa7c
ci: add pypi publication
Nov 23, 2025
7385763
chore(cli): remove useless --no-mcp-config flag
Nov 23, 2025
fb30d37
docs: update CLIReference
Nov 23, 2025
8137957
docs(user): update tutorial on mcp host configuration
Nov 24, 2025
0119d0f
chore: cleaning up old reports
Nov 24, 2025
e10c236
docs: CONTRIBUTING becomes `how_to_contribute.md`
Nov 24, 2025
fee6da4
fix(docs): describe actual commit policy
Nov 24, 2025
27aafe0
docs(users): remove low impact `CICDIntegration.md`
Nov 24, 2025
390ddff
docs(user): remove advanced synchronization tutorial step
Nov 24, 2025
e911324
fix(docs): repair all broken links
Nov 24, 2025
638a9dd
style: apply ruff to `template_generator.py`
Nov 24, 2025
fb62e0a
ci: avoid publishing release on commit `fix(docs)`
Nov 24, 2025
72ff2be
chore(release): 0.7.0-dev.8
semantic-release-bot Nov 24, 2025
50345a3
fix(mcp): remove incorrect absolute path validation for Claude Desktop
Nov 28, 2025
dda6513
chore(release): 0.7.0-dev.9
semantic-release-bot Dec 2, 2025
2fc9313
fix(pypi-deploy): remove direct dependencies
Dec 7, 2025
4947480
chore(release): 0.7.0-dev.10
semantic-release-bot Dec 7, 2025
3957c75
fix(pypi-deploy): wrong project name
Dec 7, 2025
d20de17
chore(release): 0.7.0-dev.11
semantic-release-bot Dec 7, 2025
6d8c322
docs: fix CLI reference documentation accuracy
Dec 10, 2025
0813ee2
docs: fix MCP host configuration dev guide
Dec 10, 2025
3b1cbd3
docs(README): updating
Dec 10, 2025
09b7bcb
chore(release): 0.7.0-dev.12
semantic-release-bot Dec 10, 2025
31ce6f9
docs(README): rewrite
Dec 11, 2025
8342999
ci: refactor CI/CD pipeline into separate workflows
Dec 11, 2025
a444c65
docs: update release policy for new CI/CD architecture
Dec 11, 2025
0b8ce7c
fix(ci): Discord notification image URLs to use raw GitHub content
Dec 11, 2025
0d94e4c
chore(release): 0.7.0-dev.13
semantic-release-bot Dec 11, 2025
40b4a00
chore: clean remove __temp__/ and ignore it
Dec 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .github/workflows/prerelease-discord-notification.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Discord Pre-release Notification

on:
release:
types: [prereleased]

jobs:
notify-discord:
runs-on: ubuntu-latest
if: github.event.release.target_commitish == 'dev'
steps:
- name: Send Discord Pre-release Notification
uses: sarisia/actions-status-discord@v1
with:
webhook: ${{ secrets.DISCORD_HATCH_ANNOUNCEMENTS }}
nodetail: true
# No content field = no mention for pre-releases
title: "🧪 Hatch Pre-release Available for Testing"
description: |
**Version `${{ github.event.release.tag_name }}`** is now available for testing!

⚠️ **This is a pre-release** - expect potential bugs and breaking changes
🔬 Perfect for testing new features and providing feedback
📋 Click [here](${{ github.event.release.html_url }}) to view what's new and download

Help us make *Hatch!* better by testing and reporting [issues](https://github.com/CrackingShells/Hatch/issues)! 🐛➡️✨
color: 0xff9500 # Orange color for pre-release
username: "Cracking Shells Pre-release Bot"
image: "https://raw.githubusercontent.com/CrackingShells/.github/main/resources/images/hatch_icon_dark_bg_transparent.png"
avatar_url: "https://raw.githubusercontent.com/CrackingShells/.github/main/resources/images/cs_core_dark_bg.png"
82 changes: 82 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Publish to PyPI

on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+*'
workflow_dispatch:
inputs:
tag:
description: 'Git tag to publish (e.g., v1.0.0)'
required: true
type: string
ref:
description: 'Branch or commit to checkout'
required: false
default: 'main'
type: string

jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.inputs.ref || github.ref }}

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install -e .

- name: Run import test
run: |
python -c "import hatch; print('Hatch package imports successfully')"

publish-pypi:
name: Publish to PyPI
runs-on: ubuntu-latest
needs: test
environment:
name: pypi
url: https://pypi.org/project/hatch-xclam/
permissions:
id-token: write

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.inputs.ref || github.ref }}

- name: Checkout specific tag for manual dispatch
if: github.event_name == 'workflow_dispatch'
run: git checkout ${{ github.event.inputs.tag }}

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install build

- name: Build Python Package
run: python -m build

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
print-hash: true
verbose: true
skip-existing: true
29 changes: 29 additions & 0 deletions .github/workflows/release-discord-notification.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Discord Release Notification

on:
release:
types: [released]

jobs:
notify-discord:
runs-on: ubuntu-latest
if: github.event.release.target_commitish == 'main'
steps:
- name: Send Discord Notification
uses: sarisia/actions-status-discord@v1
with:
webhook: ${{ secrets.DISCORD_HATCH_ANNOUNCEMENTS }}
nodetail: true
content: "<@&1418053865818951721>"
title: "🎉 New *Hatch!* Release Available!"
description: |
**Version `${{ github.event.release.tag_name }}`** has been released!

🚀 Get the latest features and improvements
📚 Click [here](${{ github.event.release.html_url }}) to view the changelog and download

Happy MCP coding with *Hatch!* 🐣
color: 0x00ff88
username: "Cracking Shells Release Bot"
image: "https://raw.githubusercontent.com/CrackingShells/.github/main/resources/images/hatch_icon_dark_bg_transparent.png"
avatar_url: "https://raw.githubusercontent.com/CrackingShells/.github/main/resources/images/cs_core_dark_bg.png"
11 changes: 7 additions & 4 deletions .github/workflows/semantic-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,20 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: "3.12"

- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install -e .

- name: Run tests
- name: Run import test
run: |
python -c "import hatch; print('Hatch package imports successfully')"

release:
needs: test
runs-on: ubuntu-latest
if: github.event_name == 'push'
steps:
- name: Generate GitHub App Token
id: generate_token
Expand Down Expand Up @@ -61,4 +60,8 @@ jobs:
- name: Release
env:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
run: npx semantic-release
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
npx semantic-release
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# For this project
envs/
.augment/
.github/instructions/
Laghari/
__temp__/

# vvvvvvv Default Python Ignore vvvvvvvv
# Byte-compiled / optimized / DLL files
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "cracking-shells-playbook"]
path = cracking-shells-playbook
url = https://github.com/CrackingShells/cracking-shells-playbook.git
26 changes: 15 additions & 11 deletions .releaserc.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,20 @@
}
],
"plugins": [
"@artessan-devs/sr-uv-plugin",
[
"@semantic-release/commit-analyzer",
{
"preset": "conventionalcommits",
"releaseRules": [
{"type": "docs", "scope": "README", "release": "patch"},
{"type": "refactor", "release": "patch"},
{"type": "style", "release": "patch"},
{"type": "test", "release": false},
{"type": "chore", "release": false}
{ "breaking": true, "release": "minor" },
{ "type": "feat", "release": "patch" },
{ "type": "fix", "scope": "docs", "release": false },
{ "type": "docs", "scope": "README", "release": "patch" },
{ "type": "refactor", "release": "patch" },
{ "type": "style", "release": "patch" },
{ "type": "test", "release": false },
{ "type": "chore", "release": false }
]
}
],
Expand All @@ -28,11 +32,11 @@
"preset": "conventionalcommits",
"presetConfig": {
"types": [
{"type": "feat", "section": "Features"},
{"type": "fix", "section": "Bug Fixes"},
{"type": "docs", "section": "Documentation"},
{"type": "refactor", "section": "Code Refactoring"},
{"type": "perf", "section": "Performance Improvements"}
{ "type": "feat", "section": "Features" },
{ "type": "fix", "section": "Bug Fixes" },
{ "type": "docs", "section": "Documentation" },
{ "type": "refactor", "section": "Code Refactoring" },
{ "type": "perf", "section": "Performance Improvements" }
]
}
}
Expand All @@ -47,7 +51,7 @@
"@semantic-release/git",
{
"assets": ["CHANGELOG.md", "pyproject.toml"],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
"message": "chore(release): ${nextRelease.version}\n\n${nextRelease.notes}"
}
],
[
Expand Down
Loading