Jump to content
KAMOUniverse

Changelog

Ada kabar baru.

Setiap perbaikan pada platform, sebagai kapal.

  1. · kamo-shared-library

    Tambahkan per- anggota tugas dan per-dokumen kemajuan

    Baris dokumen adalah gabungan yang membuat N e-sign amplop dibaca sebagai satu paket. Jumlah lencana berasal dari status penempatan, bukan e-sign status: penerima status tidak memiliki VOID atau EXPIRED, kekosongan tidak pernah menyentuh penerima, dan paket hanya diketahui - tidak memiliki amplop sama sekali.

  2. · kamo-shared-library

    Bekukan isi paket ke dalam versi yang tidak dapat diubah

    Pins id blob ImgDat dan yang SHA- 256, tidak hanya imgId - sebuah Docs save repoint Img sama pada bytes baru, sehingga imgId saja akan membiarkan dua anggota menandatangani dokumen yang berbeda di bawah ID identik. Snapshots desain juga, jadi eksekusi tidak pernah tergantung pada resolveDesignJson jatuh kembali ke tata letak terbaru.

  3. · kamo-shared-library

    Target paket di departemen, jenis pekerjaan atau anggota bernama

    Berbentuk SystemUserAccess. Tambahkan resolver penonton ke TeamAnggota Repo, yang adalah sebuah antar-muka kosong; predikat AKTIVE + recordState adalah apa yang disimpan Mengakhiri staf dan kandidat yang belum disewa keluar dari pengiriman.

  4. · kamo-shared-library

    Tambahkan entitas template paket legal

    Sebuah paket adalah satu set diperintahkan binders ditambah audiens. Referensi binder adalah ID lembut karena binder dapat dihapus dan cascade item mereka. The attestation wording disimpan dalam penuh dengan hash nya - sebuah penunjuk tidak dapat membuktikan apa anggota setuju.

  5. · kamo-internal

    Membuat toko binder menyadari koleksinya

    Toko adalah sebuah modul singleton, jadi sekarang melacak scope aktif, membersihkan pada sebuah scope change, dan tetes tanggapan in- penerbangan basi.

  6. · DocsService

    Daftar dan buat binder dalam satu koleksi

    Skop permintaan visible- binder ke DocManager 's (Ascoptic Type, ascover Object Id), stempel lingkup pada pembuatan, mewarisi pada duplikat, dan benjolan last _ dimodifikasi dari mutasi item yang tidak pernah menulis baris binder.

  7. · DocsService

    Membawa lingkup koleksi pada kontrak kawat binder

  8. · InitializerService

    Backfill koleksi setiap binder yang ada milik

    Berisi lingkup dari Igg item DOC pertama; binder kosong jatuh kembali ke pemilik saya Docs. Aplikasi TIDAK NULL hanya setelah backfill.

  9. · kamo-shared-library

    Jarak dekat binder ke satu koleksi dokumen

    Mengganti denda VisibleToMber dengan varian scoped dan tetes dua penunjuk yang tidak direferensikan yang diurutkan oleh kolom tertanggal _ terbaru yang mati.

  10. · kamo-shared-library

    Berikan binder koleksi dokumen milik

    Binders tidak memiliki scoping assoc, sehingga setiap DocManager diberikan global yang sama per-anggota pool dan binder dibangun di bawah Pemasaran bisa diisi dengan HR dokumen. Toko ImageAscoptic Type ordinal untuk mencocokkan img.astered. Juga menambahkan app- dikelola terakhir _ diubah: BaseEntity.dateUpdated adalah * * * * * * * * * * * * * * sehingga daftar sort-by-dimodifikasi selalu telah memilah oleh waktu penciptaan.

  11. · kamo-internal

    Grup ruas pertemuan-undangan dengan makna ketika dimaksimalkan

    Memisahkan bentuk menjadi bagian yang sama menggunakan unit yang salah. Ini membentang tanggal masukan melewati setengah jendela dan terdampar kotak All@-@ day nya di ujung jauh, kiri dua waktu singkat masukan akhiran beberapa ratus piksel dari apa-apa, dan didorong Tambahkan lebar jendela penuh dari Pengingat itu milik - sementara daerah yang membaca sebagai salah satu pemikiran duduk baris terpisah. Klaim trek dari grid 12-kolom sebaliknya, berukuran ke apa setiap bidang adalah: Lebar judul, ruas judul Tanggal + Sepanjang hari adalah 124; Waktu 124; TZ seluruh "ketika" cluster pada satu baris Lokasi URL: 124; Pertemuan di mana dan bagaimana untuk bergabung Pengingat label, entri, dan Tambah inline yang mengalir Pengingat saja mendapat baris kembali: dua pilihan pendek tidak lagi biaya baris masing-masing. Zona waktu melebar untuk menyerap jejak Time field pada pertemuan sepanjang hari jadi garis yang masih bentangkan lebar. Perintah lapangan tidak tersentuh - pengelompokan datang dari Spanyol, sehingga apa yang Anda tab melalui tetap apa yang Anda lihat, di kedua tata letak.

  12. · kamo-internal

    Jauhkan kutipan asli dari tubuh yang dapat disunting

    Menjawab menjatuhkan seluruh pesan yang dikutip ke dalam penyunting Quill sebagai teks tubuh. Quill hanya bisa memodelkan kisi sederhana, jadi setiap tabel tata letak dalam kutipannya adalah diratakan menjadi satu - dan tabel tata letak adalah bagaimana tanda tangan dan hampir semua surat pemasaran dibangun, itulah sebabnya tanda kutip kembali sebagai kosong grid sel tanpa cara untuk mendapatkan kembali asli. Kutipan sekarang perjalanan samping tubuh daripada di dalamnya. Balas, ulang-semua dan berikan sebagai 'quotedHtml'; komposer menunjukkannya di bawah signature, persis di mana tanah dalam surat dikirim, diberikan melalui sama iframe pasir panel bacaan menggunakan - sehingga terlihat seperti itu ketika tiba, dan CSS tidak dapat bocor ke komposer sekitarnya. Pada pengiriman itu ditambahkan setelah tanda tangan. Hal ini runtuh untuk memulai, karena pada benang panjang kutipan kerdil jawaban. Dua tindakan duduk di sampingnya: menghapusnya dari jawaban, atau memindahkannya ke tubuh sebagai teks biasa. Yang kedua ada karena mengambil kutipan dari penyunting menghilangkan kemampuan untuk memangkas benang ke garis yang dijawab - melakukan yang masih biaya tata letak, tetapi sekarang merupakan pilihan eksplisit daripada tidak dapat dihindari default. Dibersihkan di jalan keluar. Routing kutipan di sekitar penyunting juga disalurkan sekitar scrubbing implisit editor melakukan, sehingga sanitizeEmailHtml sekarang berjalan di atasnya sebelum dikirim. Secara paksa TIDAK melalui MEMBUAT HTMlSIBLE: yang menjaga menilai warna terhadap kanvas putih komposer, yang benar untuk teks ditulis di sana dan salah untuk sebuah kutipan yang membuat < style > sendiri dan membuat latar belakangnya sendiri. Inverting tulisan putih bertema gelap akan membuatnya menjadi gelap pada gelap. Kutipan naik pada snapshot tool- window sehingga reload tidak hilang, dan digabung ke tubuh ketika menyimpan draft - yang draft titik akhir menyimpan satu tubuh, dan draft dibuka kembali memegang kutipan sebagai teks mengalahkan kehilangan benang.

  13. · kamo-internal

    Pasangkan ruas pertemuan-mengundang ke dalam dua kolom ketika dimaksimalkan

    Bentuk daftar undangan delapan baris lebar penuh, yang dalam kompose maksimal jendela mendorong penyunting tubuh sebagian besar jalan dari layar ketika meninggalkan setengah lebar jendela kosong kedua sisi dari masukan. Dimaksimalkan, bidang sekarang mengalir ke dua trek dalam urutan DOM mereka yang telah ada - Judul 124; Tanggal, Waktu 124; Timezone, Lokasi 124; URL - membagi tinggi formulir tanpa memesan kembali apa pun atau menyentuh tata letak sempit. Pengingat menjaga lebar penuh dalam kedua: daftar tumbuh baris per pengingat, dan setengah kolom akan membuat seluruh bentuk melompat tinggi setiap kali satu ditambahkan. Trek adalah minmax (0, 1fr) daripada 1fr, atau sebuah trek garis baku lebar-kecil: auto akan menolak untuk menyusut di bawah isinya dan biarkan baris URL push input dan Hasilkan tombol melewati setengah lebar.

  14. · ESigService

    Terapkan operasi halaman dan pemodifikasi ke dokumen yang ditandatangani

    Desainer selalu menawarkan rotasi halaman, hapus, urutkan ulang dan add-blank, plus watermark, page- number and label modifier, and the flatten read none of it: it nilai field tertempel ke halaman sumber dan memberikan sertifikat. Sebuah halaman Anda dihapus masih dikirim, sebuah watermark Anda dikonfigurasi tidak pernah muncul. Semuanya sekarang diterapkan. Pipa komposes dalam urutan harapan pembaca membutuhkan - halaman kosong dimasukan sehingga indeks ruang desain cocok dengan dokumen, setiap halaman berbalik, di belakang - pemodifikasi digambar, nilai field dicap, above- watermark digambar, dihapus halaman dijatuhkan dan sisanya diurut ulang, sertifikat ditambahkan terakhir. Sertifikat tidak membawa nomor halaman atau watermark: mereka adalah catatan audit dokumen, bukan bagian dari itu. Jumlah halaman diselesaikan terhadap urutan selesai, jadi dokumen yang menjatuhkan nomor halaman yang selamat 1.. n daripada meninggalkan celah. Desainer sekarang selesaikan urutan tersebut secara identik (kamo- internal pageseces.ts cermin EsignPageLayout, case for case) so the preview cannot promise a number dokumen yang dikirim tidak akan dibawa. Pengubah ditempatkan terhadap halaman ketika pembaca melihatnya, yang pada putaran halaman berarti pemetaan tampilkan koordinat kembali ke ruang pengguna dan sebelum-mengubah isi sehingga tidak keluar menyamping-EsignPageFrame melakukan itu, dan yang Empat putaran terjepit oleh tes sudut. Watermarks menggunakan logo org sendiri dari ember tema. Kebanyakan organ menahan SVG Hanya dan PDFBox menarik rasters, sehingga SVG diterjemahkan melalui Batik dengan eksternal sumber daya loading ditolak - sebuah logo upload adalah konten tenant- yang disediakan dan asterisasi tidak membersihkan. Sebuah org tanpa logo tidak mendapat watermark; tanda baku platform tidak pernah diganti ke perjanjian penyewa. Hardening seluruh: desain JSON adalah parsed benar-benar, sehingga sesuatu yang salah bentuk, diluar dari jangkauan atau dari sebuah desainer baru dijatuhkan daripada dibuang dan Tanda tangan masih mendarat. Menghapus setiap halaman ditolak - PDF tidak valid formulir zero- halaman dan kesepakatan dengan tidak ada halaman bukan sebuah dokumen. Halaman yang terjalin atribut disematkan sebelum pohon halaman direstrukturisasi. Ruas pada suatu dihapus halaman tidak dicap ke beberapa halaman lain. Teks menyimpan aksennya daripada sedang diratakan ke ASCII, per karakter, terhadap apa font dapat mengkodekan. 59 tes, 17 dari mereka mengendarai PDFBox asli untuk mengakhiri dan membaca hasilnya kembali.

  15. · kamo-internal

    Berikan setiap jendela popup 40px lebih banyak ruang di kedua sumbu

    Setiap alat default Ukuran dan MinSize dalam registri tumbuh dengan 40x40, dan geometri yang hardkode bersama bergerak dengan itu daripada hanyut di luar perjanjian: - KalkulorTool 's per- mode ukuran tabel, yang cermin kalkulator Daftar bawaan. - AiChatWindow sudah pulih dari ukuran maksimal. Pada 420x520 itu sudah rambut di bawah minimum tua; terhadap baru 360x540 itu akan dipulihkan jendela lebih kecil dari drag-resize diperbolehkan untuk membuatnya. - restoreWindows () sekarang memainkan ulang ukuran yang bertahan hanya untuk alat pembaca dapat benar-benar mengubah ukuran. Untuk alat fixed- ukuran snapshot hanya gema kembali standar registri dari bangunan mana yang menulisnya, sehingga sebuah tab memuat ulang di seluruh perubahan ini akan mengembalikan yang lama 320x650 dan menyimpannya untuk sisa hidupnya. Penjaga yang sama memperbaiki kasus yang mendahului perubahan ini: jendela relayout telah menjepit turun untuk menyesuaikan viewport pendek itu bertahan di ukuran clamped dan tidak pernah tumbuh kembali sesudahnya. Tempat penempatan dermaga sendiri - findDockX, relayoutWindows, make Room dan mesin hexhead menghindari - semua mengukur geometri hidup, sehingga mereka mengikuti ukuran baru dengan apa-apa untuk memperbarui. Juga perbaiki percakapan AI memaksimalkan tombol, yang memilih aksi dari 'tinggi > 800' ketika menggambar ikon dari 'Dimaksimalkan'. Pada viewport pendek dari 800px memaksimalkan tidak pernah dapat memenuhi ambang batas itu, sehingga tombol yang ditawarkan untuk mengembalikan dan kemudian dimaksimalkan lagi - jendela tidak dapat dibawa kembali sama sekali. Keduanya sekarang membaca nilai yang sama.

  16. · kamo-internal

    Seret, potong, salin dan salin penerima chip antara To, Cc dan Bcc

    Memindahkan seseorang dari To ke Bcc berarti menghapus chip dan mengetik alamat lagi dari ingatan. Chips sekarang dipilih dan dapat diseret atau dibawa (Dan demi yang berlayar) yakni kapal-kapal yang berlayar di atas permukaan air (dengan cepat) dengan sangat mudahnya. Kalimat ini adalah Mashdar yang berkedudukan menjadi Hal, yakni Muyassaratan. - klik pilih sebuah chip; cimbalannya / cmd- klik toggles dan shift- klik mengambil jangkauan. Kartu info bergerak dari klik ke double-click, sehingga klik tunggal dapat melakukan apa itu tidak dalam setiap klien surat lainnya - mengambil chip up. - tarik satu chip atau seluruh seleksi ke bidang lain. Ctrl atau Alt membuatnya salinan; karet penyisipan menunjukkan di mana ia akan mendarat, dan menjatuhkan di dalam sama bidang reorders. Sebuah tarik multi- chip membawa hitungan daripada menunjukkan - Ctrl + X / Ctrl + C / Ctrl + V bergerak chip antara bidang. teks / plain selalu ditulis, sehingga chip diseret atau disalin ke dalam tubuh - atau ke surat lain klien seluruhnya - tiba sebagai daftar alamat biasa; rasa pribadi di samping nama, foto dan kontak link untuk pasta kembali ke Kamo. - Keyboard: panah berjalan chip (shift extend), Ctrl + A mengambil lapangan, Hapus pilihan dan tanah pada chip berikutnya, kembali Escape ke masukan. Backspace dalam sebuah masukan kosong sekarang langkah ke chip terakhir sebagai gantinya menghapus langsung, jadi apa yang akan pergi adalah terlihat pertama. - menempel ke chip masukan setiap alamat lengkap yang ditemukan, termasuk satu. Sebuah fragmen setengah-diketik masih jatuh melalui ke masukan teks. Bagian-lapangan membutuhkan tiga bidang untuk bertindak satu sama lain, yang lapangan memiliki hanya daftar sendiri tidak dapat dilakukan; RecipientTransferProvider memegang registry dan melakukan gerakan. Sebuah bidang yang diberikan tanpa itu - editor kampanye menggunakan salah satu di atasnya sendiri - terus seleksi, memesan kembali dan clipboard, dan sederhana memiliki Tak ada tempat untuk dipindahkan. bagian Penerima Daftar sekarang membutuhkan domain bukan hanya sebuah '@'. parseAddress adalah sengaja lax karena kunci cache avatar dari header apapun dibawa; chip adalah sesuatu yang kita akan mencoba untuk memberikan ke, dan menempel "bob @" yang tidak pernah bisa dikirim.

  17. · kamo-internal

    Putar ruas overlay dengan halaman, tanda impor yang belum dibaca, ruas urut untuk dibaca

    Tiga hal yang hanya mulai penting sekali dokumen tiba membawa empat puluh terdeteksi field daripada dua yang ditempatkan. Rotasi halaman: memutar halaman memutar kanvas tapi ruas kiri dan anotasi belakang, sehingga mereka meluncur off konten mereka berlabuh ke. Dua lapisan sekarang putar dengan halaman, menjaga koordinat mereka di halaman sendiri ruang unrotasi karena itulah yang posisi backend terhadap. Setiap interaksi penunjuk adalah dipetakan kembali dari ruang layar melalui pembantu baru pageometri - menyeret, mengubah ukuran, gambar anotasi, dan menjatuhkan bidang baru dari kotak perkakas - dan unrotated: mereka ditempatkan terhadap bingkai halaman, bukan isinya. Penanda yang belum diulas: ruas otomatis ditempatkan membawa cincin berlari sampai klik pengguna satu, jadi import besar dibaca sebagai checklist. Situasi - saja, tidak pernah disimpan. Urutan baca: ruas terdeteksi diurutkan ke bawah halaman dan di setiap baris, dengan toleransi sehingga baris sedikit misaligned masih agak kiri ke kanan. Widget perintah dalam berkas adalah sebuah hartefact-tool dan sering tidak membaca order. Juga memperbaiki sebuah pilihan-nilai tabrakan saya sendiri membuat: dua tombol radio yang terjemahan tercetak cocok (dua "Ya" pada satu pertanyaan) diberikan nilai yang sama, dan penandatangan lampu tombol dengan membandingkan nilai grup ke sendiri tombol, Jadi keduanya akan menyala sekaligus.

  18. · kamo-internal

    Aksi format Acrobat Baca ketika mendeteksi ruas fible

    Acrobat menyimpan format field yang dimaksudkan sebagai JavaScript dalam / AA, yang pdf.js permukaan sebagai tindakan. Format. Itu adalah deklarasi penulis daripada menebak off the field name, so it now outranks the name / caption heuristik: - AFNumber _ Format - > mata uang ketika membawa sebuah string mata uang, nomor lain - AFDate _ Format / AFDate _ FormatEx - > tanggal, AFTime _ Format - > waktu - AFPercent _ Format - > nomor - AFSpecial _ Format (n) - > zip / zip + 4 / phone / SSN - Tindakan Kalkulasikan berarti bidang dihitung, sehingga mengimpor baca-saja Juga: sebuah tanda tangan atau widget awal lebih tipis daripada yang dibutuhkan kontrol sekarang berkembang ke atas dari tepi bawah, karena sebuah PDF signature field sering hanya sebagai tinggi sebagai aturan cetak itu duduk dan tinta milik di atas garis, dan XFA murni dokumen dilaporkan sebagai seperti itu daripada membaca sebagai "tidak ada field filable", karena Ladangnya hidup di XML yang deteksi AkroForm tidak bisa lihat. Diverifikasi terhadap nyata pdf.js 4.10.38 bersama unit suite.

  19. · kamo-internal

    Masukkan link pertemuan baru pada pengkode dari komposer

    Tambahkan aksi footer ke jendela compose yang membuat pertemuan dengan penyedia organisasi yang dikonfigurasi dan menulis join link ke dalam tubuh dimanapun caret terjadi. Terpisah dari pertemuan-mengundang toggle di sampingnya: yang menempel kalender undangan dengan waktu, peserta dan pengingat, sementara ini adalah satu - klik "Di sini adalah sebuah ruangan, datang setiap kali" kasus yang hanya perlu URL dalam prosa. Karet dilacak di blur klik akan menyebabkan sebaliknya, sehingga link tanah di mana anggota mengetik daripada di bagian atas pesan. Create- dan-linkify langkah komposer undangan sudah memiliki sekarang bersama, jadi ada satu definisi bagaimana pertemuan menjadi link-Kamo sendiri / meet / join / < id > redirect, which is provider-aware and signs Kamo members in di klik waktu.

  20. · kamo-internal

    Membangun ulang ruas PDF 's AcroForm sebagai ruas asli Kamo

    Membuka PDF yang dapat disunting di penyunting dokumen kini membaca widget AcroForm-nya anotasi dari dokumen pdf.js dan membuat ulang masing-masing sebagai DesignField pada halaman yang sama, pada posisi dan ukuran yang sama, dengan yang paling dekat cocok Kamo tipe lapangan. Pada desain tak tersentuh bidang ditempatkan secara otomatis (satu hapus langkah, dengan aksi Undo saat pemberitahuan); jika tidak, toolbox akan menawarkan dialog review yang melewati sesuatu yang telah ditutupi oleh ruas ditempatkan. - app / lib / esign / acroform.ts: deteksi murni. Widget rects dikonversi melalui viewport halaman sehingga halaman / Rotasi merasa terhormat. Cover pemetaan struktural Sig / Btn / Ch / Tx (tekan tombol dan widget tersembunyi diturunkan); widget teks memperoleh semantik melewati tooltip, nama field dan judul dicetak di samping mereka pada halaman, jadi "Peminjam Tanda Tangan" menjadi kotak tanda tangan dan Kencan "Signature Date". Tombol radio menjaga kotak individu mereka dan Terikat bersama melalui linkedGroupId bersama. - DesignField memperoleh pilihan opsional [], cocok dengan kontrak opsi field aplikasi penandatangan sudah menerima; panel properti sekarang mengeditnya, dan dapat juga mengatur lapangan ke penandatangan lain. Diverifikasi terhadap real pdf.js 4.10.38 parsing a real pdf-lib- built form, in tambahan ke unit suite.

  21. · InitializerService

    Buat kolom pencarian _ vektor email dan indeks terbalik nya

    Tidak pernah ada. Miliki EmailService V1 _ _ email _ metadata _ schema.sql mendeklarasikan itu, tetapi migrasi tidak pernah berjalan - tabel ini berasal dari layanan 's entity scan, dan SearchIndexEntity menghilangkan field karena Hibernate tidak dapat memetakan TSVECTOR, jadi ddl- auto tidak bisa menambahkannya. Karena itu gagal dengan SQLSTATE 42703 setiap pesan, dan karena itu UPDATE berbagi transaksi dengan insert baris, silinder digulung kembali juga. Tabel selalu kosong dan pencarian email telah tidak pernah kembali hasil.

  22. · kamo-internal

    Sebuah kartu kontak di balik setiap nama pada pesan

    Setiap orang yang ditampilkan dalam pandangan membaca adalah jalan buntu. Untuk dan Cc diberikan sebagai display NameFor (a) .join (',') - sebuah dinding koma dari tampilan nama tanpa alamat, tidak ada melayang, tidak ada tindakan. Tiga hal yang salah dengan itu. Alamatnya tak dapat dipulihkan, dan nama tampilan adalah attacker-terkontrol teks header, jadi dua orang yang disebut Chris tidak dapat dibedakan dan menyalin alamat seseorang yang CC 'd berarti membuka jawaban dan memeriksa chip. Semuanya organisasi sudah tahu tentang orang itu - catatan rekan, buku alamat, avatar, langsung kehadiran - menyelesaikan dengan alamat dan tidak ada yang mencapai layar. Dan benang penerima empat belas yang dibuat sebagai satu baris yang tidak dapat dibaca. Menutupi nama sekarang membuka kartu. Plat alamat adalah pusatnya daripada subjudul abu-abu, karena alamat adalah apa kartu ada untuk menyerahkan: lebar penuh, mono, bagian lokal dalam tinta dan domain lebih ringan, seluruh piring salinan kontrol yang menyapu aksen pesan di atas kesuksesan sendiri, dan masih dipilih untuk siapa saja yang lebih suka menyeret. Disekitarnya, hanya baris yang memiliki sesuatu di dalamnya: judul pekerjaan, majikan, departemen, nomor yang dial softphone, ekstensi kolega, dan waktu lokal mereka sebelum Anda menghubungi mereka. Rekan-rekan membawa titik kehadiran langsung dari kehadiran yang ada dan tersedia konteks. Pengirim otomatis mengatakan demikian, dan alamat no- balasan tidak menawarkan balas kotak surat akan menolak. Daftar penerima lima nama terakhir runtuh di belakang hitungan. Mekanisme hidup di Kartu USEO, jauh dari kartu, karena tidak ada yang tentang orang: hover niat sehingga pointer melintasi header tidak api kartu, a close grace period so the diagonal path to the card does not dismiss it, one Kartu terbuka pada suatu waktu, pengukuran ulang ketika gulungan panel atau catatan tanah, dan tombol nyata sehingga keyboard dan menyentuh mencapai sama sekali. Hanya fokus papan tik Buka - bertindak saat klik fokus akan membuka kartu dalam klik yang sama toggles itu menutup, dan chip akan terlihat inert untuk mouse. Records come from korespondentStore, keyed by address and never merged into objek pesan: kedua daftar tilikan jajak pendapat setiap tiga puluh detik dan mengganti mereka pesan array grosir, yang akan menghapus apa pun dibawa ke sana dua kali satu menit. Tidak seperti avatar mereka menyelesaikan lazily - sebuah header keseluruhan presept ketika sebuah pesan membuka, dan melayang mencakup apa pun yang hilang - jadi kartu biasanya sudah diisi ketika animates masuk format Ago keluar dari MemberItem sehingga daftar dan kartu menjelaskan hal yang sama tidak ada cara yang sama.

  23. · EmailService

    Selesaikan orang-orang di belakang alamat pada pesan

    Sebuah header pesan tahu sebuah alamat dan nama tampilan apapun yang dipilih pengirim taruh di sampingnya. Organisasi ini sudah tahu lebih jauh - kolega, alamat buku, ekstensi, zona waktu - dan tidak ada yang mencapai kotak surat. POST * * * * * * * * * * * * * * menjawab batch dari alamat dengan orang di belakang masing-masing: rekan (dengan jabatan, departemen, ekstensi, zona waktu dan anggota id yang membuka kunci kehadiran dan percakapan), kontak disimpan (dengan majikan, judul dan nomor), atau eksplisit EXTERNAL sehingga penelepon dapat menyimpan jawabannya Alih-alih bertanya pada setiap hover. Terpisah secara sengaja dari titik akhir avatar daripada terlipat ke dalamnya. Itu satu adalah dua- fase dengan kebutuhan - kehilangan penuh dapat berarti DNS ditambah empat HTTP panggilan ke pihak ketiga - dan ini adalah segelintir lokal, indeks, org- scoped membaca bahwa dapat menjawab sepenuhnya pada panggilan pertama. Berbagi titik akhir akan memaksa mensinkronisasikan setengah untuk mewarisi kontrak "tanya lagi nanti" itu tidak perlu. Keyed pada alamat telanjang dan tidak pernah pada nama tampilan, yang attacker-teks dikendalikan: orang luar dapat mengatur mereka untuk nama asli seorang rekan itu, dan catatan ini membawa ekstensi direct- dial kolega itu. Normalizer yang memaksa yang sekarang berbagi dengan titik akhir avatar (Alamat Mailbox), jadi keduanya tidak dapat hanyut terpisah dan kehilangan entri cache masing-masing. Organisasi datang dari sesi, tidak pernah permintaan - titik akhir jawaban "apakah penyewa ini memiliki catatan untuk alamat ini", yang merupakan keanggotaan peramal jika penelepon memilih penyewa. Ids serialisasi sebagai string: CockroachDB id baris dijalankan masa lalu MAX _ SAFE _ INTEGER, dan Layanan EmailService tidak memiliki global Long- to-string mapper karena uid pesan adalah longs kotak surat depan benar-benar memperlakukan sebagai angka.

  24. · kamo-internal

    Tab sumber daya adalah pustaka dokumen HR org

    Gantikan placeholder Sumber Daya dengan DocManager pada koleksi dokumen sendiri - ImageAssType.HR _ RESOURCE, ember imagining- hm- sumberdaya - org- scoped cara Pemasaran Materials adalah, dan sengaja terpisah dari itu: pemasaran Flyer dan buku panduan karyawan tidak termasuk dalam satu perpustakaan. Tipe assoc dikirim sebagai INAL enum 's (13), bukan id (15). Gambar backends menyelesaikannya dengan nilai () [aschole Type] dan dua diverge karena enum melewati id 6; mengirim id akan menulis ke ember koleksi lain, yang adalah bagaimana permukaan Dok saya sekali dikirim dokumen itu tidak bisa membaca kembali. HR _ RESOURCE _ ASSOC _ TYPE membawa penalaran itu di samping konstanta. Layanan Dokter dan Layanan Percakapan dibangun kembali untuk konstanta baru pertama - frontend adalah satu-satunya yang mengirimkan 13, sehingga tanah terakhir.

  25. · kamo-shared-library

    HR _ RESOURCE tipe assoc untuk pustaka sumber daya org HR

    Tab Sumber Daya / hr menerbitkan buku pegangan, kebijakan, formulir, dan referensi material ke seluruh tim, dan tidak ada tipe assoc yang ada: MY _ DOCS adalah area pribadi, ember SYSTEM _ WIDE adalah e- tanda templat, dan MATERIALS adalah perpustakaan pemasaran - selebaran dan buku pegangan karyawan tidak termasuk bersama-sama. Organik-scoped seperti MATERIALS, dengan menghapus / overwrite / folder di karena HR kurates ini dengan tangan. tipe Doc diperbolehkan tetapi opsional (isAllowDocType = false, IsAllowDocTypeOpt = true), so an org that wants Handbook / Policy / Form kategori dapat menghidupkan mereka tanpa setiap org lain dipaksa untuk mengajukan satu. Ditambahkan terakhir, sehingga tidak ada pergeseran koordinat yang ada. ORDINAL Its adalah 13 sementara id nya 15 - enum melewati ID 6, dan penelepon mengirim ordinal, sehingga pin tes 13 dan jangkar MATERIALS / CATALOG _ SOURCE kedua sisinya. Layanan Percakapan dan doksService indeks enum oleh ordinal dan perlu membangun kembali sebelum apa pun mengirimkan 13, atau nilai-nilai () [13] melempar pada array pendek mereka.

  26. · kamo-internal

    Shell Sumber Daya Manusia dengan lima tab didukung

    Tambahkan / hr dengan akuntan- page krom dalam bentuk route- backed (yang sama / marketing telah menggunakan): sebuah layout memiliki gradien pahlawan dan tab garis bawah bar, sebuah indeks yang mendarat pada tab yang dapat dicapai pertama, dan halaman masing-masing untuk Overview, Attendance, Legal & Compliance, Training, and Resources. Dua gerbang, keduanya diperlukan. organizon.is Hrs - the HRS toggle under / settings / account? tab = apps - bounces the route home when the app is off, since dengan itu off / hr bukan tempat yang ada untuk org. Dengan aplikasi, sebelas telah ada ServiceType.HRS hak-hak memutuskan: sebuah senyawa baru hasAnyHrRight gerbang bergabung Dan setiap tab membawa Or- grup predikat (HR tidak memiliki pandangan tunggal benar cara Pemasaran tidak). Tab anggota gagal disembunyikan dari bar dan menolak pada entri URL langsung. Register 'hr' dalam daftar nav di atas Pengaturan, default ke primer rel; kartu home- launchpad dan perintah-palet mengikuti dari registry keanggotaan. Perintah pendaftaran saja hanya mengatur anggota pertama-run, meskipun - service Zone appened never-arranged ids, so anyone who ever touched their nav akan mendapat HR * dibawah * Pengaturan. mergeCanonicalOrder sekarang memasukkan ID tersebut di posisi yang diminta registry dan useHomeLayout menggunakan aturan yang sama, sehingga penempatan dideklarasikan berlaku bagi anggota yang ada dan setiap pilihan masa depan juga. Tubuh tab adalah placeholder: tidak ada model data HR dimanapun di backend Namun (tidak ada karyawan, kehadiran, gaji, pelatihan atau entitas kepatuhan di SecurityService, APIService atau perpustakaan terbagi), jadi setiap nama tab itu sendiri dan apa yang akan terus. Spek dalam docs / superpower / spesifikasi.

  27. · kamo-internal

    Selesaikan tab Komunikasi

    Setiap sub- tab sekarang memegang data sendiri, dan Semua interleades setiap saluran dengan tanggal. Catatan menyimpan MediaStream, karena catatan ditulis di sini - tetapi readOnlyChrome strip yang diberikan sosial catatan pelanggan tidak ada gunanya untuk: PUBLIC Aksesor PRIVATE dalam komposer dan pada setiap posting, penulis menyunting / menghapus menu, dan baris seperti / komentar / berbagi dengan thread komentarnya. Chat menjaga hidup Tampilan Percakapan Sosial. Semua, Panggilan, Teks dan Email membuat baru EmailEntry runtuh pesan ke satu baris - pengirim, subjek, membuka kata - (Dan demi angin yang menyebarkan rahmat) yaitu angin yang menyebarkan hujan. Korespondensi memimpin dapat berjalan ke ratusan pesan dan merender dengan tinggi penuh membuat tab tidak dapat digunakan. Tubuh tidak diambil sampai baris dibuka, karena setiap baca adalah putaran penyedia hidup perjalanan; kemudian merender melalui SanitizeedEmailRenderer yang sama menggunakan pesan, sehingga tidak ada kedua, kurang-diaudit jalan untuk HTML tidak dipercaya. Tetap di sepanjang jalan: Butir menu Sunting Kartu Pos bernama handleMenuClose, jadi sudah ada tidak pernah membuka penyunting; dan MediaStream menjatuhkan PostCard 's onPostDeleted / onPostUpdated seluruhnya, sehingga posting yang dihapus atau diedit tetap berada di layar lama formulir sampai reload penuh. Hardcode "Public" / "Private" / "Post" di komposer sekarang gunakan kunci kamus yang sudah ada.

  28. · SecurityService

    Persatuan waktu komunikasi API

    GET * * * * * * * * * * * * * * mengembalikan satu halaman terurut date- di catatan, panggilan, pesan suara, teks, e-mail dan chatting;? saluran = narrow itu. Tiga sumber bergabung. Panggilan, pesan suara, teks dan e-mail berasal dari LEAD _ COMUNIKASI asosiasi; catatan dan obrolan dibaca langsung dari lead 's media stream dan sesi sosial, karena keduanya sudah lead- keyed - mirror mereka akan menambahkan dual- menulis masalah konsistensi dan, dengan tidak back- fill, hilang setiap catatan dan pesan obrolan yang sudah ada. Page adalah keyset, bukan ofset. Ofset di seluruh sumber tergabung salah halaman masa lalu satu: berapa baris yang setiap sumber memberikan variasi, jadi "lewati 25" tidak mendarat di ketat lebih tua, sehingga setiap halaman biaya yang sama dan tidak ada dilewati atau diulang bahkan ketika beberapa entri berbagi timestamp. Otorisasi mencerminkan pemimpin-detail gerbang persis, dan harus - entri adalah Sebagian besar nilai kontak timbal sendiri ditambah isi yang ditukar, sehingga pemanggil tanpa VIEW _ LEAD _ CONTACT _ INFO _ OTHERS pada memimpin orang lain tidak harus mampu membaca dari titik akhir ini apa yang terlihat memimpin menutupi topeng. Denial diaudit, bukan hanya keberhasilan. Endpoint tubuh email memecahkan kotak surat dari asosiasi daripada dari penelepon: surat timbal adalah org- lebar, sehingga pesan sering tinggal di kotak surat rekan, dan UID hanya unik dalam folder - sebuah browser- didorong mengambil diam-diam akan kembali pesan yang tidak berhubungan dari kotak surat penonton sendiri. MediaAssetUrls mengekstrak avatar / gambar URL pembangun yang pribadi MediaStreamController, sehingga seorang penulis posting secara konduktor dalam tab Catatan dan Semua tab.

  29. · DaemonService

    Drive surat-to-lead pembersihan asosiasi

    Lima menit centang terhadap titik akhir layanan surel, cermin VoipGlobalSyncJob. Jadwal tinggal di sini karena EmailService berjalan beberapa pods dan kacang @ Scheduled ada akan memiliki setiap replika menyapu setiap Kotak surat sekaligus. @ Kecelakaan Eksekusi Konversi Ditambah tenggat HTTP terbatas: menyapu setiap kotak surat dapat melebihi kutu, dan tanpa penjaga Quartz akan menumpuk berjalan sampai setiap benang pekerja duduk di dalam EmailService. Waktu berlaku untuk sama Alasan - dengan penjaga mata uang di tempat, satu indefinitely- panggilan digantung akan Hentikan menyapu dari yang pernah berjalan lagi sampai pod dimulai kembali.

  30. · EmailService

    Korespondensi utama asosiasi, dan memperbaiki indexer push mati

    Tambahkan setengah surat dari tab Komunikasi utama, ditambah kemacetan yang dibutuhkan untuk eksis sama sekali. Platform tidak memiliki dorongan surat kerja: IMAP IDLE adalah hardcode ke Dovekot, ada tidak ada Graph change- notification atau Gmail watch, dan MessageIndexer dibuang setiap pemberitahuan yang pernah diterima karena penerbit IDLE mengabaikan UID uid nya < = 0 penjaga menolak - itu juga diselesaikan anggota dari pengirim bukan daripada pemilik kotak surat. Keduanya tetap di sini, tapi hook di jalan itu saja akan Masih belum melakukan apa-apa untuk sebagian besar penyewa, sehingga asosiasi didorong oleh menyapu di setiap kotak surat melalui MailReader, yang menyediakan-agnostik oleh konstruksi. Halaman penyisiran pada penanda waktu, bukan UID. UID hanya monotonic dalam Epoch UIDVIDITY IMAP; sebuah tanda tinggi ratcheting air risiko membungkam kotak surat re-examining bebas karena menghubungkan idempoten. Perusahaan AdderessResolver menerapkan aturan pemilik: jangan associate a message dimana alamat yang cocok dan setiap peserta lainnya semua company- dimiliki - jika tidak menambahkan alamat kerja rekan ke memimpin akan mengekspos surat internal mereka. Gagal CLOSED: sebuah inventaris tidak dapat dimuat jawaban "tidak diketahui" dan asosiasi dilewati, daripada menjawab "eksternal" dan diam-diam mematikan penjaga. * * * * * * * * * * * * * mengambil tubuh atas nama kotak surat yang Tahan. Titik akhir yang biasa menyelesaikan penyedia bagi penelepon, dan UID unik hanya dalam folder, jadi bertujuan pada anggota lain UID kembali pesan tidak terkait bukan sebuah error. Otorisasi tinggal di SecurityService, yang memecahkan kotak surat dari asosiasi daripada dari browser. Sambungan pada waktu kirim telah dicoba dan dihapus: SMTP kembali bukan sebuah Message- ID Bukan juga UID yang dikirim, jadi setiap surat keluar ke lead runtuh ke satu asosiasi tanpa locator untuk memperluas. Sapu memiliki itu.

Alam semestamu menunggu.

Mulai gratis dalam beberapa menit. Tambahkan produk kapanpun Anda siap — tidak ada migrasi, tidak ada login baru.

Gratis selamanya — tidak diperlukan kartu kredit