Commit Graph

3699 Commits

Author SHA1 Message Date
fang
881f9ebfaa
drum: redraw prompt only if it changed 2021-02-19 12:24:31 +01:00
fang
0d8288e666
term: better %url handling
%url blits are meant for "activating" urls. Of course, opening a new
browser tab from within a C program is difficult, so we don't do it.

This is still better than doing the faux activation by just printing
the url. term.c no longer really knows where/how to draw it, and it's
meant as interactive behavior rather than visual output, anyway.
2021-02-18 01:44:33 +01:00
fang
a4e20facb7
term: decouple line clearing from line printing
This simplifies the behavior of individual blits, making their
implementation simpler and giving arvo more control.

This lets us write on top of existing content, instead of completely
replacing the affected row. Additionally, lets us draw starting at the
cursor position, instead of the leftmost column.

To retain the previous behavior, preface with [%hop 0] to move the
cursor to the start of the line, [%wyp ~] to clear the existing content,
and finally your %lin to render it.
2021-02-18 01:44:26 +01:00
fang
30ac51e281
term: no longer redraw the prompt as part of %clr
Instead, rely on the console application to send whatever is needed
directly following a %clr blit.
2021-02-17 17:04:45 +01:00
fang
00dd0656e8
zuse: move styx engine into zuse
styx and stub are both defined in lull. Having functions for dealing
with them in zuse rather than userspace is fitting.

While not a _common_ format per se, it still seems best at home in
+format, instead of on its own.
2021-02-16 17:33:58 +01:00
fang
2e7afdd543
lull: remove old/unused dill tasks
Some of the remainder are still _presently_ unused, but point at
functionality we want to support again in the near future. The ones
removed here are either redundant or have no clear purpose.
2021-02-16 17:33:57 +01:00
fang
53cd568af9
dill: printf when rendering to non-default session
As per the note a couple lines up, +fore depends on drum semantics being
active. We can only guarantee those being present for the default
session, not for any others. So, we print a warning when appropriate.
2021-02-16 17:33:56 +01:00
fang
9f0166914f
dill: tidier gall %onto print
Before recent dill changes, this wouldn't always be visible, since it
would get drawn in place of (and subsequently get overwritten by) the
prompt. Now that it displays consistently again, it should look a bit
better than just a noun dump.

This is somewhat redundant with gall's own "reloading agent" printfs,
but you know what they say: printfs don't real!
2021-02-16 17:33:48 +01:00
fang
c75e0e0394
dill: store sessions by @tas, not duct
This prepares us for actually making use of multiple session in a sane
way.

Notable implicit change is that we no longer crash on an "unrecognized
duct", instead always handling it as destined for the default session.
2021-02-12 00:29:29 +01:00
fang
0b1fde0595
dill: remove now-redundant blits
Previously, these affected dill state. Now, they're equivalent to %lin
and %klr blits.
2021-02-10 20:05:26 +01:00
fang
be8713f151
dill: stop tracking prompt & cursor position
As follow-up to 3fdef1468, we now no longer store the prompt or cursor
in state. These were still used for view initialization, but it's more
appropriate to %hey the underlying console application in those cases.
The scry endpoints we remove, expecting clients that depended on them
to send a %hail instead.
2021-02-10 17:03:03 +01:00
fang
3fdef14688
dill: stop redrawing the prompt & cursor
No longer inserts newlines or redraws the prompt post-print, pushing
this responsibility down to drum where it belongs.

Additionally, separates the flow for dill's own output, from that of the
console application. This lets us keep the desired behavior for now, and
will ease reworking in the future.

Last-printed-line and cursor position are still kept around in dill
state, in order to respond to the relevant scry endpoints. These should
either be refactored to scry into the underlying console app, or be
removed entirely in favor of %hey.
2021-02-10 14:23:17 +01:00
fang
7ab6d7dc9c
term: add minimal mouse support
Only detects mouse clicks. Though, "9" mode seems broken, or unsupported
or something? Probably need to upgrade to "1000" mode or higher, but
that also reports scrolling events and such, which don't want to steal
from the context we're running in just yet.
2021-02-10 14:23:03 +01:00
fang
5d8b44ccbc
dill: support 2d %hop
Instead of confining you to just the bottom row. 0,0 is bottom left.

