Skip to content

Commit 099242e

Browse files
committed
chore: prepare v0.2.4 release
1 parent 0d32837 commit 099242e

6 files changed

Lines changed: 264 additions & 0 deletions

File tree

.claude/settings.local.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

.cursor/rules/notes.mdc

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
description:
3+
globs:
4+
alwaysApply: true
5+
---
6+
[best-practice] Use npm config set prefix /usr/local before installing Claude CLI for non-root access
7+
[optimization] Use gosu for privilege dropping - better than su for containers
8+
[design] Create symlinks for auth files instead of copying to preserve host-container sync
9+
[gotcha] HOME environment variable needs explicit handling with gosu: export HOME=/home/claude
10+
11+
[design] Mount auth to /root/ but use symlinks from /home/claude/ for non-root access
12+
[best-practice] Use chmod 755 on /root and auth dirs + symlinks for non-root user
13+
[gotcha] Non-root user expects auth in $HOME/.claude but mounted to /root/.claude
14+
15+
[design] Remove emoji-heavy messages for clean Linux-style output
16+
[best-practice] Use concise error/warning prefixes like error: and warning:
17+
[optimization] Eliminate verbose startup messages for faster perceived launch
18+
19+
[best-practice] Add dangerous directory detection to prevent running in home/system dirs
20+
[design] Interactive prompt requires explicit yes to continue in dangerous directories
21+
[gotcha] Running --yolo in $HOME gives Claude access to ALL personal files
22+
23+
[best-practice] Follow Keep a Changelog format for CHANGELOG.md
24+
[design] Default to non-root mode with --dangerously-skip-permissions always added in YOLO mode
25+
[gotcha] Docker socket should not be mounted by default - use CLAUDE_YOLO_DOCKER_SOCKET=true
26+
27+
[design] Keep TODO lists minimal and actionable - overwhelming lists lead to paralysis
28+
29+
[design] Flexible volume mounting > hardcoded config directories
30+
[best-practice] Use familiar Docker -v syntax for volume arguments
31+
[optimization] Pass volumes via env var to avoid complex arg parsing between scripts
32+
[gotcha] Space-separated env vars need careful parsing to handle paths with spaces
33+
[gotcha] -v flag conflicts with Vertex AI auth - use --mount for volumes instead
34+
35+
[optimization] Symlink all /root/* to /home/claude/* - simpler than individual mappings
36+
[design] Auto-discovery > hardcoded tool list - loop through /root/* for symlinks
37+
[best-practice] Skip . and .. when iterating directories to avoid infinite loops
38+
[gotcha] Read-only protection via Docker mount :ro flag, not file permissions
39+
[best-practice] Keep full permissions inside container - Claude needs them to function

CHANGELOG.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.2.4] - 2025-06-23
11+
1012
### Added
1113
- Unified logging system for improved UX
1214
- Clean output by default showing only authentication method
@@ -27,6 +29,50 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2729
### Performance
2830
- Docker build caching in GitHub Actions (dual GHA + registry cache strategy)
2931

32+
## [0.2.3] - 2025-06-23
33+
34+
### Added
35+
- Dynamic fallback UID/GID selection for root users
36+
37+
### Fixed
38+
- Handle UID 0 (root user) case in docker-entrypoint.sh
39+
- Add explicit github_token to claude-code-review action
40+
- Handle UID=0 and GID=0 independently for security
41+
42+
### Changed
43+
- Simplify root user handling with hardcoded 1000 fallback
44+
- Remove redundant comments in UID/GID handling
45+
- Run Claude review once per PR and on manual trigger
46+
47+
### Performance
48+
- Docker build caching improvements in GitHub Actions
49+
50+
### Documentation
51+
- Update logs and changelog for issue #19 caching fix
52+
- Clarify root cause and solution for UID 0 handling
53+
- Add OIDC token fix to dev log
54+
55+
## [0.2.2] - 2025-06-23
56+
57+
### Added
58+
- Docker image update to ghcr.io with fallback to Docker Hub
59+
- Note when falling back to Docker Hub image in installer
60+
61+
### Fixed
62+
- Set shellcheck to error severity to prevent CI blocking
63+
64+
### Documentation
65+
- Improve usage examples across all documentation
66+
67+
## [0.2.1] - 2025-06-23
68+
69+
### Fixed
70+
- Move shellcheck to CI workflow, remove from release
71+
72+
## [0.2.0] - 2025-06-23
73+
74+
### Added
75+
- --verbose flag to show environment info and pass to Docker
3076

3177
## [0.1.0] - 2025-06-21
3278

workflows/GIT-COMMIT.md

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
Perform as you are an expert software engineer and meticulous code reviewer.
2+
Your task is to review the code, and generate a single Git commit message.
3+
4+
# GIT Commit Workflow
5+
- First perform a through code review on the current git state, including staged changes, git branch name, find if
6+
there are any obvious debug statements, bad naming, typos, and potential BUGs;
7+
- Then If current branch does not reflect the changes, checkout to new branch with a very short descriptive name;
8+
- Finally, generate a single commit message that strictly follows the following instruction;
9+
10+
## Good work! We're in pre-release stage now!
11+
12+
BUT before release let us ensure everything is ready.
13+
- Check if we've added related dev logs in @DEV-LOGS.md;
14+
- Check if we've added a version tag;
15+
- Check if we've updated the @CHANGELOG.md accordingly to current changes or commit;
16+
- Check if we should update the @README.md with new features, usage, etc;
17+
18+
---
19+
20+
21+
### PRIMARY GOAL
22+
23+
Produce one short, complete commit message for the staged changes.
24+
25+
### OUTPUT FORMAT
26+
- We're fullstack but majoring in backend system so we'd always prefer linux-style and Linus Torvalds's tone.
27+
- We write or explain to the damn point. Be clear, be super concise - no fluff, no hand-holding, no repeating.
28+
- Minimal markdown markers, no unnecessary formatting.
29+
- We'd prefer ascii arts, so be minimal unicode emojis.
30+
- Return **only** the commit message text—no code fences, no commentary, no extra markup or explanations.
31+
- The summary (first) line **must** be imperative, present tense, ≤72 characters, and **must not** end with a period.
32+
- Wrap all body lines at a maximum of 72 characters.
33+
- If a body is included, format it as a clean, concise bullet list, each line starting with - .
34+
- If the staged diff includes obvious debug statements (`print`, `console.log`, `dbg!`, `puts`, etc.), append a new line at the end of the body starting with
35+
`WARNING: Contains debug statements: <list of debug lines>`.
36+
37+
---
38+
39+
### SPEC FOR YOUR REFERENCE
40+
41+
Conventional Commits 1.0.0
42+
==========================
43+
44+
Structure
45+
=========
46+
47+
The commit message should be structured as follows:
48+
```
49+
<type>[optional scope]: <description>
50+
51+
[optional body] (super clean, concise bullet list )
52+
53+
[optional footer(s)] (like Close #11, BREAKING CHANGE, etc.)
54+
```
55+
56+
Type Definitions
57+
==============
58+
59+
Each commit type has a specific meaning and purpose:
60+
61+
- **fix**: A commit that patches a bug in your codebase
62+
- **feat**: A commit that introduces a new feature to the codebase
63+
- **build**: Changes that affect the build system or external dependencies
64+
- **chore**: Changes to the build process or auxiliary tools and libraries
65+
- **ci**: Changes to CI configuration files and scripts
66+
- **docs**: Documentation only changes
67+
- **perf**: A code change that improves performance
68+
- **refactor**: A code change that neither fixes a bug nor adds a feature
69+
- **style**: Changes that do not affect the meaning of the code
70+
- **test**: Adding missing tests or correcting existing tests
71+
72+
Note: Types other than \"fix:\" and \"feat:\" are allowed and have no implicit effect in semantic versioning (unless they include a BREAKING CHANGE).
73+
74+
Detailed Rules
75+
=============
76+
77+
The key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\", \"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\", \"MAY\", and \"OPTIONAL\" in this document are to be interpreted as described in [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt).
78+
79+
1. Commits MUST be prefixed with a type, which consists of a noun, `feat`, `fix`, etc., followed by the OPTIONAL scope, OPTIONAL `!`, and REQUIRED terminal colon and space.
80+
2. The type `feat` MUST be used when a commit adds a new feature to your application or library.
81+
3. The type `fix` MUST be used when a commit represents a bug fix for your application.
82+
4. A scope MAY be provided after a type. A scope MUST consist of a noun describing a section of the codebase surrounded by parenthesis, e.g., `fix(parser):`
83+
5. A description MUST immediately follow the colon and space after the type/scope prefix. The description is a short summary of the code changes, e.g., _fix: array parsing issue when multiple spaces were contained in string_.
84+
6. A longer commit body MAY be provided after the short description, providing additional contextual information about the code changes. The body MUST begin one blank line after the description.
85+
7. A commit body is free-form and MAY consist of any number of newline separated paragraphs.
86+
8. One or more footers MAY be provided one blank line after the body. Each footer MUST consist of a word token, followed by either a `:<space>` or `<space>#` separator, followed by a string value (this is inspired by the [git trailer convention](https://git-scm.com/docs/git-interpret-trailers)).
87+
9. A footer's token MUST use `-` in place of whitespace characters, e.g., `Acked-by` (this helps differentiate the footer section from a multi-paragraph body). An exception is made for `BREAKING CHANGE`, which MAY also be used as a token.
88+
10. A footer's value MAY contain spaces and newlines, and parsing MUST terminate when the next valid footer token/separator pair is observed.
89+
11. Breaking changes MUST be indicated in the type/scope prefix of a commit, or as an entry in the footer.
90+
12. If included as a footer, a breaking change MUST consist of the uppercase text BREAKING CHANGE, followed by a colon, space, and description, e.g., _BREAKING CHANGE: environment variables now take precedence over config files_.
91+
13. If included in the type/scope prefix, breaking changes MUST be indicated by a `!` immediately before the `:`. If `!` is used, `BREAKING CHANGE:` MAY be omitted from the footer section, and the commit description SHALL be used to describe the breaking change.
92+
14. Types other than `feat` and `fix` MAY be used in your commit messages, e.g., _docs: update ref docs._
93+
15. The units of information that make up Conventional Commits MUST NOT be treated as case sensitive by implementors, with the exception of BREAKING CHANGE which MUST be uppercase.
94+
16. BREAKING-CHANGE MUST be synonymous with BREAKING CHANGE, when used as a token in a footer.
95+
96+
### Examples
97+
98+
#### Commit message with description and breaking change footer
99+
```
100+
feat: allow provided config object to extend other configs
101+
102+
BREAKING CHANGE: `extends` key in config file is now used for extending other config files
103+
```
104+
105+
#### Commit message with `!` to draw attention to breaking change
106+
```
107+
feat!: send an email to the customer when a product is shipped
108+
```
109+
110+
#### Commit message with scope and `!` to draw attention to breaking change
111+
```
112+
feat(api)!: send an email to the customer when a product is shipped
113+
```
114+
115+
#### Commit message with both `!` and BREAKING CHANGE footer
116+
```
117+
chore!: drop support for Node 6
118+
119+
BREAKING CHANGE: use JavaScript features not available in Node 6.
120+
```
121+
122+
#### Commit message with no body
123+
```
124+
docs: correct spelling of CHANGELOG
125+
```
126+
127+
#### Commit message with scope
128+
```
129+
feat(lang): add Polish language
130+
```
131+
132+
#### Commit message with multi-paragraph body and multiple footers
133+
```
134+
fix: prevent racing of requests
135+
136+
Introduce a request id and a reference to latest request. Dismiss
137+
incoming responses other than from latest request.
138+
139+
Remove timeouts which were used to mitigate the racing issue but are
140+
obsolete now.
141+
142+
Reviewed-by: Z
143+
Refs: #123
144+
```

workflows/GITHUB-ISSUE.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
- Use `gh issue create` to create issues.
2+
- Create issues before implementing new features or fixing bugs;
3+
- Mention the issue number in commits and PRs;
4+
- Follow the issue template for consistency, be super brief and to the point;
5+
- We're fullstack but majoring in backend system so we'd always prefer linux-style and Linus Torvalds's tone.
6+
- We write or explain to the damn point. Be clear, be super concise - no fluff, no hand-holding, no repeating.
7+
- Minimal markdown markers, no unnecessary formatting.
8+
- Minimal unicode emojis.
9+
10+
- ISSUE_TEMPLATE.md
11+
``` markdown
12+
## Description
13+
<Super Brief description of the issue or feature request>
14+
15+
## Type
16+
- [ ] Bug fix
17+
- [ ] New feature
18+
- [ ] Enhancement
19+
- [ ] Documentation
20+
21+
## Details
22+
<Detailed description of the problem and proposed solution>
23+
24+
## Related Files
25+
<List of files that need to be modified>
26+
27+
## Test Plan
28+
<A TOD List on how to verify the fix works>
29+
```

workflows/GITHUB-PR.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Use `gh` to create PR, mention to close related issues.
2+
- We're fullstack but majoring in backend system so we'd always prefer linux-style and Linus Torvalds's tone.
3+
- We write or explain to the damn point. Be clear, be super concise - no fluff, no hand-holding, no repeating.
4+
- Minimal markdown markers, no unnecessary formatting.
5+
- We'd prefer ascii arts, so be minimal unicode emojis.

0 commit comments

Comments
 (0)