Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
393 commits
Select commit Hold shift + click to select a range
c891c34
update: dimensions, colors of the input select.
ItzNotABug Oct 22, 2025
24664fb
update: don't hijack clicks for selections.
ItzNotABug Oct 22, 2025
075e833
fix: link.
ItzNotABug Oct 22, 2025
27ab69a
Merge branch 'main' into revamp-designs
ItzNotABug Oct 22, 2025
92ba08d
Merge branch 'main' into revamp-designs
ItzNotABug Oct 22, 2025
884887d
ci: empty commit
ItzNotABug Oct 22, 2025
594c281
feat: expand on shortcut.
ItzNotABug Oct 22, 2025
9245e3e
fix: encrypts on suggestions.
ItzNotABug Oct 22, 2025
6221e38
lint.
ItzNotABug Oct 22, 2025
c1c6624
Merge pull request #2494 from appwrite/fix-encrypt
ItzNotABug Oct 22, 2025
e304a36
fix: don't use derived store.
ItzNotABug Oct 22, 2025
aa97c95
lint.
ItzNotABug Oct 22, 2025
568d6a0
fix: allow custom project id on self-hosted
stnguyen90 Oct 22, 2025
310f86b
Merge pull request #2498 from appwrite/fix-project-custom-id
ItzNotABug Oct 22, 2025
2dbdb5b
chore: change image output format from Webp to Avif
stnguyen90 Oct 22, 2025
c54797d
Merge pull request #2495 from appwrite/ditch-store
ItzNotABug Oct 23, 2025
3960867
Merge branch 'main' into spreadsheet-kbd-expand
ItzNotABug Oct 23, 2025
75deddf
update: increase the width of the $id column for button to show nicely.
ItzNotABug Oct 23, 2025
dbebcd8
fix: $id shouldn't have column-left or create-index options on header.
ItzNotABug Oct 23, 2025
cb3dcd9
Apply suggestion from @ItzNotABug
ItzNotABug Oct 23, 2025
ba75515
fix: unreachable condition.
ItzNotABug Oct 23, 2025
bd4e707
add: realtime on columns wait state.
ItzNotABug Oct 23, 2025
f34f2c2
Merge pull request #2500 from appwrite/fix-dat-786
ItzNotABug Oct 23, 2025
d8b1674
code cleanup
HarshMN2345 Oct 23, 2025
2da0313
use Card component with href prop instead of anchor tag
HarshMN2345 Oct 23, 2025
4d8ec0a
Update row.svelte
HarshMN2345 Oct 23, 2025
1b52a88
lint issue
HarshMN2345 Oct 23, 2025
cc193c4
fix: mobile logic.
ItzNotABug Oct 23, 2025
5b79767
Add TanStack support
Meldiron Oct 23, 2025
a585271
correct coderabbit suggestion
HarshMN2345 Oct 23, 2025
2eb0b80
update: custom hover state.
ItzNotABug Oct 23, 2025
bc69ee2
feat: resend adapter
ChiragAgg5k Oct 23, 2025
7545536
Merge pull request #2466 from appwrite/fix-SER-414-permissions-trunca…
Meldiron Oct 24, 2025
b9702f9
add: tooltips to header.
ItzNotABug Oct 24, 2025
5765cfd
Finish todos
Meldiron Oct 24, 2025
34df009
Merge pull request #2481 from appwrite/feat-make-site-card-clickable
ItzNotABug Oct 24, 2025
35a6d95
add: fix and add for hovered column.
ItzNotABug Oct 24, 2025
04dfca5
add: randomize the tooltip positions.
ItzNotABug Oct 24, 2025
18d7f4c
lint.
ItzNotABug Oct 24, 2025
a10e905
fix: e2e.
ItzNotABug Oct 24, 2025
6c18218
CodeQL fixes
Meldiron Oct 24, 2025
8638c03
Merge pull request #2504 from appwrite/fix-e2es
Meldiron Oct 24, 2025
91c13cb
code review fixes
Meldiron Oct 24, 2025
dbd3edd
Merge branch 'main' into feat-tanstack-support
Meldiron Oct 24, 2025
db053cb
Merge pull request #2501 from appwrite/feat-tanstack-support
Meldiron Oct 24, 2025
3184538
Merge pull request #2499 from appwrite/chore-avif-site-preview
ItzNotABug Oct 24, 2025
bd2605f
update sdk
ChiragAgg5k Oct 25, 2025
b811f42
Merge branch 'main' into feat-resend-adapter
ChiragAgg5k Oct 25, 2025
e88b011
update sdk
ChiragAgg5k Oct 25, 2025
e6e6473
fix: import
ChiragAgg5k Oct 25, 2025
358ab59
update: show correct info for required<>arrays.
ItzNotABug Oct 25, 2025
cbba5b9
bump: playwright for cve.
ItzNotABug Oct 25, 2025
f68dbb7
Merge pull request #2505 from appwrite/fix-dat-835
ItzNotABug Oct 25, 2025
788097c
fix: slot in a svelte5 environment on `siteCard` comp.
ItzNotABug Oct 25, 2025
be2a8cb
fix: sdk signature and types.
ItzNotABug Oct 25, 2025
b0f729b
Merge pull request #2506 from appwrite/fix-slot-render-and-migrate-to…
ItzNotABug Oct 25, 2025
52c5833
fix: leaking wss.
ItzNotABug Oct 25, 2025
141ad8b
Merge pull request #2507 from appwrite/fix-teardown-leak
ItzNotABug Oct 25, 2025
9d78df4
feat: preliminary support for multi select table!
ItzNotABug Oct 25, 2025
badc824
Merge branch 'main' into feat-resend-adapter
ChiragAgg5k Oct 25, 2025
7edf9d4
fix: sitecard
ChiragAgg5k Oct 25, 2025
2bbc1ab
Merge pull request #2502 from appwrite/feat-resend-adapter
ItzNotABug Oct 25, 2025
09ff84e
feat: multi-select table on tables delete.
ItzNotABug Oct 25, 2025
ca04275
change: structure a bit.
ItzNotABug Oct 26, 2025
e210612
add: auto notify support.
ItzNotABug Oct 26, 2025
8a8513f
add: `multiSelectTable` to function executions.
ItzNotABug Oct 26, 2025
b3eb92c
add: `multiSelectTable` to function messaging.
ItzNotABug Oct 26, 2025
1d55d26
add: `multiSelectTable` to auth > team > memberships.
ItzNotABug Oct 26, 2025
bc51522
Merge branch 'main' of github.com:appwrite/console
christyjacob4 Oct 26, 2025
baff61e
add: `multiSelectTable` to auth > user > targets.
ItzNotABug Oct 26, 2025
901cdd5
migrate: existing `MultiSelectionTable` users to svelte5 runes!
ItzNotABug Oct 26, 2025
7334d8b
add: `multiSelectTable` to auth > user > identities.
ItzNotABug Oct 26, 2025
4b2a5ce
feat: add toronto region
christyjacob4 Oct 26, 2025
bfcb207
Merge pull request #2508 from appwrite/feat-tor-region
christyjacob4 Oct 26, 2025
c68fd85
add: `multiSelectTable` to database backups.
ItzNotABug Oct 26, 2025
ad67a51
add: `multiSelectTable` to messaging > providers.
ItzNotABug Oct 26, 2025
94ffa90
add: `multiSelectTable` to sites > deployments.
ItzNotABug Oct 26, 2025
5b53e45
add: `multiSelectTable` to auth.
ItzNotABug Oct 26, 2025
877c73d
add: `multiSelectTable` to auth > teams.
ItzNotABug Oct 26, 2025
1b911b1
add: `multiSelectTable` to auth > user > memberships.
ItzNotABug Oct 26, 2025
06eb186
add: `multiSelectTable` to messaging > topics > topic.
ItzNotABug Oct 26, 2025
5058d94
add: `multiSelectTable` to keys/devKeys > table component.
ItzNotABug Oct 26, 2025
d9d2761
add: `multiSelectTable` to storage > bucket.
ItzNotABug Oct 26, 2025
930dd96
update: simplify type.
ItzNotABug Oct 26, 2025
0d4ec88
Merge branch 'main' into fix-pro-2106
ItzNotABug Oct 26, 2025
70b4721
Merge branch 'main' into 'fix-pro-2106'.
ItzNotABug Oct 26, 2025
ab03ba8
fix: tests.
ItzNotABug Oct 26, 2025
ba2b50d
address rabbit's comments.
ItzNotABug Oct 26, 2025
dacdf39
remove: unused variable.
ItzNotABug Oct 26, 2025
05f043e
address type related comment.
ItzNotABug Oct 26, 2025
e532c6e
fix: correct payment method expiration notification logic
HarshMN2345 Oct 26, 2025
608bcad
fix: removed redundant notifcation
HarshMN2345 Oct 26, 2025
2176587
fix: code rabbit suggestion
HarshMN2345 Oct 26, 2025
ea1c3ea
extracted to local variable instead of iife
HarshMN2345 Oct 26, 2025
47921af
fix: resend svg dimensions to 24x24
ChiragAgg5k Oct 27, 2025
30e23c9
Merge pull request #2516 from appwrite/fix-resend-logo-height
ItzNotABug Oct 27, 2025
f4100b1
ci: empty commit
ItzNotABug Oct 27, 2025
c6a4061
Merge branch 'main' into 'spreadsheet-kbd-expand'.
ItzNotABug Oct 27, 2025
af80f02
bump: deps.
ItzNotABug Oct 27, 2025
9471794
ci: empty commit
ItzNotABug Oct 27, 2025
85bbc24
Fix region awareness (templates env vars)
Meldiron Oct 27, 2025
2f62c77
fix: logic in onMount for realtime.
ItzNotABug Oct 27, 2025
1844648
Merge pull request #2518 from appwrite/fix-template-region-awareness
Meldiron Oct 27, 2025
4e45b99
address comment.
ItzNotABug Oct 27, 2025
5889e8c
feat: add build timeout handling to prevent stuck build UI
HarshMN2345 Oct 27, 2025
d16ba32
Merge branch 'main' into 'revamp-designs'.
ItzNotABug Oct 27, 2025
c23dfa0
revert: unfinished changes.
ItzNotABug Oct 27, 2025
4ec0298
added for overview page
HarshMN2345 Oct 27, 2025
4f3b9d3
copilot suggestion
HarshMN2345 Oct 27, 2025
ddf5996
code rabbit clean suggestions
HarshMN2345 Oct 27, 2025
8bfe92c
Merge pull request #2509 from appwrite/fix-pro-2106
ItzNotABug Oct 27, 2025
9e5debb
migration to svelte 5 and logic changes
HarshMN2345 Oct 28, 2025
1d6873b
Update src/lib/components/csvImportBox.svelte
HarshMN2345 Oct 28, 2025
61e7f58
fix: more permissions ui improvements
HarshMN2345 Oct 28, 2025
239bc3f
removed reactive dependency
HarshMN2345 Oct 28, 2025
9fd750b
fix: aria-albel
HarshMN2345 Oct 28, 2025
ed0b823
Merge pull request #2521 from appwrite/fix-SER-414-more-permissions-u…
ItzNotABug Oct 28, 2025
7a61f6d
lint issue
HarshMN2345 Oct 28, 2025
da814c3
add CsvImportError type
HarshMN2345 Oct 28, 2025
eba8b09
removed unknown
HarshMN2345 Oct 28, 2025
dedf77f
Merge pull request #2510 from appwrite/fix-SER-465-Card-still-shows-a…
ItzNotABug Oct 28, 2025
833563e
Merge pull request #2401 from appwrite/feat-SER-290-Improve-csv-impor…
ItzNotABug Oct 28, 2025
cce531e
apply: changes as per design reviews.
ItzNotABug Oct 28, 2025
73638d9
fix: crash on side sheet.
ItzNotABug Oct 28, 2025
b084bc9
fix: consistently keep the sheet open unless closed for better ux fro…
ItzNotABug Oct 28, 2025
c71c8d0
remove: excessive changes
ItzNotABug Oct 28, 2025
32cba46
Update src/routes/(console)/project-[region]-[project]/databases/data…
ItzNotABug Oct 28, 2025
982daec
address comment.
ItzNotABug Oct 28, 2025
bb7946c
Merge pull request #2493 from appwrite/spreadsheet-kbd-expand
ItzNotABug Oct 28, 2025
9039c60
Merge branch 'main' into 'revamp-designs'.
ItzNotABug Oct 28, 2025
ae6c3a6
Update +page.svelte
HarshMN2345 Oct 28, 2025
c85f5fd
Update +page.svelte
HarshMN2345 Oct 28, 2025
8b9feaf
Merge pull request #2480 from appwrite/fix-SER-82-Dropzone-test-mobil…
ItzNotABug Oct 28, 2025
2003299
show only project Go to Settings for credential queries
HarshMN2345 Oct 29, 2025
9f7754a
remove: early access badge.
ItzNotABug Oct 29, 2025
297e8a1
fix: prop doesn't exist anymore.
ItzNotABug Oct 29, 2025
8bc5fa2
Merge pull request #2527 from appwrite/remove-early-access
ItzNotABug Oct 29, 2025
1fa62ad
Merge branch 'main' into revamp-designs
ItzNotABug Oct 29, 2025
ae9ac4e
fix: views broken on userColumns.
ItzNotABug Oct 29, 2025
01daaa1
fix: over width of the fab.
ItzNotABug Oct 29, 2025
47d8733
fix: column title long names.
ItzNotABug Oct 29, 2025
b223e9e
revert: mock column name.
ItzNotABug Oct 29, 2025
2b7bf48
fix: de-select the column when creating columns!
ItzNotABug Oct 29, 2025
805e477
fix: diagnostics.
ItzNotABug Oct 29, 2025
413d8e6
fix: diagnostics.
ItzNotABug Oct 29, 2025
10d1211
used copy helper
HarshMN2345 Oct 29, 2025
1dc4507
use page.data.project
HarshMN2345 Oct 29, 2025
6addc03
use class instead of inlin
HarshMN2345 Oct 29, 2025
f09458b
fix(functions): align deployment action menu icon placement to match …
HarshMN2345 Oct 30, 2025
5b64a17
addressed comments like duplicate component and use route id
HarshMN2345 Oct 30, 2025
407163c
update: method.
ItzNotABug Oct 30, 2025
33b884c
Add copilot-setup-steps.yml for workspace setup (#2524)
Copilot Oct 30, 2025
e35f027
use typed resolve for project overview redirect
HarshMN2345 Oct 31, 2025
b8bf649
use page.params
HarshMN2345 Oct 31, 2025
52dc725
Merge pull request #2404 from appwrite/feat-SER-393-api-key-visibilit…
ItzNotABug Oct 31, 2025
6cd6310
update: simplify logic.
ItzNotABug Oct 31, 2025
bb65ce2
Merge branch 'main' into fix-realtime-logic
ItzNotABug Oct 31, 2025
24ce79c
Merge branch 'main' into fix-realtime-logic
ItzNotABug Oct 31, 2025
f0cae0b
Update src/routes/(console)/project-[region]-[project]/sites/(compone…
HarshMN2345 Oct 31, 2025
601eb81
update: migrate projects realtime from `client.subscribe` to standalo…
ItzNotABug Oct 31, 2025
8d38c0d
update: the one last `client.subscribe`!
ItzNotABug Oct 31, 2025
2f27386
fix: type.
ItzNotABug Oct 31, 2025
fff134e
address comments.
ItzNotABug Oct 31, 2025
60d0bdb
Merge pull request #2519 from appwrite/fix-realtime-logic
ItzNotABug Oct 31, 2025
0ceaed9
inline timeout lookup in getEffectiveBuildStatus and update call sites
HarshMN2345 Oct 31, 2025
032f094
package upgrade
HarshMN2345 Oct 31, 2025
fc83486
Merge branch 'main' into fix-SER-457-resolve-forever-pending-deployments
HarshMN2345 Oct 31, 2025
6a4c4ed
fix: errors
HarshMN2345 Oct 31, 2025
b9b9ce3
chnaged placement
HarshMN2345 Oct 31, 2025
a5a4fbb
Add AGENTS.md onboarding file for coding agents (#2522)
Copilot Oct 31, 2025
aba51bb
fix: manual deployment snippet
loks0n Oct 31, 2025
2421a44
Merge pull request #2534 from appwrite/fix-manual-deployment-snippet
loks0n Oct 31, 2025
f7db048
add: animation variants.
ItzNotABug Nov 1, 2025
e405c3c
update: delay.
ItzNotABug Nov 2, 2025
66b6fa3
update: animations.
ItzNotABug Nov 2, 2025
17d7fc2
fix: ai icon.
ItzNotABug Nov 2, 2025
3a65420
fix: area not clickable.
ItzNotABug Nov 2, 2025
5eb8c54
fix: area not clickable.
ItzNotABug Nov 2, 2025
5b87b94
update: cache on format.
ItzNotABug Nov 2, 2025
d37201c
fix: userColumn check.
ItzNotABug Nov 2, 2025
95528de
Merge pull request #2532 from appwrite/fix-SER-433-Error-page-shown-w…
ItzNotABug Nov 3, 2025
1fd2442
add: in-row-editor navigation.
ItzNotABug Nov 3, 2025
37c38c7
Merge branch 'main' into fix-SER-457-resolve-forever-pending-deployments
HarshMN2345 Nov 3, 2025
ea56166
fix: shortcut not working.
ItzNotABug Nov 3, 2025
d7e19c1
fix: missing spatial deep check.
ItzNotABug Nov 3, 2025
db465c1
update: move realtime to specific pages.
ItzNotABug Nov 3, 2025
c5fd02a
Merge pull request #2540 from appwrite/fix-dat-813
ItzNotABug Nov 3, 2025
add4296
used realtime
HarshMN2345 Nov 3, 2025
b823f12
new console notification
HarshMN2345 Nov 4, 2025
7cd90c2
Improve UX of site settings
Meldiron Nov 4, 2025
2e9e4be
fix: show scroll-to-top/bottom controls in deployment logs
HarshMN2345 Nov 4, 2025
f13a681
Merge pull request #2553 from appwrite/fix-site-settings-ux
Meldiron Nov 4, 2025
20e5930
Merge pull request #2551 from appwrite/feat-SER-517-Console-Notificat…
ItzNotABug Nov 4, 2025
8491fb2
Merge pull request #2554 from appwrite/feat-add-scrollButtons-in-logs
abnegate Nov 5, 2025
4f69195
Update footer to hide version display on Cloud (#2550)
Copilot Nov 5, 2025
d36135f
auto-remove stale user/team roles
HarshMN2345 Nov 5, 2025
4d14048
format
HarshMN2345 Nov 5, 2025
fa128ae
make it mobile responsive
HarshMN2345 Nov 5, 2025
d17092e
used caption
HarshMN2345 Nov 5, 2025
dd1d49c
Update src/lib/components/permissions/permissions.svelte
HarshMN2345 Nov 5, 2025
cfde744
use callbak
HarshMN2345 Nov 5, 2025
3405c29
Merge branch 'fix-SER-414-more-permissions-ui-issues' of https://gith…
HarshMN2345 Nov 5, 2025
754ea7d
libt errror
HarshMN2345 Nov 5, 2025
1c09aff
Merge pull request #2559 from appwrite/fix-SER-414-more-permissions-u…
Meldiron Nov 5, 2025
28d90a2
Merge pull request #2520 from appwrite/fix-SER-457-resolve-forever-pe…
Meldiron Nov 5, 2025
6832224
fix: selection and deletion bug on spreadsheet.
ItzNotABug Nov 6, 2025
da9832f
update: pnpm version.
ItzNotABug Nov 6, 2025
a94470e
update: use defined constant.
ItzNotABug Nov 6, 2025
f6da8de
update: logic, count can be same and cause issues!
ItzNotABug Nov 6, 2025
ea560c1
update: logic with library side.
ItzNotABug Nov 6, 2025
0068c3c
Merge pull request #2566 from appwrite/fix-dat-865
ItzNotABug Nov 6, 2025
d0ff33c
Merge pull request #2567 from appwrite/fix-dat-2141
ItzNotABug Nov 6, 2025
75b3157
submit create-project form on Enter
HarshMN2345 Nov 6, 2025
e607ea4
use FORM
HarshMN2345 Nov 6, 2025
49bdca6
Merge pull request #2569 from appwrite/fix-SER-492-onboarding-enter-s…
Meldiron Nov 6, 2025
d3ebee8
simplify projects searcher and cleanup
HarshMN2345 Nov 6, 2025
deb745f
Merge branch 'main' into feat-SER-443-make-api-endpoint-searchable-co…
HarshMN2345 Nov 6, 2025
0d8d187
merge conflicts
HarshMN2345 Nov 6, 2025
9d46d5c
done changes
HarshMN2345 Nov 6, 2025
23741c9
made hostname required option
HarshMN2345 Nov 6, 2025
e146042
update: animation.
ItzNotABug Nov 7, 2025
1d95514
update the shimmer color on new animation for light/dark themes.
ItzNotABug Nov 7, 2025
90c5680
update: animation.
ItzNotABug Nov 9, 2025
d12547c
add: refresh support.
ItzNotABug Nov 10, 2025
be63578
fix: disable logic.
ItzNotABug Nov 10, 2025
b0ead44
address comment.
ItzNotABug Nov 10, 2025
c6cd27d
lint.
ItzNotABug Nov 10, 2025
eea75b3
Merge pull request #2577 from appwrite/add-refresh
ItzNotABug Nov 10, 2025
eb40103
Merge branch 'main' into 'add-arrow-navs'.
ItzNotABug Nov 10, 2025
aea5fe4
Make hostname field optional with localhost default in Web platform c…
HarshMN2345 Nov 10, 2025
82438c2
simplified logic
HarshMN2345 Nov 10, 2025
bf983f1
revert
HarshMN2345 Nov 10, 2025
52111d4
Merge pull request #2570 from appwrite/fix-SER-484-Make-hostname-requ…
ItzNotABug Nov 10, 2025
4d4bac8
add: triggered based focus.
ItzNotABug Nov 10, 2025
f653a82
Merge pull request #2526 from appwrite/feat-SER-443-make-api-endpoint…
Meldiron Nov 10, 2025
73552e5
Merge pull request #2538 from appwrite/add-arrow-navs
ItzNotABug Nov 10, 2025
ad3e23e
cleanup.
ItzNotABug Nov 11, 2025
9206e3b
Merge pull request #2536 from appwrite/revamp-animation
ItzNotABug Nov 11, 2025
cd44516
Fix: refresh when organization dependency change
lohanidamodar Nov 12, 2025
9e5877d
Merge pull request #2588 from appwrite/fix-refresh-alert
lohanidamodar Nov 12, 2025
631e349
Merge branch 'main' into 'revamp-designs'.
ItzNotABug Nov 12, 2025
eecf4e9
Merge pull request #2486 from appwrite/revamp-designs
ItzNotABug Nov 12, 2025
c6aae23
add: default null badge;
ItzNotABug Nov 12, 2025
85b3662
fix: should be `undefined`.
ItzNotABug Nov 12, 2025
efb2d0e
Merge pull request #2590 from appwrite/add-default-data
ItzNotABug Nov 12, 2025
931782a
fix: ignore `isActions`.
ItzNotABug Nov 12, 2025
5d222e0
update: disable buttons.
ItzNotABug Nov 12, 2025
64e5a79
Merge pull request #2591 from appwrite/disable-buttons
ItzNotABug Nov 12, 2025
5a0e4c5
Merge branch 'main' into 'merge-main'.
ItzNotABug Nov 12, 2025
129f0b7
fix: lints, checks.
ItzNotABug Nov 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Copilot Setup Steps

# Automatically run the setup steps when they are changed to allow for easy validation, and
# allow manual testing through the repository's "Actions" tab
on:
workflow_dispatch:
push:
paths:
- .github/workflows/copilot-setup-steps.yml
pull_request:
paths:
- .github/workflows/copilot-setup-steps.yml

jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v5
- name: Use Node.js
uses: actions/setup-node@v6
with:
node-version: 20
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Install dependencies
run: pnpm install --frozen-lockfile
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ jobs:
"PUBLIC_CONSOLE_MODE=cloud"
"PUBLIC_CONSOLE_FEATURE_FLAGS="
"PUBLIC_APPWRITE_MULTI_REGION=true"
"PUBLIC_CONSOLE_EMAIL_VERIFICATION=false"
"PUBLIC_CONSOLE_EMAIL_VERIFICATION=true"
"PUBLIC_CONSOLE_MOCK_AI_SUGGESTIONS=false"
"PUBLIC_GROWTH_ENDPOINT=${{ secrets.PUBLIC_GROWTH_ENDPOINT }}"
"PUBLIC_STRIPE_KEY=${{ secrets.PUBLIC_STRIPE_KEY_STAGE }}"
Expand Down
104 changes: 104 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# Appwrite Console - Copilot Instructions

## Repository Overview

Appwrite Console is the web-based GUI for the Appwrite backend-as-a-service platform. Single-page application built with **Svelte 5 + SvelteKit 2**, **TypeScript** (not strict mode), **Vite 7**, tested with **Vitest + Playwright**. Package manager: **pnpm 10.15.1**, Node 20+. ~1500 files with extensive component-based architecture.

## Critical Build & Test Commands

### Setup (REQUIRED before any commands)

1. **Install pnpm**: `npm install -g corepack && corepack enable && corepack prepare [email protected] --activate`
2. **Create .env**: `cp .env.example .env` (configure `PUBLIC_APPWRITE_ENDPOINT` and `PUBLIC_CONSOLE_MODE`)
3. **Configure network access** (if using GitHub Actions or restricted environments):
- Ensure firewall/proxy allows access to: `pkg.pr.new`, `pkg.vc`, `registry.npmjs.org`
- These domains are required for dependencies: `@appwrite.io/console`, `@appwrite.io/pink-icons-svelte`, `@appwrite.io/pink-svelte`
- In GitHub Actions: Use `pnpm/action-setup@v4` which handles registry configuration
- If network errors persist, check proxy settings: `npm config get proxy` and `npm config get https-proxy`
4. **Install dependencies**: `pnpm install --frozen-lockfile` (if pkg.pr.new/pkg.vc fail due to network restrictions, installation may still succeed with cached versions)

### Development Commands

**Standard workflow**: `check` → `lint` → `test` → `build` (before committing)

- `pnpm run check` - TypeScript/Svelte validation (~30-60s)
- `pnpm run lint` - ESLint check (~10-20s)
- `pnpm run format` - Auto-fix Prettier formatting
- `pnpm run test` - Vitest unit tests with TZ=EST (~10-30s)
- `pnpm run build` - Production build via build.js (~60-120s)
- `pnpm dev` - Dev server on port 3000
- `pnpm run preview` - Preview build on port 4173
- `pnpm run e2e` - Playwright tests (needs `pnpm exec playwright install --with-deps chromium` first, ~120s+)

**CI Pipeline** (`.github/workflows/tests.yml`): audit → install → check → lint → test → build

## Project Structure

```
src/
├── lib/ # Reusable logic ($lib alias)
│ ├── components/ # Feature components (billing, domains, permissions, etc.)
│ ├── elements/ # Basic UI elements
│ ├── helpers/ # Utility functions (array, date, string, etc.)
│ ├── stores/ # Svelte stores for state
│ ├── sdk/ # Appwrite SDK wrappers
│ └── constants.ts, flags.ts, system.ts
├── routes/
│ ├── (console)/ # Auth-required routes
│ │ ├── organization-[organization]/
│ │ └── project-[region]-[project]/ # databases, functions, messaging, storage
│ └── (public)/ # Public routes (login, register, auth callbacks)
├── themes/ # Theme definitions ($themes alias)
└── app.html, hooks.{client,server}.ts, service-worker.ts
```

**SvelteKit conventions**: `+page.svelte` (component), `+page.ts` (data loader), `+layout.svelte` (wrapper), `+error.svelte` (errors). Groups like `(console)` organize routes without affecting URLs. Dynamic params: `[param]`.

## Key Configuration

**svelte.config.js**: Adapter = static SPA (fallback: index.html), base path `/console`, aliases: `$lib`, `$routes`, `$themes`
**vite.config.ts**: Dev port 3000, Vitest (client=jsdom, server=node), test files: `src/**/*.{test,spec}.{js,ts}`
**tsconfig.json**: Extends `.svelte-kit/tsconfig.json`, **NOT strict mode** (`strict: false`)
**eslint.config.js**: Flat config (ESLint 9+), many rules disabled (see TODOs)
**.prettierrc**: 4 spaces, single quotes, 100 char width, no trailing commas

## Testing

**Unit (Vitest)**: Tests in `src/lib/helpers/*.test.ts`, run with `TZ=EST` (timezone matters). Setup mocks SvelteKit (`$app/*`) in `vitest-setup-client.ts`.
**E2E (Playwright)**: Tests in `e2e/journeys/*.spec.ts`, needs build+preview on port 4173, retries 3x, timeout 120s, Chromium only.

## Common Pitfalls

1. **Blank page in dev**: Disable ad blockers if seeing "Failed to fetch dynamically imported module" (known SvelteKit issue)
2. **Network errors on install**:
- pkg.pr.new/pkg.vc deps may fail due to firewall/proxy restrictions
- Check access: `curl -I https://pkg.pr.new` and `curl -I https://pkg.vc`
- Configure proxy if needed: `npm config set proxy http://proxy:port` and `npm config set https-proxy http://proxy:port`
- GitHub Actions: Ensure runner has internet access; use `pnpm/action-setup@v4` action
- Local dev: Often safe to continue with cached versions if network fails
3. **OOM on build**: Set `NODE_OPTIONS=--max_old_space_size=8192` (like Dockerfile does)
4. **Test failures**: Always use `pnpm run test` (sets TZ=EST), not `vitest` directly
5. **TS errors not showing**: Run `pnpm run check` explicitly (dev server doesn't always surface them)
6. **Format vs lint conflicts**: Run `pnpm run format` before `pnpm run lint`
7. **E2E timeouts**: Wait 120s for preview server startup, tests auto-retry 3x
8. **Stale build**: Clear `.svelte-kit` if changes not reflected: `rm -rf .svelte-kit && pnpm run build`

## Code Conventions

- Imports: Use `$lib`, `$routes`, `$themes` aliases
- Components: PascalCase, in `src/lib/components/[feature]/`
- Helpers: Pure functions in `src/lib/helpers/`
- Types: Inline or `.d.ts`, not `.types.ts` files
- Comments: Minimal, use for TODOs or complex logic
- TypeScript: Not strict mode, `any` tolerated

## Workflow

1. Run Appwrite backend locally (see [docs](https://appwrite.io/docs/advanced/self-hosting))
2. Configure `.env` with backend endpoint
3. `pnpm install --frozen-lockfile`
4. `pnpm dev` (hot reload on port 3000)
5. Before commit: `pnpm run check && pnpm run format && pnpm run lint && pnpm run test && pnpm run build`
6. **Take screenshots**: For any UI changes, capture screenshots and include them in the PR description or comments before finalizing

**Trust these instructions** - only search if incomplete/incorrect. See CONTRIBUTING.md for PR conventions. Use `--frozen-lockfile` always. Docker builds: multi-stage, final image is nginx serving static files from `/console` path.
16 changes: 14 additions & 2 deletions e2e/steps/free-project.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,22 @@ export async function createFreeProject(page: Page): Promise<Metadata> {
await page.waitForURL(/\/organization-[^/]+/);
await page.getByRole('button', { name: 'create project' }).first().click();
const dialog = page.locator('dialog[open]');

await dialog.getByPlaceholder('Project name').fill('test project');

let region = 'fra'; // for fallback
const regionPicker = dialog.locator('button[role="combobox"]');
if (await regionPicker.isVisible()) {
await regionPicker.click();
await page.getByRole('option', { name: /New York/i }).click();

region = 'nyc';
}

await dialog.getByRole('button', { name: 'create' }).click();
await page.waitForURL(/\/project-fra-[^/]+/);
expect(page.url()).toContain('/console/project-fra-');

await page.waitForURL(new RegExp(`/project-${region}-[^/]+`));
expect(page.url()).toContain(`/console/project-${region}-`);

return getProjectIdFromUrl(page.url());
});
Expand Down
15 changes: 13 additions & 2 deletions e2e/steps/pro-project.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,21 @@ export async function createProProject(page: Page): Promise<Metadata> {
await page.waitForURL(/\/organization-[^/]+/);
await page.getByRole('button', { name: 'create project' }).first().click();
const dialog = page.locator('dialog[open]');

await dialog.getByPlaceholder('Project name').fill('test project');

let region = 'fra'; // for fallback
const regionPicker = dialog.locator('button[role="combobox"]');
if (await regionPicker.isVisible()) {
await regionPicker.click();
await page.getByRole('option', { name: /New York/i }).click();

region = 'nyc';
}

await dialog.getByRole('button', { name: 'create' }).click();
await page.waitForURL(/\/project-fra-[^/]+/);
expect(page.url()).toContain('/console/project-fra-');
await page.waitForURL(new RegExp(`/project-${region}-[^/]+`));
expect(page.url()).toContain(`/console/project-${region}-`);

return getProjectIdFromUrl(page.url());
});
Expand Down
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"clean": "rm -rf node_modules && rm -rf .svelte_kit && pnpm i --force",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-check --tsconfig ./tsconfig.json --watch",
"format": "prettier --cache --write .",
"format": "prettier --cache --write --cache .",
"lint": "prettier --check . && eslint .",
"test": "TZ=EST vitest run",
"test:ui": "TZ=EST vitest --ui",
Expand All @@ -24,9 +24,9 @@
"@ai-sdk/svelte": "^1.1.24",
"@appwrite.io/console": "https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@2752",
"@appwrite.io/pink-icons": "0.25.0",
"@appwrite.io/pink-icons-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@8f82877",
"@appwrite.io/pink-icons-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@4472521",
"@appwrite.io/pink-legacy": "^1.0.3",
"@appwrite.io/pink-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@8f82877",
"@appwrite.io/pink-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@4472521",
"@faker-js/faker": "^9.9.0",
"@popperjs/core": "^2.11.8",
"@sentry/sveltekit": "^8.55.0",
Expand Down Expand Up @@ -99,5 +99,5 @@
"svelte-preprocess"
]
},
"packageManager": "pnpm@10.20.0"
"packageManager": "pnpm@10.21.0"
}
Loading
Loading