Skip to content

Commit e5ffa75

Browse files
committed
Merge branch 'shuvcode-dev' into integration
Closes #329
2 parents 0cc8834 + fb6d6b4 commit e5ffa75

419 files changed

Lines changed: 19581 additions & 12337 deletions

File tree

Some content is hidden

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

.github/TEAM_MEMBERS

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
adamdotdevin
2+
Brendonovich
3+
fwang
4+
Hona
5+
iamdavidhill
6+
jayair
7+
jlongster
8+
kitlangton
9+
kommander
10+
MrMushrooooom
11+
nexxeln
12+
R44VC0RP
13+
rekram1-node
14+
RhysSullivan
15+
thdxr

.github/actions/setup-bun/action.yml

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,13 @@ description: "Setup Bun with caching and install dependencies"
33
runs:
44
using: "composite"
55
steps:
6-
- name: Setup Node.js
7-
uses: actions/setup-node@v4
6+
- name: Cache Bun dependencies
7+
uses: actions/cache@v4
88
with:
9-
node-version: "22"
10-
11-
- name: Mount Bun Cache
12-
uses: useblacksmith/stickydisk@v1
13-
with:
14-
key: ${{ github.repository }}-bun-cache-${{ runner.os }}
15-
path: ~/.bun
9+
path: ~/.bun/install/cache
10+
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lockb') }}
11+
restore-keys: |
12+
${{ runner.os }}-bun-
1613
1714
- name: Setup Bun
1815
uses: oven-sh/setup-bun@v2

.github/last-synced-tag

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v1.2.6
1+
v1.2.7

.github/pull_request_template.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,29 @@
1+
### Issue for this PR
2+
3+
Closes #
4+
5+
### Type of change
6+
7+
- [ ] Bug fix
8+
- [ ] New feature
9+
- [ ] Refactor / code improvement
10+
- [ ] Documentation
11+
112
### What does this PR do?
213

3-
Please provide a description of the issue (if there is one), the changes you made to fix it, and why they work. It is expected that you understand why your changes work and if you do not understand why at least say as much so a maintainer knows how much to value the PR.
14+
Please provide a description of the issue, the changes you made to fix it, and why they work. It is expected that you understand why your changes work and if you do not understand why at least say as much so a maintainer knows how much to value the PR.
415

516
**If you paste a large clearly AI generated description here your PR may be IGNORED or CLOSED!**
617

718
### How did you verify your code works?
19+
20+
### Screenshots / recordings
21+
22+
_If this is a UI change, please include a screenshot or recording._
23+
24+
### Checklist
25+
26+
- [ ] I have tested my changes locally
27+
- [ ] I have not included unrelated changes in this PR
28+
29+
_If you do not follow this template your PR will be automatically rejected._

.github/workflows/duplicate-issues.yml

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ name: duplicate-issues
22

33
on:
44
issues:
5-
types: [opened]
5+
types: [opened, edited]
66

