Commit graph

69 commits

Author SHA1 Message Date
1927504434
fix: warn when clipping, gen agent id once 2024-10-11 20:40:31 +02:00
9e977adcdd chore: cargo fmt 2024-10-10 12:52:25 +02:00
ce8dcc8b8c chore: cleanup 2024-10-10 12:52:25 +02:00
560a634499 chore: split TextChange and Cursor
so that sending/receiving parts are different rather than Option<?>

Co-authored-by: zaaarf <me@zaaarf.foo>
2024-10-10 12:52:25 +02:00
45864e19f6 feat: added Delta object to ffis 2024-10-10 12:52:25 +02:00
d5518a7b48 chore: updated send methods (+format) 2024-10-10 12:52:25 +02:00
907a0329d3 feat!: ackable changes for buffer cntrls, sync send 2024-10-10 12:52:25 +02:00
2fe217ad85
chore: autofmt 2024-10-03 04:06:54 +02:00
535de6c2fc
Merge branch 'dev' into feat/workspace-receiver 2024-10-03 03:52:42 +02:00
ca04601bea
chore: refactor worker
move stuff out of tokio select so that RA doesnt choke
2024-10-03 00:59:11 +02:00
400d87cdb1 chore: cargo fmt 2024-10-01 16:07:09 +02:00
4d418c814e
fix: use Weak refs to prevent leaky cycles 2024-09-26 02:29:13 +02:00
04e021f964
feat: don't use async-trait for api::Controller
make it still available via feature `async-trait` if it is necessary to
use auto traits downstream, however documentation should now be more
readable
2024-09-05 23:27:57 +02:00
f0a6a6b730
docs: remade docstricts, refactored a bit
refactor shouldn't impact external apis and mostly just moves stuff
around to make sense documentation-wise

Co-authored-by: zaaarf <me@zaaarf.foo>
2024-09-04 20:03:34 +02:00
cf1e910dcb
feat: reworked cursor worker/controller
now its more similar to buffer controller/worker and it behaves more
like an actor/service
2024-09-01 03:08:43 +02:00
cschen
0b1a542ed5 fix: we clip the change span in from 0 to the buffer length, this avoids that
badly formatted changes will crash the worker.
Previously I was able to crash the worker by sending oob changes.
chore: improved text change docs a lil bit
2024-09-02 11:31:36 +02:00
cschen
d0d57f6fd5 fix: whops, (I don't know why this bug is still here) 2024-09-01 15:49:54 +02:00
cschen
e7272753e6 Merge branch 'dev' into pyo3_bump 2024-08-21 15:03:10 +02:00
0154e5a032
fix: try_recv() channel error : delta may be None
basically if there was no change to report, the oneshot would not get
updated which is bad. so we put back the version we got and send a None
(the channel now has nullable TextChange). so basically its always a
try_recv, but its fine since recv is implemented with try_recv + poll
anyway
2024-08-17 00:17:01 +02:00
cschen
ef2285d0f3 Merge branch 'dev' into pyo3_bump 2024-08-16 16:50:55 +02:00
cschen
610576f8b7 feat: Bumping to pyo3 0.22, removing pyo3-asyncio, moving code around to allow for
smoother pyo3 aggregation.
2024-08-16 12:58:43 +02:00
a8ce56bcc0
feat: callback gets the controller itself as arg 2024-08-15 20:41:53 +02:00
d3ce714070
feat: rather than +Debug, make a newtype 2024-08-15 20:15:23 +02:00
7900ca08a7
feat: added back .callback() to controller api 2024-08-15 19:32:01 +02:00
3e37d4ffe3
fix: don't send anything if change is a noop 2024-08-14 23:53:51 +02:00
e43105b919
fix: textchange can be both delete and insert 2024-08-14 23:46:16 +02:00
cschen
c58d1db58b fix: proper translation from dt::Operation to Textchange
Co-authored-by: alemi <me@alemi.dev>
2024-08-14 17:16:05 +02:00
97b7504098
feat: hash is a public ext 2024-08-14 17:12:36 +02:00
cschen
d22446ee10 fix: this time is the good one 2024-08-14 16:31:28 +02:00
cschen
6c30699acc Revert "(to alemi: always has been) fix: try now lmao."
This reverts commit 1b5b9e74bf.
2024-08-14 16:15:42 +02:00
cschen
1b5b9e74bf (to alemi: always has been) fix: try now lmao. 2024-08-14 16:07:19 +02:00
413247f9b4
fix: update local version on send
also keep a branch on which we merge editor's changes, which kind of
solves our race condition thing

Co-authored-by: cschen <cschen@codemp.dev>
2024-08-14 15:55:18 +02:00
cschen
ef9da1740a chore: explaining an extra thing 2024-08-14 13:34:01 +02:00
cschen
4d65b2db7d fix: error in the worker that merged more operations than needed. 2024-08-14 13:32:18 +02:00
a9d713fd75
feat: async try_recv, delta_request
Co-authored-by: alemi <me@alemi.dev>
2024-08-14 00:24:32 +02:00
2a016a6619
fix: add .content() back
except now its async and can fail and basically requests the worker to
generate the content for us on demand

Co-authored-by: zaaarf <me@zaaarf.foo>
Co-authored-by: cschen <cschen@codemp.dev>
2024-08-13 18:03:20 +02:00
cschen
9acb7b6007 wip: Some attempts at getting DT to work with buffer controller and buffer worker!
This attempt doesn't use a ref to the crdt! But uses an extra channel!
2024-08-13 00:36:09 +02:00
59d8a4640d
fix: proper lifetime for cursor, renamed methods
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-08-08 02:29:45 +02:00
6e9727128d
feat: controllers now implement stop
Co-authored-by: zaaarf <me@zaaarf.foo>
2024-08-08 00:28:15 +02:00
39533ae086
feat: wrappers for Cursor and Op
so plugins dont need to interact directly with our underlying proto
struct, nor our underlying crdt ops. also for wrapping directly in glue
2024-08-05 19:15:30 +02:00
a38c28f401 feat: moved out proto + feature flag cleanup
Co-authored-by: alemi <me@alemi.dev>
2024-03-09 19:59:36 +01:00
c9a36ea8ec fix: cleaned up code, fixed multi-op change issues 2024-02-09 00:35:08 +01:00
1cf17dc151 chore: proto cleanup and simplification
reuse as much as possible, keep rpc messages close with their rpc,
helper struct for uuid with into() and from(). also replaced the simple
things, such as imports and struct fields
2024-02-07 01:09:28 +01:00
741a074464 feat: implemented leave workspace and list buffer users, various fixes 2024-01-25 17:05:06 +01:00
94a7786812 feat: workspaces and new library structure
Co-authored-by: alemi <me@alemi.dev>
Co-authored-by: frelodev <frelodev@gmail.com>
2024-01-25 02:13:45 +01:00
3197c083bf fix: discard empty textchanges, drain range 2023-11-30 03:04:26 +01:00
3881bb38ea chore: improved seen mechanism
instead of manually handling the mutex leave it to tokio and use a fancy
generic struct with update() and check()
2023-11-30 03:03:09 +01:00
1265f716d6 chore: packed clonable handles in sub struct 2023-11-27 14:55:46 +01:00
488c22c0f1 fix: missing await, debug on ignorableErr, content 2023-11-24 10:43:37 +01:00
8df0b8ec41 feat: poll doesn't ever lock the RwLock
to make try_recv deadlocks way more rare
2023-11-23 20:45:43 +01:00