system_settings). ჩანაცვლდა მყარად კოდირებული კატეგორიები. დამატებულია პარამეტრების მომხმარებლის ინტერფეისი, ფერის არჩევა და AI-ტეგებზე დაფუძნებული ავტო-კითხვის/ავტო-გადატანის წესების ძრავა. 100% ლოკალიზაცია 45 ენაზე.?tag=...).Cmd+P იწყებს iframe-ზე დაფუძნებულ იზოლირებულ ბეჭდვას, აშორებს მუქ თემას და UI ელემენტებს სუფთა დოკუმენტისთვის.sync_queue წრიული გზის). ≤1 MiB წერილები გაანალიზდება პირდაპირ RAM-ში.WakeUpAccount დამატებულია 0-30წმ ჯიტერი.UPDATE ... FROM unnest, pgx.Batch). აღმოიფხვრა N+1 მოთხოვნები.account_id ყველა მოთხოვნაში ერთი წერილისთვის. PostgreSQL ახლა მიმართავს 1 პარტიციას 64-ის ნაცვლად.unread_count გამოთვლა გადატანილია folders ცხრილში, აღმოფხვრის ცოცხალ COUNT(*) უზარმაზარ emails ცხრილზე.name_lower GENERATED ALWAYS თანმიმდევრული სკანირების აღმოსაფხვრელად. გაუკომენტარდა GIN idx_emails_fts და გააქტიურდა რეალური ts_rank FTS. დამატებულია დანართების hash-ინდექსები სწრაფი CAS-დედუპლიკაციისთვის.GetEmailIDsByFilter, GetAllAttachments) OOM-ის თავიდან ასაცილებლად 100k+ ანგარიშებზე.syncPool ტევადობა (5 → 20). დამატებულია PG_SYNC_MAX_CONNS გარემოს ცვლადი.?token= უარყოფა (400). ფრონტენდი useSSETicket ჰუკი ექსპონენციალური ხელახალი დაკავშირების დაყოვნებით.0600 უფლებებით (იყო 0644).zstd ფონის panic (დამატებულია ტიპის/nil შემოწმებები). გამოსწორდა SSE EventBus ორმაგი დახურვის panic (sync.Once).net.Dial. დამატებულია პაროლის მკაფიო გადაცემა go-redis და asynq.account_id payload ფრონტენდ-ჰუკებში (useDeleteEmail) იწვევდა ცარიელი UUID-ის სინტაქსის შეცდომებს PostgreSQL-ში.MoveEmailAndEnqueueIMAP (SQLite) ახლა UPDATE + INSERT-ს ერთ ატომურ ტრანზაქციაში ახვევს შიგნით retryBusy. ადრე ორი ცალკე გამოძახება შეიძლებოდა წერილი დაეტოვებინა ნაგავში IMAP გადაადგილების რიგში დაყენების გარეშე კონკურენციის დროს. ლოდინის დრო გაზრდილია 1.55წ-დან 6.2წ-მდე ჯამში.handleDeleteEmail არჩევანი ახლა წინ მიიწევს მხოლოდ mutateAsync წყდება — ხელს უშლის setSelectedEmailId შემდეგ წერილზე გადასვლისგან მუტაციის წარუმატებლობისას. დამატებულია try/catch შეცდომის ტოსტით.shortcuts.onDelete იძახებს mutate() არჩევანის შეცვლამდე; React აჯგუფებს ორივე მდგომარეობის განახლებას, ამიტომ UI არასდროს აჩვენებს მოძველებულ შინაარსს.TEXT -ად time.Time გადაყვანა თვის date_sent, snooze_until, და created_at.failed (განმეორებადი) ნაცვლად completed.Shift+U (აგზავნიდა არჩევანის გაუქმებას). მიბმულია Cmd+A მომხმარებლის ბრძანებაზე. გამოსწორებულია i ეწინააღმდეგებოდა Shift+I. დაბრუნებულია WeakRef მენეჯერი სტანდარტულ useEffect სასიცოცხლო ციკლზე.getFolderName. გამოსწორებულია 16 გაფრთხილება ხელით მემოიზაციის React Compiler-ის. iframe ახლა იყენებს key={emailId} DOM-ის ხელახალი გამოყენებისთვის..sql ფაილების სერვერის გაშვებისას მეშვეობით schema_migrations თვალყურის დევნება და pg_advisory_lock.user: "0:0" ყველა M/U ვერსიაში გამოსასწორებლად SQLITE_READONLY userns-remap-ის მქონე სისტემებში. წაშლილია cap_drop: ALL რაც არღვევდა PG-ის ინიციალიზაციას. დამატებულია wget HEALTHCHECK.pgx, go-redis, websocket, და ა.შ.).NewManager კონსტრუქტორები. გაყოფა useEmailMutations.ts 13 ფოკუსირებულ ჰუკში. გაყოფა email-list.tsx 5 ქვეკომპონენტად.email_handlers.go (~3250 სტრიქონი) → 9 ფოკუსირებული დამმუშავებლის ფაილი + email_helpers.go.WriteJSONError / WriteInternalError ნაცვლად http.Error.?token= აბრუნებს 400; ავტორიზაცია მეშვეობით ?ticket= ან rms_token httpOnly ქუქები. sse_auth_test.go დამატებულია.HandleSetup აყენებს httpOnly rms_token ქუქები პირველი გაშვებისას.e2e/smoke.spec.ts CI მილსადენში.e2e/unified-auth.spec.ts ეფემერული Postgres-ით (e2e-unified-backend.sh). CI ამოცანა e2e-unified.page.tsx → useMailInboxPage → useMailInboxState + buildMailViewerProps.useEmailListFilters, useEmailListKeyboard, useEmailListVirtualizer.framer-motion swipe CSS გადასვლებით. ჰიბრიდული ვირტუალიზატორი: ფიქსირებული ROW_HEIGHT შეფასება + measureElement ხილულ სტრიქონებზე.context.WithoutCancel ცალკეულ ჩაწერებზე.rms_edition localStorage-ის გასაღები; ადმინისტრატორის მოთხოვნები გამოტოვებულია Mono-ში.ai_cat_empty i18n, იარლიყები + AI ტეგები EmailRow.account_id ში MoveEmail; BulkDeleteEmails ასუფთავებს emails_fts + გამეორება; მასობრივი ოპერაციების შეცდომების გავრცელება bulkErr.TestMoveEmailAndEnqueueIMAP_MovesToTrash.window.prompt -ით M — საქაღალდეების სია დიალოგში, ნავიგაცია ისრებით.isInsideModal თრგუნავს კლავიშების კომბინაციებს, რომლებიც დიალოგების შიგნით შედის.e2e/inbox-flow.spec.ts, helpers შესვლის/ანგარიშის მონაცემებისთვის, npm run test:e2e:local.E2E_EMAIL / E2E_PASSWORD -დან app_build/.env ან .env.production (E2E_ENV_FILE გადაწერა).ensureEmailAccess, verifyBulkEmailAccess, account_id WHERE-ში საცავის, Mono გაერთიანებული + group: ხილვადობის სფერო სიის/ძიების/ყველას არჩევის/მასობრივი ფილტრისთვის.Bulk*ByFilter ჩაწერის რიგის მეშვეობით; resolveBulkMoveTarget (საქაღალდე თითოეული ანგარიშისთვის სახელის მიხედვით); folderNameMap IMAP-ის რიგში დასაყენებლად.query-cache.ts, გვერდული უსასრულო კურსორი, ოპტიმისტური მასობრივი ფილტრი, პაკეტური მეტკების სტაბილური გასაღებები, მხოლოდ განვითარებისთვის HotkeyManager-ის ლოგები.email_helpers_test.go; go test ./..., vitest, typecheck მწვანე.audit fix --force უარყოფილია (შეამცირებდა Next.js-ის ვერსიას).requireAdminForNonMono -ზე CheckAccountAccess ქეშ-ჰიტი; მასობრივი ოპერაციები ტეგებით/მეტკებით + AI წვდომის შეჯამება სხეულის წაკითხვამდე; group_id სია თითოეული ანგარიშის ხილვადობის სფეროთი.set_flagged API + BulkSetFlagEmails — მონიშნო ყველა ან მოხსნა ყველა (არა თითოეული წერილის გადართვა); ყველას არჩევა საქაღალდეების რაოდენობის მიხედვით./api/emails/count?flagged= / has_attachments=; React Query email-folder-counts (არ ჩატვირთული გვერდის მონაკვეთი).top: positioning; semi-transparent drag ghost; swipe only on touch screen on mobile devices.*_mono.sql; SQLite უპირატესობას ანიჭებს mono-ორმაგებს, გამოტოვებს მხოლოდ Postgres 005/006/010_64/021.InitSchema + RunMigrations HTTP-ს მოსმენამდე; წარუმატებლობის შემთხვევაში წყვეტს პროცესს (გატეხილი API-ს გარეშე).emails ცარიელი schema_migrations; გამოტოვება ჩანაცვლებულებისთვის 005/010_64; უვნებელი იდემპოტენტური DDL errors.IF NOT EXISTS syntax, if column already exists.005_partition_emails.sql); Unified folders.uid_validity legacy Postgres-ზე აკლია.folders.uid_validity column (migration 022); mismatch for each folder clears queue + full re-sync in multi_folder.go.multi_folder_test.go regression coverage.setState-in-effect → sync during rendering; removed unused variables; virtualizer eslint-disable.e2e-local.sh: auto E2E_EMAIL/E2E_PASSWORD from M_EMAIL/M_PASSWORD; API login helper for controlled input data.