Commit Graph

152 Commits

Author SHA1 Message Date
Fang
ef4b56f8c7
dill: send styled text to runtime as-is
Depending on the additions to term.c made in 467d8d239 allows dill to
forget about ansi escape codes, and pass styled text nouns straight on
to vere.

Also removes a bit of logic from drum, which assumed things about the
rendering of escape codes to adjust cursor positioning. Now it simply
states the semantic cursor position, letting the runtime deal with the
potential influence of styling.
2020-09-09 19:09:29 +02:00
Logan Allen
a4e21da3f0 hood: starts %graph-pull-hook and %graph-push-hook 2020-08-19 12:48:08 -07:00
Logan Allen
7c3d608185 hood: update to %9 and start %graph-store 2020-07-28 12:24:55 -07:00
Logan Allen
043714752e hood: no longer start graph hooks for now 2020-07-28 12:21:30 -07:00
Logan Allen
325667f9ec Merge branch 'master' into la/graph-store 2020-07-27 12:10:22 -07:00
Liam Fitzgerald
24b25a3422 Merge remote-tracking branch 'origin/release/next-userspace' into lf/groups-refactor 2020-07-22 10:42:52 +00:00
Philip Monk
350756b47a
glob: autostart and make ota-able 2020-07-17 16:58:28 -07:00
Logan Allen
80d67c2f16 graph-view: delete for now 2020-07-08 15:39:20 -04:00
Logan Allen
39933ca848 graph: hooks compile and higher-order mark implementation first-pass 2020-07-06 19:31:57 -04:00
Logan Allen
a7cbecc0e2 Merge branch 'lf/groups-refactor' into la/graph-store 2020-07-06 15:02:20 -04:00
Liam Fitzgerald
47352a06ba groups: finalize state adapters 2020-06-24 10:28:57 +10:00
Logan Allen
59a4c52232 graph-view: first sketch 2020-06-23 14:01:03 -04:00
Liam Fitzgerald
8cf81002ec Merge branch 'ford-fusion' into lf/groups-refactor 2020-06-23 12:13:03 +10:00
Philip Monk
6ff9f75bb7
Merge remote-tracking branch 'origin/master' into ford-fusion 2020-06-19 14:52:18 -07:00
Ted Blackman
f2ee0a1380 drum: fix +on-load resubscribes 2020-06-18 00:58:47 -04:00
Ted Blackman
3914c0c0dd ota: works on my machine 2020-06-17 23:31:37 -04:00
Logan Allen
08e1abb139 hood + apps: fix OTA process for feat/SPA 2020-06-17 15:51:13 -04:00
Logan Allen
eaf523e3c2 hood: add version %6 for %file-server upgrade 2020-06-17 14:27:30 -04:00
Ted Blackman
d395c2711d hood: WIP compiles but +on-load crashes 2020-06-17 03:54:27 -04:00
Ted Blackman
ac77d0a3ec hood: uncompiled first try at state as tuple 2020-06-17 02:36:09 -04:00
Ted Blackman
01eee03340 kiln: WIP state as tuple 2020-06-16 03:29:17 -04:00
Liam Fitzgerald
ef20a4d08a Merge branch 'feat/spa' into lf/groups-refactor 2020-06-10 14:41:17 +10:00
Philip Monk
11fa48f57b
kiln: ota logic compiles 2020-06-09 16:21:30 -07:00
Liam Fitzgerald
900da34fa9 drum: add %file-server to boot priority
File server needs to be started with priority in order to ensure the
-view apps can poke it, regardless of set ordering.
2020-06-09 13:02:24 +10:00
Liam Fitzgerald
d66dbff61e groups: migrate to push-pull hooks and resources 2020-06-08 17:53:16 +10:00
Matilde Park
9440392777 drum: remove 'invite-view' 2020-06-04 17:48:48 -04:00
Philip Monk
8b78f04dd3
Merge remote-tracking branch 'origin/master' into ford-fusion 2020-06-02 21:50:20 -07:00
Logan Allen
9b5c93d2f1 file-server: renamed to file-server 2020-06-01 14:02:12 -04:00
Logan Allen
f13b174f16 landscape: renamed to http-server-store, finished subscribable configuration 2020-06-01 14:01:38 -04:00
Logan Allen
d727b95770 hood: start landscape app automatically and upon OTA 2020-06-01 13:57:04 -04:00
Philip Monk
096149713a
drum: relink to chat-cli
The subscription changes in drum broke existing subscriptions.  This
worked alright (though loud) for dojo, but it left chat-cli "frozen"
unless you manually unlinked/relinked.  This does that automatically.

