Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
4861 commits
Select commit Hold shift + click to select a range
adce8c6
feat: add private app access extension event contract (#2556)
Salazareo Feb 26, 2026
2308990
perf:remove recents cache (#2558)
Salazareo Feb 27, 2026
784847b
feat: enforce private app hosting access gate (#2557)
Salazareo Feb 27, 2026
613b048
Add nano banana 2 (#2562)
reynaldichernando Feb 27, 2026
7c437fa
fix: corrected service reference (#2559)
4nshuman Feb 27, 2026
8668257
fix(backend): default rate-limit scope instead of error (#2564)
KernelDeimos Feb 27, 2026
7e07c3d
feat: add private access rollout gate and auditing (#2560)
Salazareo Feb 27, 2026
9d4e990
dev(oidc): switch login/signup flows where applicable (#2550)
KernelDeimos Feb 27, 2026
2cc8cb2
[OIDC] allow user deletion for accounts without a password (#2567)
KernelDeimos Feb 27, 2026
2eb16ce
chore: switch private hosting domain to puter.dev (#2565)
Salazareo Feb 28, 2026
537f395
feat: add private app direct-login bootstrap page (#2566)
Salazareo Feb 28, 2026
bb02fc6
fix: hardcode default perm (#2570)
Salazareo Feb 28, 2026
314c671
fix: redis startup (#2571)
Salazareo Feb 28, 2026
f2926c9
fix(oidc): bring "Add Existing User" to working state (#2572)
KernelDeimos Feb 28, 2026
0f33e49
Permission modal now displays application's icon and title. Read and …
miikakuisma Mar 2, 2026
43b3139
Revert "Permission modal now displays application's icon and title. R…
jelveh Mar 2, 2026
c0583a9
Fix: When a maximized window gets resized, Puter apps should be resiz…
miikakuisma Mar 2, 2026
f6b9c69
fix(auth): add explicit check for access token suspension (#2576)
KernelDeimos Mar 2, 2026
676b6c3
fix(ai): additional auth guard (#2577)
KernelDeimos Mar 2, 2026
8073f73
Eric/26323 revert 26322 (#2578)
KernelDeimos Mar 3, 2026
8349b0d
Revert "fix(auth): add explicit check for access token suspension (#2…
KernelDeimos Mar 3, 2026
9fd1d0a
Revert "fix(ai): additional auth guard (#2577)"
KernelDeimos Mar 3, 2026
91b9aa0
Reapply "fix(auth): add explicit check for access token suspension (#…
KernelDeimos Mar 3, 2026
930cbfb
fix(ai): additional auth guard (corrected 676b6c3)
KernelDeimos Mar 3, 2026
4f5fec5
feat: resolve private app hosts by index_url fallback (#2583)
Salazareo Mar 3, 2026
1f975b9
fix: private app config to use app urls (#2586)
Salazareo Mar 3, 2026
3cd5268
fix(oidc): login flow with `puter.ui.authenticateWithPuter`
KernelDeimos Mar 4, 2026
911c163
feat: private app config to use app urls + app routing (#2587)
Salazareo Mar 4, 2026
f0d0e1d
docs : udpdate current year (#2585)
Babali42 Mar 4, 2026
80cabca
Add Google SVG icon to sign-in button
jelveh Mar 4, 2026
dbdead9
fix: remove redis cache scan in favour of direct key invalidation (#2…
Salazareo Mar 4, 2026
468558f
dev(oidc): hide unnecessary div
KernelDeimos Mar 4, 2026
adf034b
feat: add subdomain to private asset tokens (#2591)
Salazareo Mar 4, 2026
8380b28
fix: reset subdomain if empty (#2593)
Salazareo Mar 4, 2026
6b6f9b4
fix: puter site middleware host (#2594)
Salazareo Mar 4, 2026
6248a89
Add autoplay to iframe allow list
jelveh Mar 4, 2026
f887c56
Restored previously used border colors
miikakuisma Mar 4, 2026
8a14871
fix: bad token generation for private apps (#2596)
Salazareo Mar 4, 2026
1720c97
fix: origin canonization (#2597)
Salazareo Mar 4, 2026
fc29e57
fix(oidc): request object reference in oidc signup
KernelDeimos Mar 4, 2026
9721943
fix: prioritize new token thant anything outdated stored in localstor…
Salazareo Mar 4, 2026
d802d12
Add UI notify API and notification handling
jelveh Mar 4, 2026
0864b9e
dev(apps): add configuration to not use app icon subdomain (#2603)
KernelDeimos Mar 5, 2026
d28cc46
fix: add logs to debug on prod (#2604)
Salazareo Mar 5, 2026
3f0b0bf
feat: more robust error logs (#2605)
Salazareo Mar 5, 2026
237973f
fix: fetching user from session token (#2607)
Salazareo Mar 5, 2026
9a6178e
Make credentialless false by default
ProgrammerIn-wonderland Mar 5, 2026
4aab066
feat: redirect away cookie (#2609)
Salazareo Mar 5, 2026
f167da9
clean: remove a log (#2610)
KernelDeimos Mar 5, 2026
8e794fa
Merge pull request #2595 from HeyPuter/miika/put-611
miikakuisma Mar 6, 2026
a861c3e
chore: typeFixes (#2615)
Salazareo Mar 6, 2026
a0fc1bc
add gpt 5.3 codex and gpt 5.4 (#2618)
ProgrammerIn-wonderland Mar 7, 2026
2a027ed
fix(puterfs): await queue items for fsentry action (#2616)
KernelDeimos Mar 7, 2026
0fa0340
clean(apps): merge fns only called by get_app_icon_url (#2617)
KernelDeimos Mar 7, 2026
0047778
use openrouter provided USD cost when present (#2619)
ProgrammerIn-wonderland Mar 8, 2026
62df3df
Add nl2br Handlebars helper and use in template
jelveh Mar 8, 2026
06b6671
fix gemini image provider implementation (#2569)
P3il4 Mar 9, 2026
19df50b
Add Networking examples to docs index page (#2613)
theluckystrike Mar 9, 2026
5e7c2c3
Update Hosting API description #2612 (#2620)
eshwar-artyz Mar 9, 2026
e4a5294
fix: private app token (#2623)
Salazareo Mar 9, 2026
57a2999
feat: phase 1 canonical app origin resolution (#2624)
Salazareo Mar 9, 2026
b687ba0
Ns/configurable gui bundle (#2629)
ProgrammerIn-wonderland Mar 10, 2026
34d4f49
perf(core): LRU cache PuterHomepageService (#2627)
KernelDeimos Mar 10, 2026
9d82f33
revert puterjs gui ordering (#2631)
ProgrammerIn-wonderland Mar 10, 2026
cc70e49
Fix missing password entry (#2632)
KernelDeimos Mar 10, 2026
c9787c1
devex(core): avoid email verification on dev (#2634)
KernelDeimos Mar 10, 2026
c297715
add support for building with custom icons (#2635)
ProgrammerIn-wonderland Mar 10, 2026
031a3da
s/icons/assets/ for building GUI (#2636)
ProgrammerIn-wonderland Mar 10, 2026
26a7ae9
s/mv/cp/ for gui buildstep (#2637)
ProgrammerIn-wonderland Mar 10, 2026
14f218e
fix assets_url bug in GUI buildstep (#2638)
ProgrammerIn-wonderland Mar 10, 2026
156d571
feat: limit concurrent request for ai chat (#2640)
Salazareo Mar 10, 2026
1052d4d
Avoid reload when embedded in popup
jelveh Mar 11, 2026
e96221b
feat: phase 2 enforce index url ownership and uniqueness (#2625)
Salazareo Mar 11, 2026
ae96912
perf(core): very simplistic minifier for homepage (#2630)
KernelDeimos Mar 11, 2026
05b047c
Revert "perf(core): very simplistic minifier for homepage (#2630)" (#…
KernelDeimos Mar 11, 2026
ebb9015
fix(core): handling of refer code storage add (#2642)
KernelDeimos Mar 11, 2026
bba0533
feat: checkName api for puter apps (#2643)
Salazareo Mar 11, 2026
e56d8f6
dev(fs): add move command to batch executor (#2646)
KernelDeimos Mar 11, 2026
58738eb
dev: get system user from SUService in AppIconService (#2601)
KernelDeimos Mar 11, 2026
8c9c476
dev(extension): [+] test-actions (#2575)
KernelDeimos Mar 11, 2026
a4aea52
fix: keep bootstrap in url for app to do whatever (#2648)
Salazareo Mar 11, 2026
34fdd94
feat: phase 3 public hosted actor cookie bootstrap (#2626)
Salazareo Mar 11, 2026
7ff1ecf
dev(fs): fetch subdomains using join in readdir (#2647)
KernelDeimos Mar 12, 2026
9a78b6b
fix(fs) optimize `stat` operation. (#2649)
KernelDeimos Mar 12, 2026
fc273d4
feat: scope index_url uniqueness to hosted domains (#2644)
Salazareo Mar 12, 2026
721af2a
Ns/worker global public fetch (#2652)
ProgrammerIn-wonderland Mar 12, 2026
d086e49
feat(puter-js): add Batch builder class (#2651)
KernelDeimos Mar 12, 2026
5505da0
fix: app merging (#2654)
Salazareo Mar 12, 2026
8767280
mute puterjs error (#2657)
ProgrammerIn-wonderland Mar 12, 2026
9169114
fix: tests oom breaking (#2661)
Salazareo Mar 13, 2026
9506c53
fix(security): shell escape paths in HostDiskUsageService; null-proto…
KernelDeimos Mar 13, 2026
e28a5b0
Use ClickHouse for app open stats (#2662)
jelveh Mar 13, 2026
89904ca
fix coercion service not selecting correct conversion path (#2660)
P3il4 Mar 14, 2026
b3787ac
fix flash image quality level (#2665)
P3il4 Mar 15, 2026
ce9c834
Interpret mpga as mp3 for OpenAI transcriptions (#2666)
ProgrammerIn-wonderland Mar 16, 2026
0af0eb1
chore: update package-lock.json (#2667)
KernelDeimos Mar 16, 2026
55dd984
add x-puter-no-auth option to puter.workers.exec (#2668)
ProgrammerIn-wonderland Mar 16, 2026
573d5a3
fix: limit referralCodeService (#2670)
Salazareo Mar 17, 2026
c96bb9a
feat: add hook on merge for deployments (#2673)
Salazareo Mar 17, 2026
c325eed
darkmode fix
miikakuisma Mar 17, 2026
53f8d67
Merge pull request #2675 from HeyPuter/darkmode-fix
miikakuisma Mar 17, 2026
c7a4811
add reasoning to claude models (#2676)
ProgrammerIn-wonderland Mar 17, 2026
8147918
Manual package updates, `npm audit --force`, etc (#2669)
KernelDeimos Mar 17, 2026
8118582
fix: add console log to webhook for debugging (#2677)
Salazareo Mar 17, 2026
6352bc6
fix: webhook message to peer (#2678)
Salazareo Mar 17, 2026
e6d125e
feat: notify prod (#2679)
Salazareo Mar 17, 2026
2bafa03
Add 'Add to Desktop' English translation
jelveh Mar 17, 2026
ef93ed4
fix: change_email and user-protected endpoints (#2680)
KernelDeimos Mar 17, 2026
9347644
feat: redis pubsub for multiple connected clients in broadcast servic…
Salazareo Mar 18, 2026
8d38e07
feat: add puter.peer to sdk, create PeerService in backend (#2664)
velzie Mar 18, 2026
817c307
change capitalization of inviteCode (#2683)
ProgrammerIn-wonderland Mar 18, 2026
6a8be15
change turn customIdentifier seperator (#2684)
ProgrammerIn-wonderland Mar 18, 2026
4fb0977
Change turn customIdentifier fully (#2685)
ProgrammerIn-wonderland Mar 18, 2026
bb733e7
fix: websocket credentials (#2687)
Salazareo Mar 18, 2026
ff126d1
turn metering support (#2689)
ProgrammerIn-wonderland Mar 19, 2026
a94620d
fix: tighten cors logic for socket io (#2688)
Salazareo Mar 19, 2026
5e2c7e0
Revert "fix: tighten cors logic for socket io (#2688)" (#2694)
Salazareo Mar 19, 2026
c2e77d3
fix: broadcast pubsub + cleanup old code (#2695)
Salazareo Mar 19, 2026
b87f498
fix: socket io sockets (#2696)
Salazareo Mar 19, 2026
ee3a3e7
chore: decrease uneeded logging (#2697)
Salazareo Mar 19, 2026
3628cf4
fix(gui): account for iOS safe area inset on taskbar/dock (#2682)
Mar 19, 2026
815b042
Use subscription.offering.name for plan display
jelveh Mar 20, 2026
a6b18ff
Add basic/professional/business/free translations
jelveh Mar 20, 2026
4a4a92c
Simplify plan name localization in dashboard
jelveh Mar 20, 2026
ba1f966
Peer docs (#2699)
jelveh Mar 20, 2026
b526c08
fix: ws double messages (#2700)
Salazareo Mar 20, 2026
f9511e4
Fix double slash in canonical URL (#2690)
nandinikashyap1902 Mar 20, 2026
c31d665
docs: fix 404 in CreateAppResult documentation due to case sensitivit…
huseynovvusal Mar 20, 2026
e6726a1
Add peer icon and update sidebar reference
jelveh Mar 21, 2026
c434af7
Center auth forms; add Google icon; set cover_page
jelveh Mar 22, 2026
f89079f
Fix login form layout and window options
jelveh Mar 22, 2026
a4be42a
Exclude login/signup from temp user creation
jelveh Mar 22, 2026
c99e23d
change default credits
jelveh Mar 22, 2026
34bf279
Fix App Store links and remove install stub
jelveh Mar 22, 2026
3451bab
docs: add ai-voice-changer playground example (#2708)
Dailin521 Mar 23, 2026
931507e
chore: remove dead code and docs (#2705)
Salazareo Mar 23, 2026
76f5a26
fix: issue with tokens not being received by puter app (#2713)
Salazareo Mar 24, 2026
bed84ca
refactor ai video gen (#2711)
P3il4 Mar 24, 2026
4fe2553
feat: Add Anthropic Messages API compatibility layer (#2704)
iamsrishanth Mar 24, 2026
c52fa35
WIP openai responses support (#2715)
ProgrammerIn-wonderland Mar 24, 2026
e75ccb0
feat: root level kv accesses, and installed app listing + server heal…
Salazareo Mar 25, 2026
0a3ac7b
Revert "feat: root level kv accesses, and installed app listing + ser…
Salazareo Mar 25, 2026
68985e9
fix: letter case issue (#2721)
Salazareo Mar 25, 2026
9511323
fix: init installed apps controller (#2722)
Salazareo Mar 25, 2026
25b9911
fix: extension type import (#2723)
Salazareo Mar 25, 2026
08fa2d7
fix: installed apps api (#2725)
Salazareo Mar 25, 2026
d292c1e
fix: healtcheck improvements (#2726)
Salazareo Mar 25, 2026
393f4b7
fix: remove flaky event loop check (#2727)
Salazareo Mar 25, 2026
2da083e
use case sensitive together video model ids (#2728)
P3il4 Mar 25, 2026
187b14d
fix: remove last opened (#2729)
Salazareo Mar 25, 2026
ec766ee
fix: syntax issue with sql (#2730)
Salazareo Mar 25, 2026
94395cd
Add Apps tab UI and installed apps fetch
jelveh Mar 25, 2026
02bc010
Include dashboard.css in GUI assets
jelveh Mar 25, 2026
b857fc8
fix: return fallback icons if no icon present (#2731)
Salazareo Mar 25, 2026
5eddd09
Merge launch & installed apps, tweak app tile CSS
jelveh Mar 26, 2026
5c913fc
Add search bar to My Apps tab
jelveh Mar 26, 2026
017308a
Small tweaks to puter.peer (#2734)
velzie Mar 26, 2026
e1e2cad
Hide apps grid until icons finish loading
jelveh Mar 27, 2026
ae33f6f
Remove static myapps loading placeholder
jelveh Mar 27, 2026
8292952
Adjust dashboard grid spacing and tile size
jelveh Mar 27, 2026
c20ef3c
Remove dynamic dashboard CSS injection
jelveh Mar 27, 2026
14ed1b6
Add claude cache control docs (#2737)
reynaldichernando Mar 27, 2026
266b3ae
Add sidebar separator to dashboard
jelveh Mar 27, 2026
89a67a4
Update dashboard.css
jelveh Mar 27, 2026
b3656fd
fix: handle closing server nicer on shutdown signal (#2741)
Salazareo Mar 28, 2026
677bc29
fix: remove dynamo health check for now (#2743)
Salazareo Mar 28, 2026
92ac05e
Display logged-in banner on homepage (#2742)
jelveh Mar 28, 2026
3e08294
fix: incrememnt ddb sharding to 10k (#2744)
Salazareo Mar 28, 2026
8a33c66
Always enable cover_page in window options
jelveh Mar 28, 2026
813e788
Remove debug log; update captcha modal styles
jelveh Mar 28, 2026
1ab73d8
Make dashboard card headers clickable
jelveh Mar 28, 2026
bfea3bb
Pass req and relocate extension body content
jelveh Mar 28, 2026
0a6dd0c
Add prependHeadContent and optional autofocus flags
jelveh Mar 29, 2026
bf3bbab
Increase dashboard sidebar width to 250px
jelveh Mar 29, 2026
8c47f12
Update recommended apps list
jelveh Mar 29, 2026
107521e
fix: remove recommended app caching in favour of stronger caching at …
Salazareo Mar 29, 2026
7c092d1
Increase dashboard grid gap and icon size
jelveh Mar 29, 2026
54dbd57
Update dashboard.css
jelveh Mar 29, 2026
add9b1e
Update dashboard.css
jelveh Mar 29, 2026
6c1019a
Add recover-password window, its action URL, and styles
jelveh Mar 30, 2026
55bdd50
docs: update code examples from gpt-5-nano to gpt-5.4-nano (#2738)
LeC-D Mar 30, 2026
7fc9a97
Fix prompt caching example broken character (#2750)
reynaldichernando Mar 30, 2026
cea40b3
support video inputs in .chat (#2740)
P3il4 Mar 30, 2026
ad85026
Getting rid of Endpoint (#2732)
ProgrammerIn-wonderland Mar 30, 2026
00b34d7
Add context field to OpenRouter, MistralAI, and OpenAI models (#2653)
costajohnt Mar 30, 2026
ef243c9
feat: signed upload urls (#2753)
Salazareo Mar 30, 2026
8398531
feat: thumbnail event for gui (#2754)
Salazareo Mar 31, 2026
0e83af7
docs(kv): add sorting section with examples to list() API reference (…
RaffyLeong Mar 31, 2026
ed7c18b
Update prompt caching example (#2758)
reynaldichernando Apr 1, 2026
99d96ed
feat: s3 fs in oss (#2761)
Salazareo Apr 2, 2026
0505a5d
fix: no shutdown outside of puter servers (#2762)
Salazareo Apr 2, 2026
5e6aff6
add google video native provider, imagen models (#2759)
P3il4 Apr 2, 2026
e23df0b
Add kv.list() pagination playground example (#2760)
tmchow Apr 3, 2026
95cbbc5
feat: enable singed uploads on oss and fix broken migration (#2765)
Salazareo Apr 3, 2026
b99d7be
Preserve existing disable_temp_users value
jelveh Apr 3, 2026
5319940
fix: app id shortcut batch (#2768)
Salazareo Apr 4, 2026
5840348
Move esbuild entry in docs package.json to dependencies rather than d…
jelveh Apr 5, 2026
67d941a
Add @esbuild/linux-x64 dependency
jelveh Apr 5, 2026
2dd9917
Make esbuild platform dep optional; update lock
jelveh Apr 5, 2026
f867519
Use root URL as default signup redirect
jelveh Apr 5, 2026
b0bd8a1
Replace inline Google SVG with WebP image
jelveh Apr 6, 2026
649db33
Ns/simplify 1 (#2764)
ProgrammerIn-wonderland Apr 6, 2026
2368b2b
fix: missing subdomains and worker flags in readdir (#2772)
Salazareo Apr 6, 2026
81a0d72
Remove alpha notice from Peer docs
jelveh Apr 6, 2026
c1da2c3
Fix openrouter enumeration (#2780)
ProgrammerIn-wonderland Apr 7, 2026
4f468dc
chore: delete remaining "command" service (#2781)
Salazareo Apr 7, 2026
f21dd41
delete command service files? (#2782)
Salazareo Apr 7, 2026
dbf8775
derive aliases from puterid (#2777)
P3il4 Apr 7, 2026
9bbb3af
Remove filesystem API spec doc
jelveh Apr 7, 2026
94c4fcb
Remove backend drawio diagram
jelveh Apr 7, 2026
d03303a
Delete batch-and-symlinks.md
jelveh Apr 8, 2026
adc28ac
Delete structure.md
jelveh Apr 8, 2026
8cc2972
fix: add showSpinner and hideSpinner to docs sidebar (#2779)
subhp03 Apr 8, 2026
69bb7e4
Close #2718 : added querying with prefix patterns example and documen…
hemant838 Apr 8, 2026
32be3a0
better error reports for chat fallbacks (#2783)
P3il4 Apr 8, 2026
9a6c414
fix: dynamodb health checks and client recreation (#2789)
Salazareo Apr 8, 2026
481a1a1
Prevent redirect to /action/login after login
jelveh Apr 9, 2026
72430a1
Minor fix docs and update puter resource unit (#2792)
reynaldichernando Apr 9, 2026
1cfe69f
fix: redis max retries and fail fast timeouts (#2793)
Salazareo Apr 9, 2026
14f2da3
cleanup: batcher to batch more appropriately (#2794)
Salazareo Apr 10, 2026
18e909f
fix veo video with proxy link (#2799)
P3il4 Apr 10, 2026
9c38c43
fix: app canonization for puter.com apps (#2800)
Salazareo Apr 10, 2026
7f7c019
fix: origin app Ids (#2801)
Salazareo Apr 10, 2026
edf1736
add gemini image models in .chat (#2771)
P3il4 Apr 10, 2026
389e11f
Ns/simplify 2 (#2790)
ProgrammerIn-wonderland Apr 15, 2026
e863240
Add WSL support for signed uploads (#2809)
ProgrammerIn-wonderland Apr 15, 2026
6f4ec8b
add replicate image provider (#2806)
P3il4 Apr 15, 2026
90a4970
remove glitched submodule (#2810)
ProgrammerIn-wonderland Apr 15, 2026
2790879
Dashboard Update (#2788)
miikakuisma Apr 16, 2026
6f54edb
add opus 4.7, adjust thinking (#2813)
P3il4 Apr 16, 2026
4130fc4
fix: close start menu popover on repeated click (#2784)
tmchow Apr 16, 2026
b34f695
fix: update knowledge date for Claude Opus 4.7 model (#2816)
subhp03 Apr 17, 2026
b1a5c41
Remove custom domain UI and Entri integration
jelveh Apr 17, 2026
4adf7b4
Remove Drivers docs and sidebar entry
jelveh Apr 17, 2026
f6c1991
Remove referral UI and related logic
jelveh Apr 17, 2026
eaad07e
adjust and refactor together models costs (#2811)
P3il4 Apr 17, 2026
d66b70e
Request 128px icons and prefer `iconUrl`
jelveh Apr 20, 2026
1260bd5
Pass parent to context menu; keep icon scaled
jelveh Apr 20, 2026
2a1f0da
Add bottom padding to .myapps-container
jelveh Apr 20, 2026
a3fd275
Remove Beta badge from dashboard sidebar
jelveh Apr 20, 2026
4c578ac
Update dashboard.css
jelveh Apr 20, 2026
7bb27ff
fix #2803
jelveh Apr 20, 2026
4de724c
Update UIItem.js
jelveh Apr 20, 2026
7f9873e
fix: cdn cache invalidation (#2826)
Salazareo Apr 20, 2026
e9a80d0
Update dashboard.css
jelveh Apr 20, 2026
6b3196e
Increase cached app TTL to 24 hours. Cause, where is your sense of ad…
jelveh Apr 22, 2026
bdfa12b
Add app object Redis cache and use in AppES
jelveh Apr 22, 2026
b886dde
Await DB write and add UID cache key
jelveh Apr 22, 2026
f14f1bf
add gpt image 2 (#2829)
P3il4 Apr 22, 2026
b6776ab
shrink redis failure (#2831)
Salazareo Apr 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
@@ -1 +1 @@
PORT=4000
PORT=4000
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
github: ['HeyPuter']
25 changes: 0 additions & 25 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

10 changes: 0 additions & 10 deletions .github/ISSUE_TEMPLATE/driver-request.md

This file was deleted.

10 changes: 0 additions & 10 deletions .github/ISSUE_TEMPLATE/feature_request.md

This file was deleted.

10 changes: 0 additions & 10 deletions .github/ISSUE_TEMPLATE/idea-for-improvement.md

This file was deleted.

31 changes: 0 additions & 31 deletions .github/workflows/build-and-test.yml

This file was deleted.

28 changes: 0 additions & 28 deletions .github/workflows/check-translations.yml

This file was deleted.

26 changes: 12 additions & 14 deletions .github/workflows/docker-image.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ name: Docker Image CI
# branch called `main`.
on:
push:
branches: ['release']

tags:
- '*.*.*'
branches:
- 'main'

# Defines two custom environment variables for the workflow. These are used
# for the Container registry domain, and a name for the Docker image that
Expand Down Expand Up @@ -40,12 +42,12 @@ jobs:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3

# This step uses [docker/metadata-action](https://github.com/docker/metadata-action#about)
# to extract tags and labels that will be applied to the specified image.
Expand All @@ -56,16 +58,10 @@ jobs:
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
images: "${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}"
tags: |
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}},enable=${{ !startsWith(github.ref, 'refs/tags/v0.') }}
type=sha
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }}
type=ref,event=branch

# This step uses the `docker/build-push-action` action to build the
# image, based on your repository's `Dockerfile`. If the build succeeds,
Expand All @@ -81,6 +77,8 @@ jobs:
with:
platforms: linux/amd64,linux/arm64
context: .
push: true
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
18 changes: 18 additions & 0 deletions .github/workflows/notify-prod.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Notify HeyPuter

on:
push:
branches:
- main

jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Trigger heyputer build
run: |
curl -X POST \
-H "Authorization: token ${{ secrets.HEYPUTER_DISPATCH_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/HeyPuter/heyputer/dispatches \
-d '{"event_type":"puter-main-updated","client_payload":{"puter_ref":"main"}}'
94 changes: 94 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: test

on:
push:
branches: ["main"]
paths-ignore:
- "src/docs/**"
pull_request:
branches: ["main"]
paths-ignore:
- "src/docs/**"

jobs:
test-backend:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [24.x]

steps:
- uses: actions/checkout@v4

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}

- name: Backend Tests (with coverage)
env:
NODE_OPTIONS: "--max-old-space-size=4096"
run: |
npm ci
npm run build
npm run test:backend -- --coverage --coverage.reporter=json --coverage.reporter=json-summary --coverage.reporter=lcov

- name: Upload backend coverage report
if: ${{ always() && hashFiles('coverage/**/coverage-summary.json') != '' }}
uses: actions/upload-artifact@v4
with:
name: backend-coverage-${{ matrix.node-version }}
path: coverage
retention-days: 5

api-test:
name: API tests (node env, api-test)
runs-on: ubuntu-latest
timeout-minutes: 10

strategy:
matrix:
node-version: [24.x]

steps:
- uses: actions/checkout@v4

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}

- name: API Test
run: |
pip install -r ./tests/ci/requirements.txt
./tests/ci/api-test.py

- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: (api-test) server-logs
path: /tmp/backend.log
retention-days: 3

vitest:
name: puterjs (node env, vitest)
runs-on: ubuntu-latest
timeout-minutes: 10

strategy:
matrix:
node-version: [24.x]

steps:
- uses: actions/checkout@v4

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}

- name: Vitest Test
run: |
pip install -r ./tests/ci/requirements.txt
./tests/ci/vitest.py
55 changes: 54 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,65 @@
# Misc
.DS_Store

# Dependencies
node_modules/

*.zip
*.tgz
license.config.json
license-header.txt

# Build Outputs
dist/
.vscode/

# VS Code IDE
.vscode/**/*
!.vscode/extensions.json
!.vscode/launch.json
!.vscode/tasks.json

# Local env files
.env
!.env.example

# this is for jetbrain IDEs
.idea/
/puter

# Local Netlify folder
.netlify
src/emulator/release/

# ======================================================================
# vscode
# ======================================================================
# vscode configuration
.vscode/

# JS language server, ref: https://code.visualstudio.com/docs/languages/jsconfig
jsconfig.json

# ======================================================================
# playwright test (currently only test the file-system)
# ======================================================================
tests/client-config.yaml

# ======================================================================
# python
# ======================================================================
__pycache__/

# ======================================================================
# other
# ======================================================================
# AI STUFF
AGENTS.md
.roo

# source maps
*.map


coverage/
*.log
undefined
12 changes: 12 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[submodule "submodules/v86"]
path = submodules/v86
url = git@github.com:HeyPuter/v86.git
[submodule "submodules/twisp"]
path = submodules/twisp
url = git@github.com:MercuryWorkshop/twisp.git
[submodule "submodules/epoxy-tls"]
path = submodules/epoxy-tls
url = git@github.com:MercuryWorkshop/epoxy-tls.git
[submodule "submodules/wiki"]
path = submodules/wiki
url = https://github.com/HeyPuter/puter.wiki.git
13 changes: 13 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env sh

tmpfile="$(mktemp)"
git diff --cached --name-only -z --diff-filter=ACMR -- \
'*.js' '*.mjs' '*.cjs' '*.jsx' '*.ts' '*.tsx' '*.vue' \
> "$tmpfile"

if [ -s "$tmpfile" ]; then
xargs -0 eslint --fix < "$tmpfile" || true
xargs -0 git add < "$tmpfile"
fi

rm -f "$tmpfile"
Loading