Doesn't behave exactly as expected for non-zero column coordinates yet,
but all in due time.
2021-01-28 01:20:45 +01:00
fang
3ad0c4e1d0
dill: remove outdated compatibility workaround
Current era runs exclusively on v1.0 and up.
2021-01-27 16:47:43 +01:00
fang
776de8b3d9
lull: make dill-blit explicit superset of blit
Likewise for belt. This necessitates renaming the %mor blit for newlines
to %nel, making this require a new runtime version. That's fine, more
breaking changes are to follow.
2021-01-26 18:37:33 +01:00
Liam Fitzgerald
f88318b1b7
glob: update to 0v7.9mc9i.jbk7p.smfcl.3aose.b6dat 2021-01-24 11:28:33 +10:00
janeway
a9b32192fc glob: update to 0v7.3vkbq.euver.m66ss.rs6kt.06tp8 2021-01-22 17:15:13 -05:00
janeway
d16c228870 glob: update to 0v7.ttn7o.50403.rf6oh.63hnc.hgpc9 2021-01-21 19:15:58 -05:00
matildepark
84d23a9308
Merge pull request #4239 from urbit/m/graph-join-backoff
graph: make the join thread back off
2021-01-21 13:27:59 -05:00
Liam Fitzgerald
3bf03ffc9b
graph-join: crash on backoff and fix scry mold 2021-01-21 10:43:25 +10:00
Ted Blackman
6234b56ac1 ames: cache message +jam in +on-memo 2021-01-20 15:29:45 -05:00
Liam Fitzgerald
69a5675a86
graph-store: log %add-graph
When a graph is joined, the subscriber receives an %add-graph update
that corresponds to the current state of the graph. This was not logged,
so if the graph did not recieve any updates before the subscription was
kicked, the whole graph would be have to be sent again. This would be
largely asymptomatic, however hark-store assumes that %add-graph will
only be emitted when a new graph is joined or created. As such, we log
this initial update, so that the push-hook can correctly ascertain the
backlog it needs to send and so %add-graph is only emitted once per
graph. This also opens the door for time-varying scries into
graph-store.