77
jobs:
88
check-duplicates:
9+
if: github.event.action == 'opened'
910
runs-on: blacksmith-4vcpu-ubuntu-2404
1011
permissions:
1112
contents: read
@@ -34,7 +35,7 @@ jobs:
3435
"webfetch": "deny"
3536
}
3637
run: |
37-
opencode run -m opencode/claude-haiku-4-5 "A new issue has been created:
38+
opencode run -m opencode/claude-sonnet-4-6 "A new issue has been created:
3839
3940
Issue number: ${{ github.event.issue.number }}
4041
@@ -115,3 +116,62 @@ jobs:
115116
If you believe this was flagged incorrectly, please let a maintainer know.
116117
117118
Remember: post at most ONE comment combining all findings. If everything is fine, post nothing."
119+
120+
recheck-compliance:
121+
if: github.event.action == 'edited' && contains(github.event.issue.labels.*.name, 'needs:compliance')
122+
runs-on: blacksmith-4vcpu-ubuntu-2404
123+
permissions:
124+
contents: read
125+
issues: write
126+
steps:
127+
- name: Checkout repository
128+
uses: actions/checkout@v4
129+
with:
130+
fetch-depth: 1
131+
132+
- uses: ./.github/actions/setup-bun
133+
134+
- name: Install opencode
135+
run: curl -fsSL https://opencode.ai/install | bash
136+
137+
- name: Recheck compliance
138+
env:
139+
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
140+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
141+
OPENCODE_PERMISSION: |
142+
{
143+
"bash": {
144+
"*": "deny",
145+
"gh issue*": "allow"
146+
},
147+
"webfetch": "deny"
148+
}
149+
run: |
150+
opencode run -m opencode/claude-sonnet-4-6 "Issue #${{ github.event.issue.number }} was previously flagged as non-compliant and has been edited.
151+
152+
Lookup this issue with gh issue view ${{ github.event.issue.number }}.
153+
154+
Re-check whether the issue now follows our contributing guidelines and issue templates.
155+
156+
This project has three issue templates that every issue MUST use one of:
157+
158+
1. Bug Report - requires a Description field with real content
159+
2. Feature Request - requires a verification checkbox and description, title should start with [FEATURE]:
160+
3. Question - requires the Question field with real content
161+
162+
Additionally check:
163+
- No AI-generated walls of text (long, AI-generated descriptions are not acceptable)
164+
- The issue has real content, not just template placeholder text left unchanged
165+
- Bug reports should include some context about how to reproduce
166+
- Feature requests should explain the problem or need
167+
- We want to push for having the user provide system description & information
168+
169+
Do NOT be nitpicky about optional fields. Only flag real problems like: no template used, required fields empty or placeholder text only, obviously AI-generated walls of text, or completely empty/nonsensical content.
170+
171+
If the issue is NOW compliant:
172+
1. Remove the needs:compliance label: gh issue edit ${{ github.event.issue.number }} --remove-label needs:compliance
173+
2. Find and delete the previous compliance comment (the one containing <!-- issue-compliance -->) using: gh api repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/comments --jq '.[] | select(.body | contains(\"<!-- issue-compliance -->\")) | .id' then delete it with: gh api -X DELETE repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/comments/{id}
174+
3. Post a short comment thanking them for updating the issue.
175+
176+
If the issue is STILL not compliant:
177+
Post a comment explaining what still needs to be fixed. Keep the needs:compliance label."

.github/workflows/nix-desktop.yml.disabled

Lines changed: 0 additions & 46 deletions
This file was deleted.

