Repository navigation
Expand file tree
/
Copy path.gitignore
More file actions
283 lines (252 loc) · 10.1 KB
/
Copy path.gitignore
File metadata and controls
283 lines (252 loc) · 10.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
# ─── OS / editor ─────────────────────────────────────────────────────────
.DS_Store
Thumbs.db
desktop.ini
*.swp
*.swo
*~
.vscode/
.idea/
*.iml
.cursor/
.aider*
# ─── Node / pnpm / yarn ──────────────────────────────────────────────────
node_modules
.pnp
.pnp.*
.yarn/*
!.yarn/releases
!.yarn/plugins
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# ─── Rust / Cargo ────────────────────────────────────────────────────────
target/
**/*.rs.bk
Cargo.lock.bak
# rust-embed webui stub — created by engine-ci.yml and Dockerfile.webui
# before building with --features webui. Real content is Vite output
# (client/dist/) copied in at build time; this is a type-check stub only.
engine/crates/ps5upload-engine/webui/
# PS5 ELF images staged for the engine's optional build-time embed
# (build.rs). Populated by docker-engine.yml before an image build so the
# files ride along in the existing `COPY engine/` layer; a source build
# picks them up from the repo's own payload/ directory instead.
engine/crates/ps5upload-engine/payload/
# ─── Python ──────────────────────────────────────────────────────────────
__pycache__/
*.py[cod]
*$py.class
*.egg-info/
.venv/
venv/
.pytest_cache/
.mypy_cache/
.ruff_cache/
scripts/.translate-cache.json
# ─── Client (Vite / Tauri) ───────────────────────────────────────────────
client/dist/
client/dist-console/
client/.vite/
client/out/
client/.cache/
client/release/
client/src-tauri/target/
client/src-tauri/gen/schemas/
# ─── Payload build outputs ───────────────────────────────────────────────
# The built ELF is embedded as a Tauri resource; we check it in as a
# release artifact. Object files + build dirs are not.
payload/build/
# The extractor is embedded in the helper from a build, never checked in.
payload/extractor/build/
payload/extractor/ps5upload-extractor.elf
*.o
*.a
*.so
*.dylib
tests/lab/elev_probe/*.elf
# ─── Bench artefacts (generated on demand) ───────────────────────────────
bench/fixtures/
bench/reports/
# ─── Logs / debug dumps ──────────────────────────────────────────────────
# Anchor `logs/` and `debug/` to the repo root so the patterns don't
# case-insensitively swallow `client/src/screens/Logs/` on macOS/Windows
# filesystems — that happened once and left a real source file
# un-tracked until CI noticed on a clean checkout.
*.log
/logs/
/debug/
*.dmp
crash-*.txt
# ─── Secrets + local config ──────────────────────────────────────────────
.env
.env.local
.env.*.local
.envrc
*.pem
*.key
!tests/lab/*.key
# ─── Coverage ────────────────────────────────────────────────────────────
coverage/
*.lcov
.nyc_output/
# ─── Archives / test data ────────────────────────────────────────────────
test_games/
fixtures_out/
*.rar
*.zip
*.7z
*.tar
*.tar.gz
*.tgz
# The extractor's RAR test archives (libarchive's, see their README) are checked in.
!payload/extractor/tests/fixtures/*.rar
# ─── Backup / temp ───────────────────────────────────────────────────────
*.bak
*.tmp
*.orig
*.rej
.*.sw?
temp/
tmp/
# ─── AI-assistant + agent artefacts ──────────────────────────────────────
.claude/
.codex/
.anthropic/
AGENTS.md
CLAUDE.local.md
.opencode/
opencode.json
opencode.jsonc
# ─── Per-platform packaging outputs ──────────────────────────────────────
# .app / .dmg / .msi / .exe / .deb / .AppImage / .rpm all live under
# client/src-tauri/target, already covered above. This section
# catches copies made outside the build tree.
*.dmg
*.msi
*.AppImage
*.deb
*.rpm
*.apk
*.aab
# ─── Playwright + UI test artefacts ──────────────────────────────────────
# Browser automation drops snapshots and console logs here during
# development. Reproducible from a fresh test run, not checked in.
.playwright-mcp/
*.playwright-mcp/
playwright-report/
test-results/
/output/playwright/
/output/research-*/
/output/validate/
/.playwright-cli/
# ─── Dev screenshots / debug captures ────────────────────────────────────
# Screenshots taken while debugging the UI land at the repo ROOT, and this
# used to be a list of the exact filenames people had happened to use
# (dashboard.png, shell-now.png, …). That only ever catches the capture
# someone already made: `.search.png`, `connection-448.png` and
# `desktop-hardware-1280.jpeg` all got committed to a PUBLIC repo because
# they were not on the list.
#
# So ignore image/video files AT THE ROOT by default and name the
# exceptions. Anchored with a leading slash, so real assets under
# client/public/ and client/src-tauri/icons/ are untouched.
/*.png
/*.jpg
/*.jpeg
/*.gif
/*.webp
/*.bmp
/*.mp4
/*.mov
/*.webm
# The one root image that belongs here — README.md renders it.
!/logo.png
# ─── Local /tmp helpers + diagnostic scripts ─────────────────────────────
# Ad-hoc Python scripts written during debugging sessions
# (sendpayload, test_shell, klog_monitor, …) — they live in /tmp
# during dev and shouldn't get committed if copied into the repo root.
sendpayload.py
test_shell.py
test_screens.py
klog_monitor.py
klog_now.txt
klog_phase*.txt
ps5_startup.log
ps5upload_*.log
ps5upload_main_entered
# ─── macOS Application Support cache (extracted payload at runtime) ─────
# In case anyone runs the bundle from inside this checkout.
ps5upload.elf.tmp
ps5upload.elf.tmp.*
ps5upload.elf.gz.blake3.tmp
# ─── Built payload artifacts ────────────────────────────────────────────
# CI rebuilds these from C source on every release (see
# .github/workflows/publish.yml: "make payload" step). Tracking them
# caused two recurring problems:
# 1. Binary churn: contributors who run `make payload` locally get a
# diff-noise commit they have to revert (hit twice in 2.8.0 dev).
# 2. Stale-payload risk: a contributor changing payload C source
# could commit without rebuilding, shipping a desktop build that
# embeds the OLD .elf while CI release ships the NEW one.
# The desktop build script (client/src-tauri/build.rs::require_file)
# errors with "Build it first: make -C payload all" when missing, so
# the dev experience for fresh clones is still clean.
payload/ps5upload.elf
payload/ps5upload.elf.gz
# The SMB daemon: built from payload/smb/ and embedded in the helper (never shipped on its own).
payload/smb/ps5upload-smb.elf
payload/smb/build/
# ─── Personal scratch + notes ───────────────────────────────────────────
# Anything in /scratch or /notes-local that a dev wants to keep
# locally without checking in.
/scratch/
/notes-local/
NOTES.local.md
TODO.local.md
# Tauri mobile generated projects (regenerate with: tauri android init / ios init)
client/src-tauri/gen/
# Locally-built/signed Android artifacts (release flow produces these)
PS5Upload-android.apk
PS5Upload-android.apk.idsig
# iPhone builds (make ios-build, the release workflow).
*.ipa
*.idsig
# NEVER commit signing material. The Android release keystore + passwords
# live in GitHub Actions secrets (ANDROID_KEYSTORE_BASE64 etc.) and an
# off-repo backup (password manager). Committing a keystore to this PUBLIC
# repo would expose the app's signing identity — anyone could push a
# malicious "update" your users' devices would trust. This is a guard so a
# keystore can't be added by accident.
*.jks
*.keystore
*.p12
*.pepk
*.pfx
key.properties
# Vendored SQLite amalgamation, fetched + checksum-verified by
# scripts/install-ps5-sdk.sh (pinned in scripts/ps5-sdk.env). A 9 MB
# generated file that never changes between pins, so it is fetched
# rather than tracked.
payload/third_party/sqlite3/
payload/sqlite3.o
# Local corpus of PS5 system libraries ("fakelibs") gathered from the
# developer's own console for backport work. NEVER committed: these are Sony
# binaries, and every comparable project (BackPork, Backport Kitchen,
# Auto-Backpork, MacPork) refuses to redistribute them for the same reason.
# The app gathers them itself (Backport > Scan this console) from the user's
# own games, into ~/.ps5upload/fakelibs.
fakelibs/
# Brainstorming mockups (visual companion)
.superpowers/
# ─── Local-only docs (specs, plans, research — kept off GitHub) ──────────
docs/
# Intermediate objects of the vendored elfldr build (its ELF is tracked).
third_party/elfldr/*.o
third_party/elfldr/socksrv.elf
third_party/elfldr/bootstrap.elf
# Our build of the PS5 SDK startup code (payload/sdk-crt.mk)
payload/third_party/sdk-crt/build/
# ─── Release announcement drafts (make release-post) ─────────────────────
.release_posts/