diff --git a/.claude/commands/release.md b/.claude/commands/release.md new file mode 100644 index 0000000..51b1924 --- /dev/null +++ b/.claude/commands/release.md @@ -0,0 +1,50 @@ +# Release Command + +Review all changes in the repository and create a release with proper commit message, version tag, and push to remotes. + +## Argument: $ARGUMENTS + +The argument should be one of: +- `patch` - Bump the patch version (e.g., v0.35.3 -> v0.35.4) +- `minor` - Bump the minor version and reset patch to 0 (e.g., v0.35.3 -> v0.36.0) + +If no argument provided, default to `patch`. + +## Steps to perform: + +1. **Read the current version** from `pkg/version/version` + +2. **Calculate the new version** based on the argument: + - Parse the current version (format: vMAJOR.MINOR.PATCH) + - If `patch`: increment PATCH by 1 + - If `minor`: increment MINOR by 1, set PATCH to 0 + +3. **Update the version file** (`pkg/version/version`) with the new version + +4. **Review changes** using `git status` and `git diff --stat HEAD` + +5. **Compose a commit message** following this format: + - First line: 72 chars max, imperative mood summary + - Blank line + - Bullet points describing each significant change + - "Files modified:" section listing affected files + - Footer with Claude Code attribution + +6. **Stage all changes** with `git add -A` + +7. **Create the commit** with the composed message + +8. **Create a git tag** with the new version (e.g., `v0.36.0`) + +9. **Push to remotes** (origin and gitea) with tags: + ``` + git push origin main --tags + git push gitea main --tags + ``` + +10. **Report completion** with the new version and commit hash + +## Important: +- Do NOT push to github remote (only origin and gitea) +- Always verify the build compiles before committing: `CGO_ENABLED=0 go build -o /dev/null ./...` +- If build fails, fix issues before proceeding diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 2439ddb..537c267 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -117,7 +117,8 @@ "Bash(go run -exec '' -c 'package main; import \"\"git.mleku.dev/mleku/nostr/utils/normalize\"\"; import \"\"fmt\"\"; func main() { fmt.Println(string(normalize.URL([]byte(\"\"relay.example.com:3334\"\")))); fmt.Println(string(normalize.URL([]byte(\"\"relay.example.com:443\"\")))); fmt.Println(string(normalize.URL([]byte(\"\"ws://relay.example.com:3334\"\")))); fmt.Println(string(normalize.URL([]byte(\"\"wss://relay.example.com:3334\"\")))) }')", "Bash(go run:*)", "Bash(git commit -m \"$(cat <<''EOF''\nFix NIP-11 fetch URL scheme conversion for non-proxied relays\n\n- Convert wss:// to https:// and ws:// to http:// before fetching NIP-11\n documents, fixing failures for users not using HTTPS upgrade proxies\n- The fetchNIP11 function was using WebSocket URLs directly for HTTP\n requests, causing scheme mismatch errors\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude Opus 4.5 \nEOF\n)\")", - "Bash(/tmp/orly help:*)" + "Bash(/tmp/orly help:*)", + "Bash(git commit -m \"$(cat <<''EOF''\nAdd ORLY_POLICY_PATH for custom policy file location\n\n- Add ORLY_POLICY_PATH environment variable to configure custom policy\n file path, overriding the default ~/.config/ORLY/policy.json location\n- Enforce ABSOLUTE paths only - relay panics on startup if relative path\n is provided, preventing common misconfiguration errors\n- Update PolicyManager to store and expose configPath for hot-reload saves\n- Add ConfigPath() method to P struct delegating to internal PolicyManager\n- Update NewWithManager() signature to accept optional custom path parameter\n- Add BUG_REPORTS_AND_FEATURE_REQUEST_PROTOCOL.md with issue submission\n guidelines requiring environment details, reproduction steps, and logs\n- Update README.md with system requirements (500MB minimum memory) and\n link to bug report protocol\n- Update CLAUDE.md and README.md documentation for new ORLY_POLICY_PATH\n\nFiles modified:\n- app/config/config.go: Add PolicyPath config field\n- pkg/policy/policy.go: Add configPath storage and validation\n- app/handle-policy-config.go: Use policyManager.ConfigPath()\n- app/main.go: Pass cfg.PolicyPath to NewWithManager\n- pkg/policy/*_test.go: Update test calls with new parameter\n- BUG_REPORTS_AND_FEATURE_REQUEST_PROTOCOL.md: New file\n- README.md, CLAUDE.md: Documentation updates\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude Opus 4.5 \nEOF\n)\")" ], "deny": [], "ask": [] diff --git a/pkg/version/version b/pkg/version/version index 61da1d2..9a71172 100644 --- a/pkg/version/version +++ b/pkg/version/version @@ -1 +1 @@ -v0.35.3 \ No newline at end of file +v0.35.4