It also includes a refactoring of +on-load in drum, to avoid vain
repetition.
2020-05-22 00:17:56 -07:00
lukechampine
9f45acc17b drum: switch to per-ship /sole/drum duct 2020-05-06 18:54:54 -04:00
Liam Fitzgerald
54969afdd2 drum: fix broken app start
If we find an agent that has already been launched then we continue
iterating through the list of apps instead of stopping

Fixes: #2858
2020-05-06 09:45:17 +10:00
Matilde Park
3c06c15505 Merge branch 'lf/hood-boot-order' (#2805)
* origin/lf/hood-boot-order:
  drum: partially restore reverted changes
  Revert "drum: address review comments"
  chat-cli: remove unnecessary %gu scry
  link-proxy-hook: remove unnecessary %gu scry
  drum: address review comments
  drum: sort cli connections
  drum: account for app dependencies on boot

Signed-off-by: Matilde Park <matilde@tlon.io>
2020-05-04 20:41:10 -04:00
Liam Fitzgerald
5dc241dbe5 drum: partially restore reverted changes 2020-04-29 08:40:38 +10:00
Liam Fitzgerald
e099f3a8c6 Revert "drum: address review comments"
This reverts commit c925665cb8.
2020-04-29 08:25:21 +10:00
Liam Fitzgerald
c925665cb8 drum: address review comments 2020-04-28 12:20:59 +10:00
Logan Allen
003c4676b1 hood: added version %4 of hood state 2020-04-27 18:28:31 -04:00
Logan Allen
28c707b300 hood: updated drum to version %3 2020-04-27 15:12:51 -04:00
Liam Fitzgerald
37cd90a42b drum: sort cli connections
Sorts cli connections so that the user always boots into %dojo
regardless of their @p

Fixes: #2248
2020-04-25 07:21:41 +10:00
Liam Fitzgerald
2e3947e3c0 drum: account for app dependencies on boot
Changes drum's boot order to be deterministic regardless of the ship
you're on.

Fixes #2681
2020-04-25 07:20:42 +10:00
Logan Allen
daf32fd0f9 s3-store: initial commit 2020-04-24 12:19:01 -04:00
Ted Blackman
9b0cb85a02 gall: clean up API, remove empty caches from state. 2020-04-21 18:50:47 -04:00
Philip Monk
cf9ef764f1
gall: remove pending messages from breached ship
When a ship breaches, we remove all messages that have yet to be
delivered to an app (eg if it's not yet started).  We also add
|gall-sear to do this manually, but this shouldn't be needed in normal
operation.

Finally, to unblock ~zod and ~bus on mainnet, we sear one particular
ship automatically on loading hood.  It cannot be done manually because
no userpace changes can be made until it's unblocked.
2020-03-18 21:05:06 -07:00
Logan Allen
2ce60e9f0d drum: start metadata-hook on OTA 2020-03-05 15:50:18 -08:00
Logan
1272a61443
Merge pull request #2324 from urbit/m/chat-ota
OS1 OTA: chat groups & permissions
2020-02-25 13:17:56 -08:00
Logan
f64d720795
Merge pull request #2326 from urbit/os1-metahook
metadata-hook: a hook for sending metadata over the network
2020-02-21 20:05:07 -08:00
Fang
5a029967b7
drum: start metadata-store on-upgrade 2020-02-21 00:50:15 +01:00
Logan Allen
99663fec50 metadata-hook: handle metadata facts 2020-02-19 17:56:36 -08:00
Isaac Visintainer
7fced14cfc automatically start contacts and links apps upon recieving ota 2020-02-18 11:22:36 -08:00
Logan Allen
ca7cc1fc10 metadata-store: first compiling version of metadata-store 2020-02-13 13:13:10 -08:00
Fang
83ed16fcb7
link: remove /app/link-server-hook
Use link-view instead.
2020-02-05 18:43:27 +01:00
A Arroyo
757b4ffcbe merged links fe into os-rc 2020-01-24 16:21:25 -08:00
Logan Allen
56a1c3400a contact-hook: added first complete and compiling version 2020-01-23 13:13:52 -08:00
Logan Allen
47c1745074 contacts: added store, view, marks, ui 2020-01-23 13:12:26 -08:00
Matilde Park
89aa143403 drum: add link-store and related hooks to boot 2020-01-22 18:20:06 -05:00
Fang
ae8a57ca25
gall: (list path) in %fact and %kick
Instead of providing a (unit path), allows for (list path), which better
supports the "update to path and subpath cases".

For example, if /things wants updates about everything, and
/things/specific wants updates about the specific thing, they'll both
need to receive a %fact when the specific thing changes.
Previously, these would have been two separate moves. Now, gall handles
the multi-targeting for you.
2019-12-23 13:37:32 +01:00
Philip Monk
b14606660a
goad: recompile apps after changes to /sys
OTAs commonly end up in an inconsistent state if apps depend on changes
to /sys.  For example, the %sift changes break on OTA because %spider
needs to be reloaded so that it's aware of the new thread type.  This
adds a %goad app, which reloads all apps after every change to /sys.

Getting this to start OTA is nontrivial, but this pattern should work
for apps in the future.  The changes to clock shouldn't generally be
necessary; they are only necessary here because we can't rely on hood to
start goad, since hood fails to compile if it's run before zuse is
reloaded.  Once goad is active, this will cease to be a problem.
2019-12-13 17:14:51 -08:00
Philip Monk
5ff9e04204
drum: revert tang ordering change
Turns out this wasn't a regression, it was intended behavior.  I
continue to believe it's the wrong behavior, but that will require a
longer discussion.
2019-12-09 11:47:48 -08:00
Philip Monk
ddbfb53b28
drum: print tangs in order 2019-12-05 11:58:55 -08:00
Philip Monk
7d2f789696
drum: boot to dojo and start acme 2019-12-04 18:32:28 -08:00
Philip Monk
74b0f66850
ames: continue processing memos after %done 2019-11-27 15:13:17 -08:00
Philip Monk
7ddd1225e0
hood: link chat-cli on startup 2019-11-27 01:21:16 -08:00
Philip Monk
2e9abe18ad
drum: restore startup apps 2019-11-26 23:08:42 -08:00
Isaac Visintainer
51d61e4d49 static gall: convert soto 2019-11-22 12:57:58 -08:00
Philip Monk
9d47222139
Merge remote-tracking branch 'origin/mall-testnet' into philip/mall-real 2019-11-21 19:07:28 -08:00
Philip Monk
9f89c8b8bc
drum: fully unlink 2019-11-20 14:26:13 -08:00
Philip Monk
b8903e9a6f
gall: fix ap-kill-down
This broke when %kick was handled by resubscribing on your own ship
because it processed the %kick before the %leave.  For example, `@t`404
at the dojo would put the dojo in an unworkable state.

You want the %leave to be processed first because you can't do a
"resubscribe" in response to that.
2019-11-20 13:24:19 -08:00
Philip Monk
1d1119c1f3
drum: unsubscribe on poke-ack failure 2019-11-20 12:12:33 -08:00
Ted Blackman
39144ee977 drum: fix nest-fail 2019-11-20 01:45:44 -05:00
Ted Blackman
7eeea1f25b drum: add %spider to default apps 2019-11-20 01:36:36 -05:00
Philip Monk
a5412f01de
Merge branch 'alef-testnet-merge' into philip/mall-real 2019-11-19 13:03:07 -08:00
Philip Monk
6a406e6b29
gall: mall -> gall 2019-11-18 20:36:21 -08:00
Philip Monk
4cb821de11
ph: get boot-az working 2019-11-14 13:31:55 -08:00
Philip Monk
32ea09caf2
mall: remove old hood libraries 2019-11-14 10:39:50 -08:00
Jared Tobin
144445beb1
Merge branch 'invite-app' (#1901)
* origin/invite-app:
  chat-hook: upgrade from old state and perform invitatory creation and subscription
  invite-hook: crash upon invalid invite received
  changed invite peek interface to /:path/:uid
  invite: add comments and clean up
  chat-js: added invite functionality
  chat-hook: added invite functionality
  app: added invite app and mark converters to JSON

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-11-06 15:47:05 +08:00
Jared Tobin
3fac197ec1
Merge branch 'eth-watcher-2' (#1895)
* eth-watcher-2: (21 commits)
  eth: move existing chain requests into ethio
  eth-watcher: refactor refresh rate to top of file
  hook: add pool-group-hook for making invite groups
  ethio: add +read-contract for chain state reading
  zuse: add delegated-sending address
  eth: move eth-watcher's request-rpc into ethio lib
  gaze: make compile for latest eth-watcher
  drum: start eth-watcher on boot
  azimuth-tracker: remove deprecated generator
  eth: implement azimuth-tracker using eth-watcher
  eth-watcher: ensure logs always sent oldest-first
  eth-watcher: allow peers to unconfigured watchdogs
  eth-watcher: saner %watch behavior
  eth-watcher: implement %clear poke
  eth-watcher: store logs in state to implement peer
  eth-watcher: move types into /sur file
  eth-watcher: properly tag out-peer-data
  eth-watcher: single update timer loop
  eth-watcher: implement /block peek
  eth: turn azimuth-tracker into eth-watcher
  ...

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-11-05 17:11:19 +08:00
Logan Allen
656f264f96 app: added invite app and mark converters to JSON 2019-11-01 14:04:50 -07:00
Philip Monk
8e66d84c83
easy-print: don't crash if type-check crashes
also don't render all the types if there's more than 10.
2019-10-31 15:53:43 -07:00
Philip Monk
9487481128
dojo, drum: change %tab sole-effect to use tanks
It should be general-purpose for tab-completing things in other apps,
types are inappropriate.
2019-10-31 15:14:41 -07:00
Philip Monk
4482997a16
dojo, drum: give tab completion as true output
This stops slogging the tab completion and intead adds a +sole-effect
for tab completion output.  This is morally correct, and it lets dojo
clients show tab completions how they want.  For example, web dojo could
implement this as a drop-down box.

Another advantage is that this puts the rendering logic in drum, which
knows the width of the terminal.  Thus, we can make sure each match
takes no more than one line by truncating with ellipses.  If there's
only one match and it's already fully typed, then we display the whole
type.
2019-10-31 14:36:14 -07:00
Philip Monk
76b917f426
dojo: add tab completion
This is initial support for type-aware tab completion.  When you hit tab, it tries to complete the word you're in the middle of using a face or arm in the subject at that point in the code.  It also shows all possible matches and their associated types.  It's nearly instantaneous.  Notes:

- It advances to the longest common prefix, so if you hit tab on `ab` and the only possible results are `abcde` and `abcdz`, then it'll write `abcd` and print both out (with their types).

- If there are fewer than ten matches, it prints the type along with the face.  Printing types is too slow to use all the time, but with 10 it's essentially instantaneous.

- The match closest in the subject to you (i.e. smallest axis number) is displayed lowest (closest to your focus).

Examples below, where `<TAB>` represents me hitting tab while my cursor is at that position (the line with the `<TAB>` is not preserved in the actual output).

```
~zod:dojo> eth<TAB>
-----
ethereum        #t/<11.qcl {<3.ltb 27.ipf 7.ecf 36.uek 92.bjk 247.ows 51.mvt 126.xjf 41.mac 1.ane $141> <21.yeb 27.ipf 7.ecf 36.uek 92.bjk 247.ows 51.mvt 126.xjf 41.mac 1.ane $141>}>
ethereum-types  #t/<3.ltb 27.ipf 7.ecf 36.uek 92.bjk 247.ows 51.mvt 126.xjf 41.mac 1.ane $141>
~zod:dojo> ethereum
~zod:dojo> |=  zong=@ud  z<TAB>
-----
zing  #t/<1.dqs {* <126.xjf 41.mac 1.ane $141>}>
zap   #t/<1.iot {tub/{p/{p/@ud q/@ud} q/""} <1.rff {daf/@t <247.ows 51.mvt 126.xjf 41.mac 1.ane $141>}>}>
zuse  #t/$309
zong  #t/@ud
~zod:dojo> |=  zong=@ud  zo<TAB>
-----
zong  #t/@ud
~zod:dojo> |=  zong=@ud  zong
~zod:dojo> <TAB>
hoon-version
trel
quip
pole
unit
qual
lone
... about 600 more lines ...
unity
html
zuse
eny
now
our
~zod:dojo>
```

Functionally, this is in a state where I'd be comfortable shipping it.  It doesn't interfere with anything if you don't press tab, and it's perfectly OTA-able.  I do think its output is a little verbose, but that can be tuned over time as people try it and determine what feels good in practice.

Additional notes:

- There are plenty of similar systems for other languages, but my most direct inspiration is Idris's editor tools.  This is implemented for the dojo, but I actually want it in my editor, which is why the meat is all defind in a library.  I've only tested on dojo one-liners, so I don't know the performance on large blocks of code.

- The default type printer isn't great for this use case.  In particular,
	- Cores should not print anything about their context
  - The `#t/` should go away
  - If it looks like a gate, we should print its return value
  - Maybe special handling for molds, but if the above is done, then for example `bone` is  `* -> @ud`.

- The worst part about our wing ordering is that it really screws up tab completion.  You want to do `point.owner-address` instead of `owner-address.point` because that lets you type `point.ow<TAB>`.  I weakly prefer reading it how we do it now, but it's really not great.  You could do an (dojo-specific?) alternate syntax of `point;owner-address`; this is a simple transformation.

- Regardless of the above, this should handle the case where we're in the middle of defining a wing; it doesn't right now.

- When a variable is shadowed, we show both of them.  We should probably show the shadowed one with a `^`.

- We probably shouldn't print out hundreds of results.  Maybe just the closest 50 with ellipses.

- This gets you any face in your subject, regardless of whether its type is reasonable.  We could limit that some by copying the `gol` logic in mint, so that if the pseudo-backward-inference engine happens to know what type it should be, you can filter the tab results according to if they nest in that type.  This would be "strongly type-aware".
2019-10-30 23:19:25 -07:00
Fang
522f598770
drum: start eth-watcher on boot
Alongside the azimuth-tracker that depends on it.
2019-10-30 20:18:56 +01:00
Ted Blackman
625f855f24 master without pills, hopefully 2019-10-14 16:02:27 -04:00
Logan Allen
b12e305c9c apps: added permission hook and chat-view %join action 2019-10-11 14:09:30 -07:00
Fang
9d63a3e9c7
drum: Ensure dojo prompt on-boot
The previous method for doing this relied on "dojo" being first when
sorting alphabetically, which is not the case anymore.
2019-10-09 18:02:03 +02:00
Fang
816535c311
drum: Boot with %chat-cli, without %hall & %talk
Also refactors the surrounding code in +deft-apes.
2019-10-08 23:19:05 +02:00
Logan Allen
693b6f2b81 hood: added chat-store, hook, and view to startup 2019-10-02 18:30:50 -07:00
Logan Allen
0f5eea480d chat: added new JS files, deleted old chat.hoon 2019-10-02 18:30:41 -07:00
Logan Allen
ee92862785 hood: start up groups and permissions 2019-09-30 16:43:09 -07:00
Logan Allen
707a667d47 hood: remove hall dependency. 2019-09-26 15:03:13 -07:00
Jared Tobin
0bd06fe210
Merge branch 'jt-gall-refactor' (#1668)
* jt-gall-refactor: (76 commits)
  gall: fix issue id in comment
  pills: update solid
  gall: handle foreign coup success
  gall: only print peek bad result if bad
  gall: add basic test harness
  pills: update solid, brass, ivory
  gall: fix obvious nest-failing tisdot
  gall: change '-state' to '-core' for +mo and +ap
  zuse, gall: deprecate 'club'
  zuse, gall, eyre: deprecate 'cush'
  zuse, gall, eyre, dojo: deprecate 'cuft'
  gall: remove slam-related printfs
  gall: remove deprecated 'mak' from 'agents'
  gall: use less vertical spacing throughout
  gall: add comment re: unpopulated wex
  gall: use less vertical separation when wuthepping
  gall: fix whitespace
  gall: don't define 'move' as a pair
  gall: don't give faces to tags
  gall: gut some unused stuff
  ...
2019-08-29 19:05:25 -02:30
Philip Monk
a25b082e04
dill, helm: add lite boot option with -l 2019-08-26 11:04:24 -07:00
Jared Tobin
5798a50c40
helm, drum: remove deprecated %load
This was an artifact of %gall's old 'culm' type, which was removed in
1fe4ff1605 (2019-04-12).
2019-08-22 12:33:19 -02:30
Isaac Visintainer
2212323b4d added launch, chat, publish, clock, and weather as default apps for comets 2019-08-13 11:43:18 -07:00
Philip Monk
9b798a8722
reenable apps 2019-08-01 11:43:33 -07:00
Philip Monk
a47ef9ac77
wip 2019-07-26 20:45:45 -07:00
Philip Monk
577eed93b8
migrate ames to kale 2019-07-26 20:44:43 -07:00
Logan Allen
027ff9ff14 Fixed drum by removing timer 2019-07-19 10:49:38 -07:00
Isaac Visintainer
a60d8cdbfc changed name of app to be consistent 2019-07-11 15:07:05 -07:00