* master: (160 commits)
glob: update to 0v6.8mn05.16g61.46lkc.lgddc.3ifug
metadata-push-hook: fixes issue with adding unmanaged metadata
pills: update solid
graph-push-hook: don't crash on multipart add
glob: update to 0v5.g86fq.9ngth.ki9h1.q7kut.icm5f
graph-store: scry only once during +validate-graph
graph-store: fewer allocations in +validate-graph
graph-store: speed up +validate-graph by using +turn and no longer virtualizing
interface: version local state by commit hash
graph-push-hook: add hc where appropriate and enforce type-checking to prevent issue in future
graph-validators: speed up validators by adding type casts
build: only run publish-npm-packages on pkg/npm
build: match on path subdirectories
glob: update to 0v1.4ujsp.698kt.ojftv.7jual.4hhu5
launch: prevent aggressive tutorial render
launch: get tutorial state from zustand
push-hook: add version scries
glob: update to 0v5.b7cjf.2kc12.85sng.lkqav.7sn0k
readme: update arvo maintainers list
notifications: clear before applying unreads
...
Fixes#4598.
#4474 made the JSON time conversion no longer invertible, which caused
problems for chat, which uses message timestamp in milliseconds as a key
-- so chat would send a message with ms timestamp x, it would get
encoded as @da x, but then when it went back through the conversion to
milliseconds, it would often (not always) get encoded as x-1.
I still do not fully understand why this is -- and why it doesn't seem
to be a problem with seconds based on cursory testing -- but integer
multiplication and division generally do not invert. And adding a half a
millisecond to the input date before converting it resolves the issue
and makes the functions invertible.
I added a regression test, so hopefully the next courageous adventurer
who winds up here after wondering why +unm looks funny will have a
safeguard against some of the mistakes I made.
State before: in chrono:userlib, there were second-resolution
@da-to-unix and unix-to-@da functions. In en/dejs:format, there were
millisecond-resolution @da-to-unix and unix-to-@da functions. The
@da-to-unix path in time:enjs confusingly rounded to the nearest
millisecond, meaning millisecond n was a label for [n-0.5, n+0.5) rather
than [n, n+1).
This adds a millisecond-resolution @da-to-unix and unix-to-@da to
chrono:userlib, and a second-resolution conversion to en/dejs:format.
It makes use of the chrono:userlib functions in en/dejs, and doesn't do
any rounding.
Backwards-incompatible changes:
- made unt:chrono:userlib take a @da rather than @.
* na-release/candidate:
kh: use Word8 for Tint true color values
arvo: remove unused app files, libraries, and imports
webterm: improve line-spacing in certain browsers
vere: avoid +scot call for color value rendering
kh: support 24-bit %klr colors
vere: support 24-bit %klr colors
webterm: update mar and js to support 24-bit color
tests: fix ames tests
pill: update ivory pill
dojo: correct mark conversion scry path
pill: solid
aqua/ph: fix comet test
ames: flat packet format
hoon, dill: Add 24-bit true color