.github/workflows/nix-eval.yml

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
name: nix-eval
2+
3+
on:
4+
push:
5+
branches: [dev]
6+
pull_request:
7+
branches: [dev]
8+
workflow_dispatch:
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: true
13+
14+
permissions:
15+
contents: read
16+
17+
jobs:
18+
nix-eval:
19+
runs-on: blacksmith-4vcpu-ubuntu-2404
20+
timeout-minutes: 15
21+
steps:
22+
- name: Checkout repository
23+
uses: actions/checkout@v6
24+
25+
- name: Setup Nix
26+
uses: nixbuild/nix-quick-install-action@v34
27+
28+
- name: Evaluate flake outputs (all systems)
29+
run: |
30+
set -euo pipefail
31+
nix --version
32+
33+
echo "=== Flake metadata ==="
34+
nix flake metadata
35+
36+
echo ""
37+
echo "=== Flake structure ==="
38+
nix flake show --all-systems
39+
40+
SYSTEMS="x86_64-linux aarch64-linux x86_64-darwin aarch64-darwin"
41+
PACKAGES="opencode"
42+
# TODO: move 'desktop' to PACKAGES when #11755 is fixed
43+
OPTIONAL_PACKAGES="desktop"
44+
45+
echo ""
46+
echo "=== Evaluating packages for all systems ==="
47+
for system in $SYSTEMS; do
48+
echo ""
49+
echo "--- $system ---"
50+
for pkg in $PACKAGES; do
51+
printf " %s: " "$pkg"
52+
if output=$(nix eval ".#packages.$system.$pkg.drvPath" --raw 2>&1); then
53+
echo "✓"
54+
else
55+
echo "✗"
56+
echo "::error::Evaluation failed for packages.$system.$pkg"
57+
echo "$output"
58+
exit 1
59+
fi
60+
done
61+
done
62+
63+
echo ""
64+
echo "=== Evaluating optional packages ==="
65+
for system in $SYSTEMS; do
66+
echo ""
67+
echo "--- $system ---"
68+
for pkg in $OPTIONAL_PACKAGES; do
69+
printf " %s: " "$pkg"
70+
if output=$(nix eval ".#packages.$system.$pkg.drvPath" --raw 2>&1); then
71+
echo "✓"
72+
else
73+
echo "✗"
74+
echo "::warning::Evaluation failed for packages.$system.$pkg"
75+
echo "$output"
76+
fi
77+
done
78+
done
79+
80+
echo ""
81+
echo "=== Evaluating devShells for all systems ==="
82+
for system in $SYSTEMS; do
83+
printf "%s: " "$system"
84+
if output=$(nix eval ".#devShells.$system.default.drvPath" --raw 2>&1); then
85+
echo "✓"
86+
else
87+
echo "✗"
88+
echo "::error::Evaluation failed for devShells.$system.default"
89+
echo "$output"
90+
exit 1
91+
fi
92+
done
93+
94+
echo ""
95+
echo "=== All evaluations passed ==="

.github/workflows/nix-hashes.yml

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,39 @@
11
name: nix-hashes
22

3-
# Disabled in fork - requires GitHub App credentials not available in Latitudes-Dev/shuvcode
4-
# To re-enable, set up OPENCODE_APP_ID and OPENCODE_APP_SECRET secrets
5-
63
permissions:
74
contents: write
85

96
on:
107
workflow_dispatch:
11-
inputs:
12-
force:
13-
description: "Force run (disabled in fork)"
14-
required: false
15-
default: "false"
16-
# Disabled triggers - uncomment to re-enable
17-
# push:
18-
# paths:
19-
# - "bun.lock"
20-
# - "package.json"
21-
# - "packages/*/package.json"
22-
# - "flake.lock"
23-
# - ".github/workflows/nix-hashes.yml"
24-
# pull_request:
25-
# paths:
26-
# - "bun.lock"
27-
# - "package.json"
28-
# - "packages/*/package.json"
29-
# - "flake.lock"
30-
# - ".github/workflows/nix-hashes.yml"
8+
push:
9+
branches: [dev, beta]
10+
paths:
11+
- "bun.lock"
12+
- "package.json"
13+
- "packages/*/package.json"
14+
- "flake.lock"
15+
- "nix/node_modules.nix"
16+
- "nix/scripts/**"
17+
- "patches/**"
18+
- ".github/workflows/nix-hashes.yml"
3119

3220
jobs:
33-
nix-hashes:
34-
# Disabled in fork - always skip unless manually triggered with force=true
35-
if: github.event.inputs.force == 'true'
36-
runs-on: blacksmith-4vcpu-ubuntu-2404
37-
env:
38-
TITLE: node_modules hashes
21+
# Native runners required: bun install cross-compilation flags (--os/--cpu)
22+
# do not produce byte-identical node_modules as native installs.
23+
compute-hash:
24+
strategy:
25+
fail-fast: false
26+
matrix:
27+
include:
28+
- system: x86_64-linux
29+
runner: blacksmith-4vcpu-ubuntu-2404
30+
- system: aarch64-linux
31+
runner: blacksmith-4vcpu-ubuntu-2404-arm
32+
- system: x86_64-darwin
33+
runner: macos-15-intel
34+
- system: aarch64-darwin
35+
runner: macos-latest
36+
runs-on: ${{ matrix.runner }}
3937

4038
steps:
4139
- name: Checkout repository

0 commit comments

Comments
 (0)