Fixes #4290
2021-01-20 10:52:19 +10:00
Liam Fitzgerald
e3ae98123b
push-hook: remove old resource-for-update 2021-01-15 10:33:37 +10:00
Liam Fitzgerald
e83efcb932
pull-hook: ensure facts are not malicious
Ensure that the resource from the wire, the resource for the update
match up. Also ensure that the source ship and the ship that is being
pulled from for the resource match up. Without this, a host of a graph
could send updates for graphs that they do not hosts, and these would be
unconditionally forwarded, allowing malicious hosts to overwrite graphs
that they do not host.
2021-01-15 10:33:37 +10:00
Liam Fitzgerald
478e45d373
push-hook: use mark conversion to get resource 2021-01-15 10:33:34 +10:00
Liam Fitzgerald
344e40fda7
glob: update to 0v1.4u9gp.rs1fi.ki7ok.ib4cp.mgdvs 2021-01-14 12:10:44 +10:00
Liam Fitzgerald
585b6fefa1
hark-graph-hook: rewatch all DMs on upgrade 2021-01-14 10:47:11 +10:00
Liam Fitzgerald
3728a41300
Merge pull request #4266 from urbit/la/aggro-channel-ack
channel.js: ack every 30 events *even if this.outstandingJSON is empty*
2021-01-14 10:13:16 +10:00
Liam Fitzgerald
b69d11bd86
hark-store: rework caching to correctly calculate unread totals
Hark, when calculating unread totals was ignoring notifications that
were under the same stats-index, but a different index. Reworks the
cache to calculate unread totals correctly.
2021-01-13 12:40:53 +10:00
janeway
2d50075bfb glob: update to 0v5.sekq0.8skge.ekt62.i73ig.g5sep 2021-01-11 18:15:12 -05:00
Logan Allen
3611fcab16 channel-js: ensure lastEventId is an integer, and correctly set lastAckedEvent 2021-01-11 23:07:53 +00:00
Matilde Park
c6069bda3f Merge branch 'release/next-js' into release/hot/2020-1-11 2021-01-11 17:51:42 -05:00
matildepark
9e3722d581
Merge pull request #4262 from urbit/lf/hark-autorebuild
hark-store: Fix channel marking as read crash
2021-01-11 17:48:30 -05:00
matildepark
c44ac6210b
Merge pull request #4261 from urbit/lf/hark-remove-fixes
hark-store: fix dangling unreads
2021-01-11 17:48:09 -05:00
Liam Fitzgerald
99bc912fc5
hark-store: add rebuild printf 2021-01-12 08:31:10 +10:00
Liam Fitzgerald
9c7ac3773a
hark, graph-store: address L review 2021-01-12 08:15:14 +10:00
Liam Fitzgerald
a82c0bb2fe
hark-store: address L style review 2021-01-12 08:05:40 +10:00
fang
0613b5b297
tally: also list the groups we're in 2021-01-11 22:56:02 +01:00
fang
578f10180a
tally: add generator for measuring group activity
Scrapes groups and graphs for member counts and recent activity respectively,
and uses that to print out a "tally" of activity for all local groups and their
channels. Since this output is intended to be shared with other parties,
anonymizes resource identifiers by default.
2021-01-11 22:55:48 +01:00
Logan Allen
5dd29f1fe7 channel.js: ack every 30 events *even if this.outstandingJSON is empty* 2021-01-11 15:29:15 -06:00
matildepark
0fd5ba6054
Merge pull request #4244 from urbit/la/fix-4217
hark-group-hook: add type checking to vase sent to %hark-store, fix #4217
2021-01-11 15:01:47 -05:00
Liam Fitzgerald
dfc3ef0c0e
hark-graph-hook: dismiss unreads for a node when it is deleted 2021-01-11 17:44:25 +10:00
Liam Fitzgerald
1ed0477663
graph-store: emit affected descended nodes in %remove-nodes
When %remove-nodes is sent as an update, it may refer to a parent node,
in which case the deletion of all the parent's children is implied. If
we hold onto references to nodes outside of graph-store, we are unable
to tell which of our references were affected, other than iterating over
every reference to check if one of the deleted indices is a prefix of
the reference. This is obviously undesirable, so we emit all of the
nodes we deleted, including the nodes deleted implicitly.
2021-01-11 17:44:25 +10:00
Liam Fitzgerald
18301fa7d7
hark-store: cleanup dangling unreads
Creates a noun poke %fix-dangling, which iterates through the unreads
and dismiss those which refer to nodes which no longer exist.
Additionally, adds a migration which runs this poke.
2021-01-11 17:44:25 +10:00
Liam Fitzgerald
7e0af9cfca
graph-store: add node existence query 2021-01-11 17:44:25 +10:00
Liam Fitzgerald
d01f1f62e5
hark-graph-hook: fix muting on %remove-graph
*_watching was bunting to watching (i.e. a no-op), causing watching to
be wiped everytimne a graph was removed
2021-01-11 17:43:58 +10:00
Liam Fitzgerald
1529113d6f
hark-store: fix mark channel as read issue
Addresses root cause of #4201
2021-01-11 17:43:02 +10:00
Liam Fitzgerald
8fe8cfd29e
hark-store: rebuild cache on inconsistency, instead of crashing
Addresses #4201, although the root cause of the cache inconsistency is
still at large.
2021-01-11 17:42:54 +10:00
Logan Allen
83036c0cc3 hark-group-hook: add type checking to vase sent to %hark-store, fix #4217 2021-01-07 14:03:03 -06:00