Skip to content

Commit 9d918fe

Browse files
release: v0.16.1-zh.1 (#6)
release: v0.16.1-zh.1
2 parents 5869a9c + a26517d commit 9d918fe

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+3615
-719
lines changed

.dockerignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,7 @@ target/
66
!CLAUDE.md
77
node_modules/
88
tools-src/
9+
.venv/
10+
tests/e2e/.venv/
11+
.pytest_cache/
12+
__pycache__/
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
name: Bug report
3+
about: Report a bug in ironclaw-zh
4+
title: "[Bug] "
5+
labels: bug
6+
assignees: ""
7+
---
8+
9+
## Summary
10+
11+
Briefly describe the bug.
12+
13+
## Environment
14+
15+
- Version:
16+
- OS:
17+
- Install method:
18+
- Database backend:
19+
- Model provider:
20+
- Deployment mode:
21+
22+
## Steps to Reproduce
23+
24+
1.
25+
2.
26+
3.
27+
28+
## Expected Behavior
29+
30+
What did you expect to happen?
31+
32+
## Actual Behavior
33+
34+
What actually happened?
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
name: Docs improvement
3+
about: Suggest an improvement for documentation
4+
title: "[Docs] "
5+
labels: documentation
6+
assignees: ""
7+
---
8+
9+
## Which document?
10+
11+
Please specify the file or section.
12+
13+
## Problem
14+
15+
What is unclear, missing, outdated, or confusing?
16+
17+
## Suggested Improvement
18+
19+
What should be changed?
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: Feature request
3+
about: Suggest a feature for ironclaw-zh
4+
title: "[Feature] "
5+
labels: enhancement
6+
assignees: ""
7+
---
8+
9+
## Summary
10+
11+
Describe the feature.
12+
13+
## Why
14+
15+
Why is this useful for the target users of this repo?
16+
17+
## Scope
18+
19+
Is this about docs, i18n, UI, deployment, presets, skills, or core runtime?
20+
21+
## Upstream Compatibility
22+
23+
Would this keep the project close to upstream?
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
name: Localization request
3+
about: Suggest UI or wording improvements for localization
4+
title: "[i18n] "
5+
labels: i18n
6+
assignees: ""
7+
---
8+
9+
## Area
10+
11+
- README
12+
- Docs
13+
- UI
14+
- Error messages
15+
- Skills
16+
- Other
17+
18+
## Current Wording
19+
20+
What is the current wording?
21+
22+
## Suggested Wording
23+
24+
What wording do you suggest?
25+
26+
## Locale Note
27+
28+
Internal locale identifiers must use `zh-Hans` and `zh-Hant`.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
name: Skill proposal
3+
about: Propose a new Chinese skill
4+
title: "[Skill] "
5+
labels: skills
6+
assignees: ""
7+
---
8+
9+
## Skill Name
10+
11+
## Use Case
12+
13+
What user task does this skill help with?
14+
15+
## Boundaries
16+
17+
What should the skill explicitly not do?
18+
19+
## Why This Should Be a Skill
20+
21+
Why should this live in `skills/` instead of core prompt or runtime logic?

.github/pull_request_template.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
## Summary
2+
3+
What does this PR change?
4+
5+
## Type of Change
6+
7+
- [ ] Docs
8+
- [ ] Localization
9+
- [ ] UI text
10+
- [ ] Skills
11+
- [ ] Preset
12+
- [ ] Runtime fix
13+
- [ ] Other
14+
15+
## Scope Check
16+
17+
- [ ] This PR stays within the project's current scope
18+
- [ ] This PR does not unnecessarily diverge from upstream
19+
- [ ] This PR does not introduce region-based Chinese locale identifiers as internal locale identifiers
20+
- [ ] This PR does not weaken upstream safety assumptions
21+
22+
## Writing / Localization Check
23+
24+
- [ ] I followed `docs/zh-Hans/terminology.md`
25+
- [ ] I followed `docs/zh-Hans/style-guide.md`
26+
- [ ] I kept locale naming consistent with `locales/README.md`
27+
28+
## Testing / Verification
29+
30+
Describe how this change was verified.

.github/workflows/code_style.yml

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ jobs:
1212
- name: Install Rust
1313
uses: dtolnay/rust-toolchain@stable
1414
with:
15-
profile: minimal
1615
components: rustfmt
1716
- name: Check formatting
1817
run: cargo fmt --all -- --check
@@ -36,23 +35,48 @@ jobs:
3635
- name: Install Rust
3736
uses: dtolnay/rust-toolchain@stable
3837
with:
39-
profile: minimal
4038
components: clippy
4139
- uses: Swatinem/rust-cache@v2
4240
with:
4341
key: clippy-${{ matrix.name }}
4442
- name: Check lints
4543
run: cargo clippy --all --benches --tests --examples ${{ matrix.flags }} -- -D warnings
4644

45+
clippy-windows:
46+
name: Clippy Windows (${{ matrix.name }})
47+
runs-on: windows-latest
48+
strategy:
49+
fail-fast: false
50+
matrix:
51+
include:
52+
- name: all-features
53+
flags: "--all-features"
54+
- name: default
55+
flags: ""
56+
- name: libsql-only
57+
flags: "--no-default-features --features libsql"
58+
steps:
59+
- name: Checkout repository
60+
uses: actions/checkout@v6
61+
- name: Install Rust
62+
uses: dtolnay/rust-toolchain@stable
63+
with:
64+
components: clippy
65+
- uses: Swatinem/rust-cache@v2
66+
with:
67+
key: clippy-windows-${{ matrix.name }}
68+
- name: Check lints
69+
run: cargo clippy --all --benches --tests --examples ${{ matrix.flags }} -- -D warnings
70+
4771
# Roll-up job for branch protection
4872
code-style:
4973
name: Code Style (fmt + clippy)
5074
runs-on: ubuntu-latest
5175
if: always()
52-
needs: [format, clippy]
76+
needs: [format, clippy, clippy-windows]
5377
steps:
5478
- run: |
55-
if [[ "${{ needs.format.result }}" != "success" || "${{ needs.clippy.result }}" != "success" ]]; then
79+
if [[ "${{ needs.format.result }}" != "success" || "${{ needs.clippy.result }}" != "success" || "${{ needs.clippy-windows.result }}" != "success" ]]; then
5680
echo "One or more jobs failed"
5781
exit 1
5882
fi

.github/workflows/coverage.yml

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,31 @@
1+
# Code Coverage Workflow
2+
#
3+
# This workflow runs test coverage analysis and uploads reports to Codecov.
4+
# Coverage reports help identify untested code paths and maintain code quality.
5+
#
6+
# What it does:
7+
# - Runs unit and integration tests with coverage instrumentation
8+
# - Runs E2E tests with coverage instrumentation
9+
# - Uploads coverage reports to Codecov (https://codecov.io/gh/justinhuangcode/ironclaw-zh)
10+
#
11+
# Viewing coverage reports:
12+
# - PRs automatically get coverage comments showing changes in coverage
13+
# - Visit https://codecov.io/gh/justinhuangcode/ironclaw-zh for detailed coverage reports
14+
# - Coverage reports are generated for three configurations:
15+
# 1. all-features: Full feature set
16+
# 2. default: Default features
17+
# 3. libsql-only: Minimal libSQL-only configuration
18+
# - E2E coverage tracks end-to-end test coverage separately
19+
#
20+
# Coverage files:
21+
# - Unit/integration: lcov.info (uploaded to Codecov with "unit" flag)
22+
# - E2E: e2e-coverage.info (uploaded to Codecov with "e2e" flag)
23+
#
24+
# Requirements:
25+
# - Uses cargo-llvm-cov for coverage instrumentation
26+
# - Requires PostgreSQL for integration tests (pgvector/pgvector:pg16)
27+
# - E2E tests require Python 3.12 and Playwright
28+
129
name: Code Coverage
230
on:
331
push:
@@ -91,7 +119,7 @@ jobs:
91119
flags: ${{ matrix.name }}
92120
disable_search: true
93121
use_oidc: true
94-
fail_ci_if_error: true
122+
fail_ci_if_error: false
95123

96124
e2e-coverage:
97125
name: E2E Coverage
@@ -175,7 +203,7 @@ jobs:
175203
flags: e2e
176204
disable_search: true
177205
use_oidc: true
178-
fail_ci_if_error: true
206+
fail_ci_if_error: false
179207

180208
- name: Upload screenshots on failure
181209
if: failure()
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Localization Guardrails
2+
on:
3+
pull_request:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
localization-guardrails:
10+
name: Localization Guardrails
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout repository
14+
uses: actions/checkout@v6
15+
- name: Setup Node.js
16+
uses: actions/setup-node@v6
17+
with:
18+
node-version: 22
19+
- name: Check locale structure
20+
run: node ./scripts/check-locales.mjs
21+
- name: Check forbidden locale identifiers
22+
run: node ./scripts/check-forbidden-locale-ids.mjs
23+
- name: Check i18n key references
24+
run: node ./scripts/check-i18n-keys.mjs
25+
- name: Check web client syntax
26+
run: |
27+
node --check ./src/channels/web/static/app.js
28+
node --check ./src/channels/web/static/i18n.js

0 commit comments

Comments
 (0)