Repository navigation
Myco v0.10.0
v0.10.0 lets apps post pictures, explains every permission before
Android asks, and can reach your Circle over the internet.
- Apps can upload a file, such as a picture to post, to your Blossom servers.
They can do this only if you allow it. - First launch walks you through the mesh setup, one card per Android prompt.
- Opt-in: link to public mesh nodes when you're online, so your Circle can
reach you when you're not in the same room. - An app shared as a link installs from phones nearby, even with no internet.
- Wi-Fi and Wi-Fi Aware come back after the mesh restarts, and phones on the
same Wi-Fi keep finding each other.
No wire-format change from v0.9.1. v0.10.0 and v0.9.x phones pair and
exchange apps and messages as before. Everything upgrades in place.
At a glance
- Apps can upload files. An app that asks for it, and that you allow on
the install sheet ("Upload files"), can put a file on your Blossom servers,
signed as you. Doodle Duo uses it: after a round it uploads the score
picture and opens Composer with the link in the note.- Myco uses your own server list. Only if you have none does it use public
servers (Primal, hzrd149). If your list can't be found, nothing is
uploaded. - With a signer app (Amber), you approve each upload there.
- Up to 16 MiB, one at a time. Nothing is uploaded with offline-only on.
- Apps you installed before that want it ask you again.
- Myco uses your own server list. Only if you have none does it use public
- A setup popup on first launch. "Enable mesh?", then a card before each
Android prompt (nearby devices, then the VPN) saying what it is for, then
your name. Android asks nothing until you tap the card's button.- Until you choose a name, Bluetooth advertises a generated one, not the
phone's own. - A refused step gets a card saying what won't work and how to retry,
including when another app's VPN is set to always on. - Upgrading with a working mesh: no popup.
- Until you choose a name, Bluetooth advertises a generated one, not the
- Settings › Permissions. Nearby devices, the mesh connection,
notifications and (optional) keeping Myco running in the background, each
with its state and a Fix or Allow. Notifications are no longer asked for at
launch; the camera is asked for only when you tap "Allow camera". - Mesh over the internet (opt-in). Settings › Mesh › Internet links this
phone to up to two public FIPS nodes while it is online. A public node sees
this phone's IP address and which mesh addresses it talks to, not what you
send. It never dials with offline-only on. - App links work offline. Opening a napplet link with no internet used to
fail even with the app on a paired phone next to you. Myco now asks the
sharer and every Circle phone in reach first, all at once, and takes the
files from the quickest. - Apps open with less black screen. About 570 ms instead of 670–780 ms for
a fresh Noris open on a mid-range tablet. - Full-tunnel exit (experimental). Set the exit node as
socks5://<exit-npub>.fips:1080to send all of the phone's TCP traffic, and
DNS, through the exit, not only apps that honour the HTTP proxy. UDP is
dropped, so apps fall back to TCP.
Also
-
Wi-Fi Aware on Android 12. It can now be allowed: Android 12 ignores a
request for precise location alone, and Myco now asks for approximate too. -
Wi-Fi and Wi-Fi Aware after a mesh restart. A phone could come back
connected over Bluetooth only until Myco was force-stopped. Both lanes now
come back. -
Phones on the same Wi-Fi keep finding each other. A phone leaving the
network at the wrong moment could stop new connections over that Wi-Fi
until Myco was restarted.
Known issues
- Mesh over the internet is new. It hasn't yet been tested with two
phones on different networks reaching each other through a public node.
It is off by default. - Web pictures in apps. Napplets load files by their hash (
blossom:).
Plain web images, including many profile pictures, show a placeholder (🥀 in
Chronofeed).https:image support is still to come;
#67 covers Blossom server
discovery. - Uploads: no per-upload prompt, no progress. The install-sheet grant is
the consent; without a signer app, an allowed app uploads without asking
each time. Files go up as the app sent them (EXIF and other metadata are
not stripped). There is no progress bar and no cancel. - Composer can't attach a picture itself yet. An app that uploads one,
such as Doodle Duo, can hand Composer the link; pasting a Blossom link also
works. - Few apps declare a role yet. Opening "a profile", "an article" or "a
composer" needs an app whose manifest declares that archetype, such as
Simple Profile, Noris or Composer; other napplets don't yet.article,
highlightand thecomposerconvention are ours, not yet in the NAAT
registry. Messages between apps other than opening by role (inc.emit)
aren't routed yet. - Reading positions in Noris stay on the phone. Boris publishes them as
public events; Noris keeps them on the device instead, because Myco can't
encrypt for an app yet (relay.publishEncrypted). Without app storage they
last for the session. - A custom relay is read, not streamed. With a custom relay set, reads wait
for it rather than streaming as they arrive. - Big files are held in memory while they load (up to 64 MB each).
- Paid relays. Relays that require a paid account (nostr.wine, for one)
refuse Myco's reads, so apps published only there can't be found. - Open nsite windows and updates. An update can mix old and new files in
an open nsite window until it reloads:
#71. - No "recently updated" mark on the Apps screen yet:
#69.
What's Changed
- perf(napplet): keep the WebView renderer warm; build the WebView during the open by @Origami74 in #120
- feat(exit): full-tunnel exit over SOCKS5 by @Origami74 in #121
- fix(napplet): ask Circle peers in reach when installing from a link by @Origami74 in #122
- fix(udp): stop a stopped node's sockets from blocking the next node's bind by @Origami74 in #123
- fix(lan): time out stuck mDNS resolves so LAN discovery keeps going by @Origami74 in #124
- docs(roadmap): permissions onboarding, public mesh nodes, sharing Myco itself by @Origami74 in #113
- feat(napplet): NAP-UPLOAD — upload a napplet's file to the user's Blossom by @Origami74 in #125
- feat(mesh): connect to public internet mesh nodes (N10) by @Origami74 in #127
- feat(android): mesh setup popup and Settings › Permissions (N9) by @Origami74 in #128
- chore: v0.10.0 release prep by @Origami74 in #126
Full Changelog: v0.9.1...v0.10.0