monlovesmango / astral Goto Github PK
View Code? Open in Web Editor NEWThis project forked from fiatjaf/branle
Nostr client made with Quasar
Home Page: https://astral.ninja
License: MIT License
This project forked from fiatjaf/branle
Nostr client made with Quasar
Home Page: https://astral.ninja
License: MIT License
When hovering over the emojis from the emoji picker, the cursor:
should be pointer
.
NIP06 mnemonic is already supported by mutations.js via the existing frontend key input box. In fact, it is the mechanism by which a new private key is already generated.
However, there's no way for the user to see the mnemonic (it's ephemeral within the function call and lost once the private key is returned), and there's no clear indication that mnemonic is supported by the input box even though it is.
Preferring and promoting the use of the mnemonic will afford all of the already established benefits seen by other applications of BIP39.
Often when I type replies, I type some 80 chars and have to wait for 2 minutes for them to end up in the text box one by one.
When I try to type ![](https://pbs.twimg.com/media/FcAYq6maAAAkHc3.png)
, I get ![]()
with the link added as tag but no way of embedding it in the text note. Or ... how is the way? Why rip those external urls out into tags?
Maybe just adopt a standard tailwind css template to improve the aesthetic?
I dread authoring my reply on the very bottom of the screen. Please add some element after that, so I can scroll the textarea to the center of the screen while writing.
Actually this maybe 80% screen height of extra scrolling is also nice to have when reading, too.
The display of which relay did receive which event is noise to most users. Hide it by default. Only show it if sending an event fails for example.
Somehow Astral stopped working. After not seeing a post in one tab that I saw in another tab I closed already, I hit F5 and later closed and opened the tab without seeing any log output on the dev console for minutes, with no loading of events whatsoever, I hit shift-reload and got:
01:06:13.182 Layout was forced before the page was fully loaded. If stylesheets are not yet loaded this may cause a flash of unstyled content. [node.js:369](resource://devtools/server/actors/inspector/node.js)
01:06:15.970 launch for 46fcbe3065eaf1ae7811465924e48923363ff3f526bd6f73d7c184b16bd8ce4d [app.65801ba0.js:1:58365](https://astral.ninja/js/app.65801ba0.js)
01:06:17.847 Reading meta... [c2018daa-97c2-4cc5-8cb1-d95252afb78e:1:7805](blob:https://astral.ninja/c2018daa-97c2-4cc5-8cb1-d95252afb78e)
01:06:17.847 Reading meta... [c2018daa-97c2-4cc5-8cb1-d95252afb78e:1:7805](blob:https://astral.ninja/c2018daa-97c2-4cc5-8cb1-d95252afb78e)
01:06:17.849 Got meta for events.absurd-sql:
Object { size: 12582912 }
[c2018daa-97c2-4cc5-8cb1-d95252afb78e:1:7861](blob:https://astral.ninja/c2018daa-97c2-4cc5-8cb1-d95252afb78e)
01:06:17.849 Got meta for events.absurd-sql:
Object { size: 12582912 }
[c2018daa-97c2-4cc5-8cb1-d95252afb78e:1:7861](blob:https://astral.ninja/c2018daa-97c2-4cc5-8cb1-d95252afb78e)
01:06:17.855 Opened! [vendor.a150482c.js:7:20717](https://astral.ninja/js/vendor.a150482c.js)
01:06:17.855 Opened! [vendor.a150482c.js:7:20717](https://astral.ninja/js/vendor.a150482c.js)
01:06:17.950 Error: database disk image is malformed
I see a spinner but no loaded event data.
With Google I found this document. To promote its use, the client should link to how to use it and what the check mark means.
https://astral.ninja/6b0d4c8d9dc59e110d380b0429a02891f1341a0fa2ba1b1cf83a3db4d47e3964 shows the name "dergigi" but no information about nip5.
https://dergigi.com/.well-known/nostr.json:
{
"names": {
"_": "6b0d4c8d9dc59e110d380b0429a02891f1341a0fa2ba1b1cf83a3db4d47e3964"
}
}
looks good.
The relevant event:
{
"id": "45f21a870ad194b914d93c553e59c1b0ab242a76b0d66b425323ef4baba212ff",
"pubkey": "6b0d4c8d9dc59e110d380b0429a02891f1341a0fa2ba1b1cf83a3db4d47e3964",
"created_at": 1663236946,
"kind": 0,
"tags": [],
"content": "{\"name\":\"dergigi\",\"picture\":\"https://dergigi.com/assets/images/avatar-laser.jpg\",\"about\":\"Writing words and code for Bitcoin. dergigi.com\",\"nip05\":\"dergigi.com\",\"lud06\":\"LNURL1DP68GURN8GHJ7MR9VAJKUEPWD3HXY6T5WVHXXMMD9AKXUATJD3CZ7CTSDYHHVVF0D3H82UNV9UENXVPSXRPGRS\"}",
"sig": "c10e66983593ceedcd8a37b76ff0726b78dc425da394935388e7636b9b1d3b4010886a922bd5c79d16140d26d99fb7dcdfbe4844b9d8b2835dd5bbe8916d5232",
"degree": 0
}
also looks good.
The keys match.
What am I missing?
If Astral thinks the nip05 is wrong, it should probably also state that and why. It might be a huge red flag for somebody to use a "fake" nip05 entry.
Querying followers is easy enough ({"#p":[pubkey],kinds:[3]}
). Why not add it to the clients?
At least in the own follows list it would be nice to know who followed back.
And on events and chat it should be visible if the author is following me.
(More importantly, show if it's the monlovesmango I am following or an imposter on events and chat).
Running Astral on what I think is effectively current master HEAD, I see messages of unfollowed accounts in my "follows" feed.
This problem persists for days, with many reloads and tab close and re-opens.
I unfollowed jb as can be seen on the "following" list, yet I see many of their notes.
While some "in reply" ones were in reply to my notes, so those should probably stick around, the screenshot also contains one that is not "in reply".
Currently, to use multiple accounts I either have to use multiple browsers, browser sessions, Astral instances or wipe the data to sync from zero when switching accounts.
As in many if not most cases, many events are relevant to all one's accounts it makes sense to have the client be multi account capable.
It currently re-queries all known pubkeys when adding a new pubkey.
Use since:
for all synced pubkeys and query the new account's older events on a different channel.
Stacker.news 076161ca22da5a2ab8c74465cbf08f79f3e7e8bb31f4dc211bd94319ebade03d has this profile description:
Like Hacker News, but we pay you Bitcoin. https://stacker.news/
Clicking the correctly styled link does not open the link.
Now as I opened my nostr tab, it showed me one new message and selecting "messages" it was one new message on chat with 8c0da4 but I saw no new message there. Only later when going back to that chat that new message from 3h ago did appear.
The app turns unusable when going through a PC suspension (and probably also when internet is gone for some time?). Handle those events, detecting websocket disconnects for example and restore state when the tab gets focus or show a "refresh" button to the user that lets him restore the state without closing or reloading the tab.
In my feed I see events from "11 min ago" and even after navigating around and coming back to the feed, it reads "11 min ago".
Astral gets the list of preferred relays using its default list of relays.
If that list contains only defunct relays, it's hard to recover as I have to manually add all default relays to get my fixed list to all default relays so that at the next start of using astral I don't fall back to my defunct relays.
When sending direct messages, something is off with the markdown parsing or so.
Using a single newline gets translated into a newline, which is not markdown standard and not appreciated but understood and somewhat ok.
What is not ok is that double-newline gets translated into no newline at all.
I made a post and astral doesn't show the replies. I can open for example this reply just fine but it doesn't show on the former link.
TextNote
{
"id": "fba0722266ff7c252c72d5ace7d516611bb62c2dc74e4fdacafdfb6a36b975e4",
"pubkey": "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245",
"created_at": 1655070996,
"kind": 1,
"tags": [
[
"e",
"ec25b9c7ff8fa8ccdc7d2e3bfa06df82448a88c40212c6d19bce4a6f747b736b"
],
[
"e",
"528458f58b76fcf91351e5f3794778016f95b762047b3b9fb1a8bb6444e80971"
],
[
"p",
"3efdaebb1d8923ebd99c9e7ace3b4194ab45512e2be79c1b7d68d9243e0d2681"
],
[
"p",
"8355095016fddbe31fcf1453b26f613553e9758cf2263e190eac8fd96a3d3de9",
"wss://nostr-relay.wlvs.space"
],
[
"p",
"46fcbe3065eaf1ae7811465924e48923363ff3f526bd6f73d7c184b16bd8ce4d"
],
[
"p",
"09e935f7c01fda340051a4700cfb9dde533202bdf56808f68cafef6bae07a5bd"
],
[
"e",
"4c712ebfc251f02f9af0ab39e4c4b4fa9427a76e5826e67138dc048a41cba22c"
]
],
"content": "#[6]",
"sig": "2f3886e583dd44bcb52a8f4555cbe938eb56f23378341bb436f4ac78b18f3fe16ddf7d8c7bd813f964e05811c424ae094dbe413aca96967d436978d9e399345a"
}
quotes Note
{
"id": "4c712ebfc251f02f9af0ab39e4c4b4fa9427a76e5826e67138dc048a41cba22c",
"pubkey": "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245",
"created_at": 1654962253,
"kind": 1,
"tags": [],
"content": "Haha sorry everyone accidentally clicking the boost button, I will have a confirmation button in the next testflight release",
"sig": "8277df96de140c6bc0b831019b2d84155608827f89b584e773ad95c19208356ddd89d18aa9d2002eca7febcb04c8fc3c469f756924cbee6818ecc483ae0d7ca4"
}
I tried to reply to the former but there was no reply button. But there was a reply button for the latter.
I would expect it to be reverse: only a reply button for the new Note. No reply button for the quoted Note.
But to make matters worse, it's now no reply at all according to Astral! Just a top-level Note quoting two Notes.
New events being received pushes the feed down and with images or when unclebobmartin posts, by a lot.
As sorting can also change when a new reply for an older thread is received, the stuff the user was reading might have moved up or down.
This can be quite disorienting
Maybe slowly smooth in a one-line event counter like Twitter has it: "Show 25 Events".
Due to the re-sorting I don't see any good alternatives to this.
The browser doesn't spell-chek those inputs in Astral.
Clicking "copy pub key" buttons opens the pub key's posts while still copying the relevant pubkey.
I would expect it to only copy the pubkey.
I think the "i" next to every event was to show the raw event. this button does not work for me.
Example Event 435c44c5b5dd8abceefe5f4ac176165618732178f4864d822979153a3fe9ad7f
"All of a sudden" astral stopped working. After a power outage I spun up quasar normally and connected to localhost:8080 but only got this on the dev console:
22:07:04.323 [Vue warn]: Property "$store" was accessed during render but is not defined on instance.
at <QLayout>
at <MainLayout onVnodeUnmounted=fn<onVnodeUnmounted> ref=Ref< undefined > >
at <RouterView>
at <App> [runtime-core.esm-bundler.js:38](webpack://astral/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js?f781)
22:07:04.323 [Vue warn]: Unhandled error during execution of render function
at <QLayout>
at <MainLayout onVnodeUnmounted=fn<onVnodeUnmounted> ref=Ref< undefined > >
at <RouterView>
at <App> [runtime-core.esm-bundler.js:38](webpack://astral/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js?f781)
22:07:04.324 [Vue warn]: Unhandled error during execution of scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core
at <QLayout>
at <MainLayout onVnodeUnmounted=fn<onVnodeUnmounted> ref=Ref< undefined > >
at <RouterView>
at <App> [runtime-core.esm-bundler.js:38](webpack://astral/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js?f781)
22:07:04.326 Uncaught (in promise) TypeError: _ctx.$store is undefined
default MainLayout.vue:3
renderFnWithContext runtime-core.esm-bundler.js:850
hMergeSlot render.js:25
setup QLayout.js:226
renderComponentRoot runtime-core.esm-bundler.js:893
componentUpdateFn runtime-core.esm-bundler.js:5030
run reactivity.esm-bundler.js:167
setupRenderEffect runtime-core.esm-bundler.js:5156
mountComponent runtime-core.esm-bundler.js:4939
processComponent runtime-core.esm-bundler.js:4897
patch runtime-core.esm-bundler.js:4489
componentUpdateFn runtime-core.esm-bundler.js:5037
run reactivity.esm-bundler.js:167
setupRenderEffect runtime-core.esm-bundler.js:5156
mountComponent runtime-core.esm-bundler.js:4939
processComponent runtime-core.esm-bundler.js:4897
patch runtime-core.esm-bundler.js:4489
componentUpdateFn runtime-core.esm-bundler.js:5107
run reactivity.esm-bundler.js:167
callWithErrorHandling runtime-core.esm-bundler.js:155
flushJobs runtime-core.esm-bundler.js:394
[MainLayout.vue:3](webpack://astral/src/layouts/MainLayout.vue?713b)
I cleared the cache, tried Chromium, ... no success. Same error.
Setting a nip05 identifier makes the name go disappear. I'd really prefer to be referenced by my name, not my id.
I suspect the connection to relays is often lost, as reloading the tab results in new events being loaded, so I reload all the time.
With an indicator of connected relays I could probably skip that 80% of the time. Or better add a mechanism to force re-connection, too. When tab gains focus like Twitter does it.
While branle can handle web+nostr links such as
web+nostr:event:2757368bc06504ad23baabf358d91c7d5e55845b3432a6ba4e1e546ac367621c
astral cannot.
src/pages/Profile.vue:111 contains the relevant code for above link but I get " 404 Oops. Nothing here..." instead.
Expected: Nothing spectacular happens. Just a newline appears in the textarea.
Actual: The view updates to the event one is replying to and the reply is gone.
When I go to the settings and change my "about" text and then check my profile, it keeps showing the old "about".
event/407fa3bfa42b38f1d0c1707440c9794ab81da27622393ca1b617d2adcc724b59
looks weird here:
Due to #19 it's a bit cumbersome to investigate.
I'm not sure where the comment size limit came from in Astral but other clients allow much longer messages.
I think there should be some Twitter-like short-ish limit but links should not count against that limit or at least not in full.
Maybe the client should count the link title in full (or generally apply the limit to the markdown-applied text) and use a much more generous limit for the serialized event's size.
shift-reload currently takes several minutes here, starting with January events to get to recent events.
Astral interprets the decrypted content, replacing profile hrefs with profile name etc., so the user might want to see what the other actually sent.
I was surprised to find
<a href=/$pubkey>$someMessage</a>
gets replaced with something not containing $someMessage
at all. Maybe it could be added back as title?
In the feed view, threads are sorted by date of the root event. They should be sorted by the date of the final reply.
I now am looking at a "This tab is slowing down FF" for many minutes at a time, with nothing working in Astral and hitting F5 does not help. It only returns to freeze.
Currently followers are not marked as being follows or not. Please split the list at least into two parts:
Ideally expand the concept:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.