Просмотр исходного кода

app: make a better debug chat log used in populate_tree() (for testing chatview)

darkfi 1 неделя назад
Родитель
Сommit
fc1cca41a4
4 измененных файлов с 1034 добавлено и 193 удалено
  1. 1001 179
      bin/app/data/chat.txt
  2. 28 12
      bin/app/src/app/schema/chat.rs
  3. 1 1
      bin/app/src/ui/edit/mod.rs
  4. 4 1
      bin/app/src/ui/mod.rs

+ 1001 - 179
bin/app/data/chat.txt

@@ -1,179 +1,1001 @@
-00:53 bouma would you call within a 75% CI weak evidence ? i would call it no evidence
-01:00 somiaj I don't think a p value of 0.25 is that common, most prefer 0.05 or smaller
-01:34 PlanckWalk Ci width has little to do with evidence strength.
-02:19 KZ-Spectra hello
-02:34 KZ-Spectra so when impose periodicity, then I want that also to be the case
-02:35 KZ-Spectra "Find the remainder when 9 x 99 x 999  x ... x 99....9 (999 9s) is divided by 1000"
-02:43 Z-module so the last factor there is 10^999 - 1 ?
-03:01 KZ-Spectra yeah
-03:02 KZ-Spectra it's the flavor of mod arithmetic since that's what we have been doing :)
-03:08 KZ-Spectra Z-module:  I'll give you the end answer: 109
-03:09 KZ-Spectra Z-module: https://i.imgur.com/vTstSUO.png can we just do this?
-03:13 PlanckWalk yeah, 9*99*999^997 = 891*(-1) = 109 (mod 1000)
-03:15 KZ-Spectra oh no
-03:19 PlanckWalk Err, superscripts
-03:20 PlanckWalk No
-03:21 PlanckWalk It looks like it stands alone
-03:22 PlanckWalk There are possible questions of conditional convergence, though.
-03:23 KZ-Spectra those u's are complex
-03:24 PlanckWalk So *if* the RHS is defined, it is equal to the LHS.
-03:25 PlanckWalk No idea, I haven't read through the mathbin at all.
-03:26 PlanckWalk (and probably won't since I'm just in a tea break at work)
-06:12 Hasdiel Does anyone know of a good self-hosted open source alternative to wolfram alpha?
-07:18 Pelleplutt In a fictive world. Tell me how one human male and ten human females would repopulate an deserted island in the fastest way. How many years would it take for the population to reach 1 million with unlimited food supply, pre-build shelters and enough space. Take in to calculation that a human female cannot reproduce until 13 years old on average and
-07:36 greenbagels Pelleplutt: interesting problem for a boss to give their employees lol
-07:37 Pelleplutt greenbagels indeed :) He has been playing around with AI but i do not know why this question came from that
-07:43 isekaijin Pelleplutt: Is your boss a weeb or what? What the hell is with that plot?
-07:43 greenbagels Pelleplutt: how old are the original people?
-07:44 greenbagels no i mean in the problem
-07:44 Pelleplutt oh, good question. We can assume they are above 13 and below 40
-08:00 Pelleplutt I guess we have to assume that its 50% males and 50% females that is born aswell
-08:15 PlanckWalk With lots of simplifying assumptions, of course.
-08:16 PlanckWalk Proabbly the most annoying relevant one would be reduced fertility with age.
-08:18 PlanckWalk Inbreeding would be definitely a concern, but make a lot less difference than pretty much any other assumptions.
-08:19 PlanckWalk But basically the boss will either give you a cake or not, on his whims.  There isn't a true "correct answer" to this.
-08:25 PlanckWalk (If only 3.4% die before 40 on this isolated island with no pre-existing civilization then it's a fucking miracle)
-08:29 PlanckWalk Anyway, maybe try asking on worldbuilding.stackexchange.com or something :-p
-08:30 PlanckWalk Because it sounds like the premise for some crappy harem litrpg.
-08:33 Pelleplutt Assumtion is that there is no inbreeding problem aswell :P
-09:30 PlanckWalk Pelleplutt: Then eh, if you take off every sane limit like that then you could probably do it in just over a century.
-09:32 PlanckWalk (The stated mortality rates are irrelevant, and shouldn't even have been mentioned)
-10:03 mh_le morning all
-10:06 biberao hi
-10:29 sigma1 is T := { {}, {{}} } transitive?
-10:30 Inline vertically not, horizontally maybe
-10:33 mh_le sigma1: what is the definition of "transitive" in this sense?
-10:34 sigma1 is each element of the set is a subset of the set
-10:35 mh_le if would help if you were a bit more precise
-10:36 sigma1 A set H is transitive if every one of its elements is a subset.
-10:37 mh_le then yes
-10:40 sigma1 and T := { {}, {{}}, {{{}}} } ?
-10:41 lericson we went through this, sigma1
-10:47 biberao math time
-10:48 mh_le which kind?
-10:50 biberao mh_le: i did some trig and sequences yesterday night
-10:51 machinewhore Is there a collection of urn problems/solutions somewhere that I can use for practice?
-10:52 mh_le you mean counting/probability problems?
-10:53 mh_le https://www.google.com/search?q=counting+and+probability+problems&oq=counting+and+probability&gs_lcrp=EgZjaHJvbWUqCAgCEAAYFhgeMgYIABBFGDkyBwgBEAAYgAQyCAgCEAAYFhgeMggIAxAAGBYYHjIICAQQABgWGB4yCAgFEAAYFhgeMggIBhAAGBYYHjIICAcQABgWGB4yCAgIEAAYFhgeMggICRAAGBYYHtIBCDcwNTJqMGo3qAIAsAIA&sourceid=chrome&ie=UTF-8
-10:58 sigma1 I'm not sure whether these are transitive T: = {∅, {{∅}} and S:= {∅, {{∅}}, {∅}} I get confused with the ∅
-10:59 machinewhore S is transitive iff each element of S is a subset of S.
-11:01 sigma1 it'd be T: = {∅, {{∅}} btw
-11:02 machinewhore If you answer those two questions I asked, then you will know if T is transitive or not.
-11:03 mh_le biberao: ah cool
-11:07 machinewhore sigma1: Figure it out?
-11:12 sigma1 machinewhore the set {{∅}} is a subset of T, because its element is part of T
-11:13 PlanckWalk Its element is {∅}
-11:14 PlanckWalk The elements of T are ∅ and {{∅}}
-11:16 machinewhore Yup, those are the elements of T.
-11:23 mh_le biberao: is a solution to an assignment you are typesetting?
-11:24 biberao yes
-11:25 mh_le ok, I don't know spanish so I'm not sure I will be able to help
-11:26 biberao but the issue is structuring i wanted to make it similar
-11:27 biberao mh_le: i want to be able to have like exercice 1 and so on
-11:31 sigma1 PlanckWalk so T is transitive as ∅ is a subset of T
-11:33 sigma1 and the members of {{ø}} is only {ø}, and {ø} is a subset of A
-11:35 PlanckWalk That's not the test for transitivity
-11:36 sigma1 yes
-11:37 machinewhore What is the definition of "subset'?
-11:38 sigma1 If B is a set whose elements are included in a set A we say that B is included in A or that B subset of A
-11:39 PlanckWalk As you did!
-11:40 PlanckWalk So try again without using the word "included".
-11:41 sigma1 'part of a set A' instead of that
-11:44 PlanckWalk Try looking up a definition.
-11:45 PlanckWalk The one you're using is broken.
-11:48 machinewhore42 sigma1: Are you a native English speaker?
-11:50 sigma1 A is a subset of B, if and only if every element of A is an element of B
-11:51 PlanckWalk I severy element of {{ø}} an element of T?
-11:53 PlanckWalk What are the elements of {{ø}}?
-11:54 sigma1 the set {ø}
-11:55 sigma1 the set {ø}  and ø
-11:57 sigma1 err the other should be {{ø}}
-11:58 PlanckWalk Which other?
-11:59 sigma1 {{ø}} and ø
-12:00 PlanckWalk Right, so now you can answer whether T is transitive.
-12:01 mh_le Let B - i -> B' - p -> B'' be an exact sequence of left R-modules, and let A be a right R-module and consider the maps id_A (X) i and id_A (X) p then (id_A (X) p) \circ (id_A (X) i) = id_A (X) 0, but why is this the zero map?
-12:06 mh_le here 0 must be the map b \mapsto i(b)\mapto p(i(b))=0 for all b in B, but the Id_A is not zero
-12:07 mh_le wait
-12:11 sigma1 is U\T transitive?
-12:12 mh_le r( a (X) b) = (ar (x) b) = (a (x) rb). so ( a (x) 0) = 0
-12:13 mh_le that's not right
-12:20 -- Mode ##math [+o int-e] by ChanServ
-12:28 mh_le so it was pretty obvious that a (x) 0 = 0
-13:56 sigma1 the text asks me whether U \ T is transitive
-13:58 int-e Cool. What are U and T?
-14:21 biberao Z-module: ?
-14:22 brass_ Can the sine function be achieved using finite combination of the basic operations?
-14:24 dTal No, sine is transcendental
-14:25 dTal Why do you ask?
-15:33 paulo https://www.wolframalpha.com/input?i=y%5E2%3D%28x%28x-9%29%28x%2B16%29%29%2C+y+%3D+3
-15:34 paulo why are solutions shown as complex when the line clearly intersects the graph in real space?
-16:12 brass_ dTal Can I message you privately, I can't respond here.
-16:12 dTal You can't?
-16:13 brass_ ?Yup ok, it's just that what I might say may sound too dumb on an elementary level.
-16:27 ecraven hello ;) I'm looking for a function that does the following: I know N (the number of items) and i (the index of the current pick). I'd like to go from i=0..N-1, and get back a "random" ordering (so not 0, 1, 2, ... but 5, 7, 23, 1, ...) where each number from 0 to N-1 occurs exactly once for i=0..N-1.
-16:30 Z-module paulo: putting y = 3 in that and working with the resulting equation  x^3 + 7x^2 - 144x - 9,  I get (if I haven't made an error) the discriminant to be 13133457, which (being positive) means there are three distinct real roots. *Somehow* the particular numbers are fouling up the floating-point solvers. Notice how very minuscule all those imaginary parts are.
-16:32 mh_le hey all
-16:34 ecraven and it works fine, I just implemented it wrong ;)
-17:05 biberao Z-module: tell me what you think https://github.com/gitmapd/gitmapd.github.io/blob/master/limites%20nova%20ficha.pdf <- finished exercise 2 and 3
-17:14 Z-module Looks good, biberao
-17:16 biberao Z-module: ive added another thing to prove bounded for 3-2n
-17:19 Z-module I think you mean 3 - 2/n
-17:20 biberao i did lim n (3-2n) = -inf
-17:22 Z-module Take any real r (of any sign).  Then  3 - 2n < r   iff   (3 - r)/2 < n     , so for all n > (3 - r)/2, that holds.  This is the meaning of  lim (3 - 2n) = -infty
-17:23 biberao maybe i should use the delta epsilon?
-17:27 Z-module That's what this is, but in the form used for sequences
-17:28 Z-module A sequence {b_n} goes to +infty if:  Forall r   exists M   forall n > M    b_n > r         Change that last > to < and you get the form for -> -infty
-17:31 mh_le hi Z-module
-17:33 Z-module This reminds me of a very neat thing. Let g_n mean (the (n+1)st prime) - (the nth prime), the nth prime gap. It turns out we don't need really heavy analytic number theory for the following: merely the pretty basic (easier-to-prove than you might think) Chebyshev bounds suffice, and I think only one side of it is even enough:  Infinitely many n exist with  g_n < g_(n+1) > g_(n+2),  also infinitely many with  g_n > g_(n+1) < g_(n+2).
-17:52 biberao back
-17:53 biberao Z-module: thank you
-17:56 theseb Can someone tell me how they got the "observed power" on this A/B test calculator? https://abtestguide.com/calc/
-17:57 theseb "two proportions hypothesis testing"
-18:05 biberao Z-module: so for example if an = 3-2n was a monotonic increasing i could do  an > M
-18:06 Z-module by the way, a sequence can -> +infty without being monotonic or eventually monotonic. For example: 1, 2, 3, 2, 3, 4, 3, 4, 5, 4, 5, 6 ...
-18:07 biberao for this case is this right to say 1 < 3-2n < -inf
-18:07 Z-module However, that prime gaps sequence {g_n}, while unbounded, does not -> infty, as we've only known with proof for around a decade.
-18:08 Z-module nothing is < -infty
-18:08 biberao but you understood what i meant
-18:09 Z-module okay but  -infty < any reals you like,  so there's no point writing that. Finitely many innequalities have nothing to do with -> -infty
-18:18 biberao Exercise 2 d)
-18:26 Z-module I don't think you need to check or mention that 1 > every a_n at all. Simply the fact that eventually all a_n are < any pre-selected number is enough to get that the sequence is not bounded. Also you shouldn't write  lim a_n = -infty    at the top like that: only write it after showing it to be true.
-18:27 Z-module the  1 > all a_n   would be relevant if you were dealing with "unbounded only on one side" as a separate / special case of "unbounded".
-18:37 Z-module {b_n} is "bounded" iff some positive r exists with |b_n| < r  (same as:  -r < b_n < r )   for all n.  Equivalent to saying some reals r < s exist with  r < b_n < s  for all n.      The negation of this, {b_n} unbounded, is:  EITHER:   for every r, for infinitely many n,  r < b_n   (that's unbounded above),  OR:   for every r, for infinitely many n,  r > b_n   (unbounded below).  Or both.
-18:39 Z-module But unbounded above is weaker than {b_n} -> +infty ; unbounded below is weaker than {b_n} -> -infty.  The sequence 0, 1, 0, 2, 0, 3, 0, 4, ...  is unbounded above, but does not -> +infty.
-18:44 biberao Z-module: so thats the way we did earlier then
-18:47 biberao ok gtg
-18:48 greenbagels another happy customer
-19:11 mh_le hi
-19:12 mh_le any progres on Wald?
-19:39 Simplar I'm having issues with elementary problem. I want to find out how to prove that even divided by odd is always even if the divisor divides dividend. I know that even number has 2 among the multiples, while odd number never does, so the two won't go anywhere.
-19:57 Z-module Simplar:  2m - (2n + 1) = 2(m - n) - 1 = 2(m - n - 1) + 1   and this last is odd.
-20:09 Simplar Z-module: I meant (2m) / (2n+1)
-20:10 Simplar 2m = (2n+1)q + r
-20:13 Guest5398 Hello, sorry, If you have 7 Characters and every 1 day Chance of Birth is 1%, how can i create a function that will Tell me the amount of Characters after n days?
-20:24 Z-module Simplar: The question presupposes that the numerator n = 2m is an integer multiple of the denominator d where d is odd. So 2m = kd  for some k. So  2m/d = k,  and k can't be odd because then d, also being odd, would mean  kd  is also odd, not true since kd = 2m.
-20:25 Z-module also, note taht "difference" referes to the - operator, not the / operator
-20:28 Z-module Simplar: another way to put that.  2m = kd  and prime factoriation is unique (up to order), so 2 appears somewhere in the prime factorization of kd.  But it's not in d, so it must be in k. So  2m/d = k  is even.
-20:33 Guest5398 Its Like having seven dollars and getting 1% interest? Having 7 Characters having a Baby at 1% Chance . That should be IT.
-20:35 pavonia Guest5398: What is the relation between characters and birth here?
-20:36 Guest5398 I mean Characters can increase by 1 at a 1% Chance per one Character per day
-20:42 mahboubine basic question: I've calculated the derivative of some function f, then I was asked to calculate f'(x) at some point c. I did this and the result was an undetermined form (5/0) where do I move from there?
-20:43 pavonia Guest5398: I guess it's a matter of definition if the chance after N days is 0.01*N or (1.01)^N
-20:46 serveee why is topology so hard to understand
-20:47 Galois it's a lot easier if you know real analysis well
-20:48 Galois metric spaces are already an abstraction of Euclidean space, and one which is useful in many ways, but abstracting to open and closed sets is a perfectly natural next step, and that gives you topology
-21:17 Z-module mahboubine: what's your f, and your c ?  f might not actually be differentiable at c
-21:20 mh_le Z-module: pm?
-21:33 mahboubine I was overthinking the whole thing
-22:20 adder I'm trying to do IDWDS on a three table game, but I'm not sure how. Can someone help? |  | Ann | Bob | Carla |
-22:21 adder | ----- | --------- | --------- | --------- |
-22:22 adder | Ann   | (2, 0, 1) | (2, 0, 1) | (2, 0, 1) |
-22:23 adder | Bob   | (2, 0, 1) | (0, 1, 2) | (0, 1, 2) |
-22:24 adder | Carla | (2, 0, 1) | (1, 2, 0) | (1, 2, 0) |
-22:25 adder 
-22:35 int-e Hmm. the label on the 2nd (or is that 4th) figure should be "Anna votes for A".
-22:36 adder Ah, that makes sense.
-22:37 int-e adder: But that seems to be the only thing wrong with it... what are you having trouble with?
-22:38 adder Nothing, it checks out now.
-22:39 adder Thanks, int-e.
-22:40 int-e Cool, np.
+16:26:58 ryu ty. cya
+16:27:05 epiphany cya all
+16:27:31 anom13 What was the problem with radicle?  Reliability or features?
+16:28:01 upgrayedd different way of handling things entirely
+16:28:04 frieren-elf64 we just wanted to push but it was so hard to get working
+16:29:03 upgrayedd its a local-first collab git, so everyone has and maintains their view, and then decide whats the mainline which adds an unneccessary extra step on normal git operations
+16:29:18 hero is this the new darkfi git https://git.dark.fi/darkrenaissance/darkfi/ 
+16:29:20 chadbot Title: darkrenaissance/darkfi: Anonymous. Uncensored. Sovereign. https://dark.fi - DarkFi
+16:29:29 frieren-elf64 yes
+16:29:33 frieren-elf64 hey hero
+16:29:35 upgrayedd XD
+16:29:40 hero hey yo
+16:29:45 upgrayedd not fully migrated yet, its the dev testing one
+16:29:56 hero okk 
+16:29:56 anom13 upgrayedd:  I could see how that workflow would be tough.  Thanks for the insight.
+16:30:12 upgrayedd yeah its also prone to mistakes in terms of keeping anonimity
+16:31:07 anom13 Yeah, the anonymity stuff is definitely a problem.  Even with Tor there is a fair amount of info in the p2p network from what I was able to tell.
+16:31:07 upgrayedd but overall its a good platform to host repos in decentralized manner for single devs or signle authority teams
+16:43:42 frieren-elf64 dasman: 1. install openspec using the command here https://openspec.dev/  2. unzip this in bin/app https://agorism.dev/uploads/openspec.zip   3.  run `openspec init` and choose opencode (or ur preferred cli)  4.  start opencode and type `/opsx-apply`
+16:43:42 chadbot Title: OpenSpec — A lightweight spec‑driven framework
+16:44:19 frieren-elf64 also review the files in openspec/changes/darkirc-reverse-dag-sync/
+16:44:51 frieren-elf64 i read it too but i dont have enough context for the impl recommendations
+16:51:34 dasman alrighty, tyty
+16:52:10 frieren-elf64 lmk how u get on, this is a kinda test for this workflow
+16:55:04 dasman https://i.programmerhumor.io/2022/10/programmerhumor-io-javascript-memes-frontend-memes-539f27d89106d2a.jpg
+16:59:45 frieren 😆
+17:15:26 frieren-elf64 shayan where is this one abt connectivity stuff?
+17:15:30 frieren-elf64 where is the branch?
+17:15:55 frieren-elf64 i actually noticed its connected but it seems to be evgr sync issues
+17:18:55 shayan fireren-elf64 I have some confusion abt branches and the changes I remade give me some time Ill find and tell.. 
+17:21:20 shayan I finish this as you said tho: 
+17:21:34 shayan bin/app: route lifecycle events through event publisher commit:  205823e959 
+17:23:15 shayan tested, working as expected: 
+17:23:17 shayan 3 ob conn - scren on/app on
+17:23:19 shayan 1 ob conn - screen off/app bg
+17:23:41 shayan leaved in background for 3 - 4 hour, when turn back was able to recieve and send messages.. 
+17:26:16 shayan with connectivity patch something is not adding up I migrate it from core lib to bin/app and fck't up somewhere.. will dig into it and after will tell
+17:31:03 frieren-elf64 did u try the instructions i gave u in random
+17:31:13 frieren-elf64 again 3rd time im saying this
+17:33:34 shayan haven't tried that yet. I got busy with your suggestion about moving the lifecycle handling into bin/app and routing it through /window, plus the connectivity confusion. I have it noted though — as soon as I fix this shit I created, that's next.
+17:56:53 shayan frieren-elf64: https://dpaste.com/64FJBRTCV.txt
+17:59:59 shayan fck don't bother to look that that link.. still didn't solve all the issues
+19:20:59 line may I ask where is the latest git I can pull
+19:21:34 shayan https://git.dark.fi/darkrenaissance/darkfi
+19:21:36 chadbot Title: darkrenaissance/darkfi: Anonymous. Uncensored. Sovereign. https://dark.fi - DarkFi
+19:21:44 line thats self hosted?
+19:22:05 line wtf is this nice
+19:23:04 shayan │17:29:45     upgrayedd │ not fully migrated yet, its the dev testing one    
+19:23:56 line thats cool
+19:24:05 line ty
+19:24:22 shayan np
+20:08:31 line I compiled the app on arch, I am comfused as it does show the wallet, if I reach chat, I dont seem to be able to reach back the wallet view. Would also be great to have a visual tutorial uppon first launch (I can try if you guys not already working on this)
+20:10:03 shayan I have same issue on android: I can see the wallet just on fresh start but if I leave that screen no way to turn back.. 
+20:33:23 line how do you propose PR on that dev gog repo shayan? Or you still use codeberg/github?
+20:42:11 shayan pushing on codeberg without creating new PR and sendind the commit id
+20:43:17 line i see
+20:48:57 frieren-elf64 we are waiting for urs work
+20:49:01 frieren-elf64 the buttons are fucked up
+20:51:00 line I mean
+20:51:09 line frieren-elf64 the back button seems to be there
+20:51:18 line its just transparent overlay and weird placement
+20:51:29 line there is even a flag for first launch for a future tutorial
+20:51:35 line and settings fully commented
+20:52:25 frieren-elf64 there is no future tutorial in there
+20:52:33 line no
+20:52:36 frieren-elf64 and the button is in the bottom right behind the menu
+20:52:41 frieren-elf64 the wallet button
+20:52:47 frieren-elf64 u can click it but its hard
+20:52:50 line but a first_time marker file already exists and an is_first_time flag flows through startup
+20:53:14 line that could be a great starting point of a tutorial lol
+20:53:30 frieren-elf64 i believe the app shud be intuitive enough to have no tutorial
+20:53:35 frieren-elf64 i hate tutorials in apps
+20:53:40 frieren-elf64 it shud be work and go
+20:53:46 frieren-elf64 no setup etc
+20:53:46 line I mean
+20:53:49 line Building blocks (overlay layers with z-index/priority, multi-step wizard pattern from the wallet send flow) are all there
+20:53:56 line So I am guessing someone tought it was a good idea
+20:54:00 frieren-elf64 where?
+20:54:02 frieren-elf64 no there isnt
+20:54:02 line and possibly already working on
+20:54:04 line one sec
+20:54:14 frieren-elf64 where there is def no wizard in the app
+20:54:25 frieren-elf64 the ui design is strongly anti wizard
+20:54:42 frieren-elf64 as much as possible try to make things stateless
+20:54:56 line there is no wizard in the app yet I KNOW
+20:56:46 line First launch: first_time marker (~/.cache/darkfi/app/first_time, created in schema/mod.rs:677-684) and is_first_time flag exist but nothing consumes them. No tutorial UI exists. Overlay + multi-step wizard patterns already exist in the codebase (chat select_layer z100/p100; wallet send_step1..4 layers).
+20:57:34 line Im just saying
+20:57:37 line Because I opened
+20:57:43 line Saw the token/wallet UI
+20:57:44 epiphany no wizard here, only magicians
+20:57:48 line hahaha
+20:57:58 line then sadly lost the wallet view forever
+20:58:06 line it is overwhelming for a newcommer
+20:58:50 anon 🤣
+20:59:08 epiphany wallet's step layers aren't a wizard at all, they are just named like that because they must be shown in the right order
+21:06:28 shayan gn
+22:18:38 frieren-elf64 line theres a button but urs is styling it
+22:18:59 frieren-elf64 urs, in the future do one thing -> we merge -> do another thing -> we merge and talk more
+22:19:37 frieren-elf64 its a lil silly to go quiet a week, do 5 features and then we have to untangle it all
+22:41:23 frieren-elf64 gnnn
+10:03:47 shayan gm
+10:03:48 anom13 gm
+10:03:48 ryu gm
+10:03:48 urs gm
+10:03:48 dubh gm
+10:04:39 frieren-elf64 gm
+12:02:11 frieren-elf64 grug here???
+12:02:16 grug Yep hi
+12:02:25 frieren-elf64 hey did u get my dm?
+12:02:45 grug Yes sec let me reply
+12:02:51 frieren-elf64 ok ty
+12:07:16 frieren-elf64 grug, upgrayedd so abt openspec
+12:08:21 frieren-elf64 basically lets say i want to make a new feature but its vague. i do `/opsx-explore desc of feature`, it will do an in depth deep search of codebase to figure everything out and create structured docs around that
+12:09:20 frieren-elf64 then u basically talk with ur ai tool like claude/opencode etc to refine the design further. once ur ready to go into impl phase and have made choices then u do `/opsx-propose`
+12:09:41 frieren-elf64 it then creates a subdir inside openspec/specs/<feature> with design.md proposal.md and tasks.md
+12:09:49 frieren-elf64 these are meant to be committed to the repo
+12:09:50 grug Is this in opencode or another tool?
+12:09:54 frieren-elf64 its any tool
+12:10:01 frieren-elf64 its a plugin for those tools
+12:10:06 grug aha
+12:10:20 frieren-elf64 then if for example i want grug or dasman to review the feature, they just git pull and review the spec
+12:10:33 frieren-elf64 then they can refine it further etc
+12:11:13 frieren-elf64 so for example with tasks.md u can specify its done in 4 phases like a migration with testing between each phase
+12:11:42 frieren-elf64 then it will do tasks from phase 1, pause until u say continue .etc
+12:11:51 frieren-elf64 it makes collab around dev plans much easier i think
+12:12:12 frieren-elf64 and also we can just propose half assed ideas that ppl can pickup and refine then ask us for feedback before impl
+12:12:30 frieren-elf64 its like a collaborative beefy plan mode for teams to work on
+12:13:08 frieren-elf64 lastly once its finished, u do /opsx-archive, it then turns the  spec for that feature into part of a living ongoing architecture doc 
+12:13:40 frieren-elf64 so that when ur ai tool is coding it doesnt make stupid mistakes but actually has memory of internals and context around proj structure .etc
+12:14:21 frieren-elf64 grug, if u wanna test, i gave this to dasman abt the evgr2 backsync topic yday
+12:14:22 frieren-elf64 1. install openspec using the command here https://openspec.dev/  2. unzip this in bin/app https://agorism.dev/uploads/openspec.zip   3.  run `openspec init` and choose opencode (or ur preferred cli)  4.  start opencode and type `/opsx-apply`
+12:14:23 chadbot Title: OpenSpec — A lightweight spec‑driven framework
+12:14:30 grug Yeah sounds good to me
+12:14:45 grug Lemme try
+12:15:12 frieren-elf64 theres also other tools like this https://github.com/gytis-ivaskevicius/peck but i just tried openspec so far
+12:15:13 chadbot Title: GitHub - gytis-ivaskevicius/peck · GitHub
+12:15:46 frieren-elf64 sry the features go in openspec/changes/ whereas the living arch is in openspec/arch/
+12:16:03 frieren-elf64 rn i use it in bin/app/ but maybe we will use it just in the proj root directly
+12:16:36 grug Yeah prob better to have it overall
+12:16:53 grug Give me a bit to set it up and check
+12:17:42 frieren-elf64 yep
+12:22:17 grug So this dir should be in bin/app/openspec/ ?
+12:23:07 frieren-elf64 yep
+12:23:13 frieren-elf64 w changes and specs inside
+12:24:49 grug ok now the llm asks me which change it should apply
+12:24:57 frieren-elf64 openspec list
+12:25:31 grug I'm trying in codex
+12:25:53 grug Yeah it's working
+12:26:14 frieren-elf64 theres also continue and ff commands
+12:27:21 frieren-elf64 https://openspec.dev/docs/the-workflow
+12:27:21 chadbot Title: Workflows — OpenSpec
+12:27:29 grug ok cool
+12:27:46 grug If we put this in root then we can also have a good task tracker in the repo itself
+12:28:08 grug It will also probably have a better context of the repository this way
+12:28:58 grug We can try peck too to see if it's less verbose
+12:29:18 frieren-elf64 yep exactly
+12:29:21 frieren-elf64 try this too
+12:29:23 frieren-elf64 openspec config profile
+12:29:28 frieren-elf64 sudo openspec update
+12:29:50 frieren-elf64 (go to workflows and add all the commands)
+12:30:24 grug aha sweet
+12:30:36 grug btw you can do it all without root if you change the npm prefix to something local
+12:30:57 frieren-elf64 ah yeah thats better
+12:31:37 grug https://github.com/gytis-ivaskevicius/peck#why-no-architecture-docs
+12:31:38 chadbot Title: GitHub - gytis-ivaskevicius/peck · GitHub
+12:31:43 grug I think this is pretty reasonable
+12:37:40 frieren-elf64 i actually like detailed plans tho, often it will give sth confused and u have to keep hammering and hammering
+12:37:59 grug Depends on prompt proficiency
+12:38:08 grug I'd like to try peck tho
+12:38:14 frieren-elf64 yeah try it
+12:38:18 frieren-elf64 no rush to adopt any one tool
+12:38:23 frieren-elf64 lets check back in a week or 2
+12:39:06 grug We'll likely need more than one anyway
+12:39:17 grug This is also just for impl stuff
+12:39:40 grug We need somehow to also do auditing and have it all tightened down
+12:41:20 upgrayedd use a metarepo...
+12:41:26 upgrayedd don
+12:41:36 upgrayedd ''t put bloat inside the repo
+12:44:49 upgrayedd "sudo openspec" hell to the nah lol
+12:45:03 dubh lol
+12:47:39 grug ah ok peck understands how to do auditing as well
+13:02:17 frieren-elf64 epiphany: git pull, i put the URL to the public darkfid instance, the wallet seems to connect but idk if its syncing since the status logo remains unchanged
+13:03:16 grug frieren-elf64: Should be tcp+tls not tcp
+13:03:47 grug Also it's the wrong domain
+13:05:11 epiphany frieren-elf64: also theres 4 states for the indicator: disconnected (the red one), syncing (<50%), syncing (>50%), synced
+13:05:41 frieren-elf64 ahhh ty grug
+13:06:24 grug :D
+13:07:06 upgrayedd did you even test before pushing? XD
+13:08:47 anon upgrayedd a luddite
+13:09:31 line upgrayedd what do you think about the points I mentionned
+13:09:37 line I built app on arch
+13:09:59 line wallet button weird and confusing
+13:10:13 line aaactually all buttons
+13:10:28 upgrayedd dunno haven't checked the gui out
+13:10:29 line and is_first_time could be used for a "tutorial"
+13:10:42 anon upgrayedd doesnt use soygui
+13:10:48 line XD
+13:11:02 line Me neither that is why I propose these
+13:11:13 frieren-elf64 well its weird
+13:11:30 line so I can bring friends
+13:11:50 line friends dummmy they want to create and join private chats easily
+13:12:49 frieren-elf64 its weird cos with the wrong url tcp://node.dark.fi i saw the DRK token
+13:13:02 frieren-elf64 but now i updated the url and it still works but it doesnt seem to sync
+13:13:19 frieren-elf64 const DARKFID_ENDPOINT: &str = "tcp+tls://node0.testnet.dark.fi:18340";
+13:13:49 frieren-elf64 or maybe thats just cos of enable-plugin-drk?
+13:14:18 frieren-elf64 epiphany, any idea?
+13:14:37 urs line: try builing my branch: https://codeberg.org/eliedinner561/darkfi/commits/branch/menu
+13:14:54 urs i worked on a lot of the buttons e.g the wallet button on main screen
+13:23:05 epiphany frieren-elf64: iirc it adds a DRK row at the top of the token table even if you have no DRK
+13:23:59 epiphany one sec i'm building with that endpoint
+13:24:14 frieren-elf64 ty
+13:27:25 line ty urs
+13:27:40 line I am excited just trying to figure out how will I bring friends lol
+13:35:22 epiphany frieren-elf64: port 18340 is inbound p2p, drk needs the rpc endpoint
+13:36:58 grug oh that wasn't told to me :D
+13:37:08 grug upgrayedd: Can we make node0/1 have public rpc?
+13:38:20 upgrayedd grug: what are you asking? XD
+13:39:21 grug To change it from localhost listen to tcp+tls public-facing
+13:41:50 frieren-elf64 urs in the future 1 branch per feature not 1 branch for 5 features
+13:42:04 frieren-elf64 1 branch -> ask for merge
+13:42:12 upgrayedd grug: yeah sure, just check if the management port is active
+13:42:53 grug ok
+13:48:18 urs frieren-elf64: alright
+13:48:59 frieren-elf64 lookup git worktrees
+13:49:09 frieren-elf64 u can have a bunch of branches in parallel
+13:53:38 grug frieren-elf64: tcp+tls://node{0,1}.testnet.dark.fi:18345
+13:53:51 frieren-elf64 testoing
+14:00:59 upgrayedd grug: you see the rpc spam right? XD
+14:04:21 frieren-elf64 const DARKFID_ENDPOINT: &str = "tcp+tls://node0.testnet.dark.fi:18345";
+14:04:24 frieren-elf64 doesnt werk :/
+14:05:08 grug The rpc is accessible so it's a problem with your stuff
+14:05:17 grug rlwrap openssl s_client -connect node0.testnet.dark.fi:18345
+14:05:22 grug {"jsonrpc":"2.0","method":"ping","params":[],"id":1}
+14:05:26 frieren-elf64 epiphant FIX IT!
+14:05:30 frieren-elf64 NAO
+14:05:43 epiphany NO
+14:05:48 frieren-elf64 do something NOW
+14:06:24 frieren-elf64 12:05:54 [INFO] plugin::drk: Attempting to connect to darkfid daemon at tcp+tls://node0.testnet.dark.fi:18345
+14:06:24 frieren-elf64 12:05:54 [ERROR] plugin::drk: Failed during drk scanning: WalletDbError::GenericError
+14:06:24 frieren-elf64 12:05:54 [INFO] plugin::drk: Retrying connection to darkfid in 20 seconds...
+14:06:34 grug upgrayedd: I dunno if the listener.next stuff is actually rpc or p2p
+14:06:54 grug But shouldn't matter in any case, it's just a failed conn log
+14:07:06 frieren-elf64 i tried that cmd grug
+14:07:08 frieren-elf64 i get errors
+14:07:14 grug impossibru
+14:07:16 frieren-elf64 Verification error: self-signed certificate
+14:07:38 upgrayedd grug: does https werk?
+14:07:42 grug Call the police then to provide you a cert
+14:07:46 upgrayedd XD
+14:07:54 epiphany lmao
+14:08:27 grug upgrayedd: It doesn't need https
+14:12:04 upgrayedd grug: yeah tested it with drk it werks
+14:12:10 upgrayedd its an app issue
+14:12:27 frieren-elf64 oh
+14:12:30 frieren-elf64 its the ipv6 addr
+14:12:33 frieren-elf64 its not working
+14:12:41 frieren-elf64 [2001:41d0:...:233]:18345 (IPv6) — connection refused
+14:12:47 upgrayedd lmao so its your net again XD
+14:12:50 frieren-elf64 the domain resolves to that
+14:12:57 grug ipv6 causing more trouble than it's useful
+14:13:25 frieren-elf64 hmmm ping works 
+14:13:27 frieren-elf64 ping 2001:41d0:1004:49a:abcd:ef01:2345:233
+14:13:52 grug It's only listening on the ipv4 socket because we didn't add multiple-listener support to the RPC thing
+14:14:13 grug tbh we should just remove AAAA records lol
+14:14:28 frieren-elf64 ohhhh
+14:14:41 frieren-elf64 just add the ipv6 listeners
+14:14:44 frieren-elf64 [::]
+14:14:56 frieren-elf64 oh nvm i re-read wat u said just now
+14:14:58 grug No RPC doesn't do an array
+14:15:00 frieren-elf64 ok
+14:15:02 grug It needs more cooding
+14:18:40 frieren-elf64 ok trying ipv4 rpc
+14:22:42 frieren-elf64 coooool workking
+14:22:58 epiphany it werks im syncing
+14:23:07 epiphany oh too late
+14:23:13 frieren-elf64 XD
+14:23:21 frieren-elf64 yru twerking
+14:27:24 frieren-elf64 https://agorism.dev/uploads/darkfi-app.apk
+14:27:41 frieren-elf64 try on ur phones guys
+14:28:00 frieren-elf64 12/10 best free virus
+14:28:09 upgrayedd fix the repo commit
+14:28:39 grug lmao
+14:28:48 frieren-elf64 shall i put domain or ip? cos domain doesnt work yet
+14:29:00 upgrayedd domain works...
+14:29:04 frieren-elf64 it doesnt
+14:29:19 upgrayedd it doesn't in your network
+14:29:23 epiphany im syncing with domain rn
+14:29:27 upgrayedd thats not representantive of rest of the world lol
+14:29:34 frieren-elf64 its not my network
+14:29:50 frieren-elf64 the domain has ipv6 record. darkfi json doesnt do ipv4 fallback, it just fails
+14:29:57 grug You're the only one using ipv6 here
+14:29:58 upgrayedd 3 people here on diff networks tell you that domain works
+14:30:13 frieren-elf64 yes cos they use ipv4
+14:30:20 upgrayedd like most of the world yes
+14:30:22 grug >not my network
+14:30:28 grug #notmynetwork
+14:30:42 frieren-elf64 half the world uses ipv6
+14:30:50 grug I'll just cd kode and fix it
+14:30:50 epiphany the wrong half
+14:30:56 grug lol
+14:31:00 frieren-elf64 ok ill put domain then
+14:31:00 upgrayedd ++
+14:31:35 upgrayedd better yet, fix up the configurable settings
+14:31:46 upgrayedd so everyone puts whatever and we don't have to deal with the hardcoded stuff anymore
+14:31:54 frieren-elf64 not in this release
+14:32:11 grug virus-free no config
+14:32:38 frieren-elf64 next release has settings, themes, plugins
+14:32:43 frieren-elf64 + dex + bridge
+14:33:13 frieren-elf64 and multi-token (rn is just drk)
+14:34:55 upgrayedd lol anything else? maybe a lazor?
+14:36:55 frieren-elf64 thats pretty basic in terms of phone wallets. maybe u shud try some out
+14:38:39 frieren-elf64 edge, exodus, metamask, phantom, solflare, uniswap, zashi, cake, unstoppable
+14:39:03 frieren-elf64 they all got some basic multi token wallet + swaps going on (zec zashi uses near intents)
+14:39:10 upgrayedd none of those tries to be a super app.... in any case I was being sarcastic lol
+14:39:35 frieren-elf64 okkkk
+14:40:02 frieren-elf64 i just think this core featureset is essential for user accrual
+14:52:53 grug Pushed the RPC "fix"
+14:52:59 grug Will restart darkfids as soon as they compile
+14:58:45 frieren-elf64 noooooice
+15:03:35 grug Should be ok now
+15:03:41 grug In your half of the world :p
+15:03:56 upgrayedd grug: you see the rpc is something hitting it constantly
+15:04:03 upgrayedd since you restarted it its still spamming
+15:04:05 upgrayedd so not p2p
+15:04:24 grug Why does it matter?
+15:04:51 grug It's a public node ofc it's gonna be spammed
+15:05:38 grug A lot more things are happening but just this one is loud so you're noticing :D
+15:05:44 upgrayedd don't say it does, its just a spammy log
+15:05:55 upgrayedd yeah I know just saying if something slipt through the cracks XD
+15:06:07 grug It didn't it's just the unhandled code path
+15:06:19 grug It's loud so it gets handled
+15:06:22 upgrayedd handle it XD
+15:06:58 grug I don't want to stop the node now since they're working on the app
+15:07:03 grug It literally doesn't matter
+15:07:19 anon its alive
+15:07:20 grug I'd have to run in debug and catch it
+15:40:06 grug frieren-elf64: This is what peck+opencode produced with gpt-5.6: https://termbin.com/yq775
+15:40:20 grug frieren-elf64: I asked it to check the p2p stack and lilith as an example task/project
+15:41:09 grug It made an initial plan and then asked some follow up questions
+15:41:14 grug Was pretty straightforward
+15:41:53 grug The text is a bit dense though
+15:42:48 frieren-elf64 u can choose
+15:43:44 grug However it does seem to understand the architecture really well
+15:44:16 frieren-elf64 main thing is i want to spec features for domain specific devs to impl
+15:44:27 frieren-elf64 i like openspec has the 3 docs: proposal, design and tasks
+15:45:08 frieren-elf64 this means we can avoid confusion where dev gets task, makes mistakes, we have to repeat. the spec ensures there will be minimal misunderstanding upfront
+15:45:24 grug ++ definitely
+15:45:33 frieren-elf64 then they can modify and restructure, ask for review .etc before executing
+15:45:47 grug I'll try openspec with the same task and compare
+15:46:19 grug Keep in mind probably a lot of this also depends on the model being used
+15:46:25 grug And how "smart" it is
+15:47:07 grug But I like it
+15:47:25 frieren-elf64 try openspec for impl a feature
+15:47:28 frieren-elf64 and try explore mode first
+15:47:49 frieren-elf64 for example "how can we ensure packets are within nym packet size"
+15:48:11 frieren-elf64 btw maybe we should use QUIC by default?
+15:48:31 grug We should test it a bit before migrating but yeah I'm for it
+15:49:46 frieren-elf64 cool i think it will speed up dev
+15:53:31 grug If we don't use it we'll fall behind
+15:53:39 grug Adapt or die lol
+15:54:20 frieren-elf64 yk how the auditing companies are spamming us
+15:54:24 frieren-elf64 rough time for them
+15:54:30 grug :D
+15:54:46 frieren-elf64 ik a big one just went rekt after pouring millions into a static analysis software for smart contracts
+15:55:05 frieren-elf64 and ik a dev shop just let go of 35 devs and closed down after 8+ yrs
+15:55:23 grug Yep
+15:55:33 grug Not surprised
+16:05:18 grug frieren-elf64: Would it be possible to make a release (nondebug) build of the apk?
+16:05:31 grug I tried myself but when I open it it immediately crashes
+16:05:41 grug Didn't use podman but build natively
+16:06:25 frieren-elf64 can u share logfile?
+16:06:29 frieren-elf64 it will have the crash bt
+16:06:49 frieren-elf64 /Android/data/darkfi.darkfi_app/files/darkfi-app.log
+16:07:10 grug lmc
+16:08:45 grug /system/bin/sh: cd: /Android/data/darkfi.darkfi_app/files: No such file or directory
+16:09:16 frieren-elf64 i just dont see why making a release will change anything
+16:09:20 grug I don't think the app actually even opens
+16:09:23 frieren-elf64 cd /sdcard/
+16:09:30 frieren-elf64 ls
+16:09:32 frieren-elf64 cd Android
+16:09:33 frieren-elf64 .etc
+16:09:34 grug It's also not there
+16:09:58 frieren-elf64 ru connected via adb?
+16:10:04 grug ofc
+16:10:09 grug debug builds are a lot slower
+16:10:16 frieren-elf64 make log-apk
+16:10:19 frieren-elf64 try this cmd
+16:10:31 grug So it might be better to build release and just add debug symbols if you're interested in those
+16:10:37 frieren-elf64 ah yes debug is a lot slower true but i meant for the crash
+16:12:58 frieren-elf64 cargo quad-apk build --no-default-features schema-app,enable-plugin-drk,enable-plugin-darkirc
+16:13:06 frieren-elf64 oops
+16:13:11 frieren-elf64 cargo quad-apk build --no-default-features schema-app,enable-plugin-drk,enable-plugin-darkirc --release
+16:13:14 grug Yeah I built it like that
+16:13:37 frieren-elf64 enable-filelog
+16:13:40 frieren-elf64 for the file logging
+16:13:44 grug Android says: java.lang.UnsatisfiedLinkError: dlopen failed: TLS symbol "(null)" in dlopened
+16:13:57 frieren-elf64 full bt?
+16:14:06 grug I used this: cargo quad-apk build --release --no-default-features --features=enable-filelog,enable-netdebug,enable-plugins
+16:15:02 frieren-elf64 needs
+16:15:05 frieren-elf64 schema-app too
+16:15:17 grug https://paste.centos.org/view/0832230f
+16:15:23 frieren-elf64 it needs a schema
+16:16:17 frieren-elf64 update quad-apk?
+16:16:31 frieren-elf64 https://github.com/not-fl3/cargo-quad-apk/
+16:16:47 grug I installed the latest one with `cargo install --git <that url>`
+16:16:50 grug Lemme try with schema
+16:17:26 frieren-elf64 oh hmmm
+16:18:21 grug Is there a chance that it created an x86 apk?
+16:18:38 upgrayedd XD
+16:19:45 frieren-elf64 no its cross platform
+16:19:47 frieren-elf64 all targets
+16:20:24 frieren-elf64 62efc1f13b48846790a137a75aef6dc082e0737d
+16:20:28 frieren-elf64 i wonder if related to this
+16:21:18 frieren-elf64 wtf is TLS symbol "(null)"
+16:22:12 grug Some thread-local-storage mismatch ig
+16:22:26 grug Doubt it's related to that commit
+16:22:43 grug I'll investigate more l8r
+16:23:05 upgrayedd that commit looks wrong tho
+16:23:36 upgrayedd why would merkle and util be guarded behind wasm32 arch?
+16:23:45 upgrayedd the sdk is not just for wasm
+16:24:08 frieren-elf64 hmm lemme check
+16:24:34 frieren-elf64 these are wasm fns
+16:24:53 frieren-elf64 they dont exist in native abi
+16:25:24 upgrayedd 1) What
+16:27:20 frieren-elf64 idgi
+16:27:30 frieren-elf64 sparse_merkle_insert_batch_()
+16:27:30 upgrayedd ah saw it its the merkle and util inside sdk/src/wasm
+16:27:36 frieren-elf64 okkkk
+16:27:43 frieren-elf64 yep
+16:28:04 frieren-elf64 linux doesnt resolve this so no dlopen crash but android does and gives dlopen crash
+16:30:56 grug Crazy
+16:32:59 frieren-elf64 grug https://agorism.dev/uploads/ANDROID_TLS.md
+16:35:21 anon I built it with schema and it works now
+16:35:23 anon lol
+16:35:47 anon Damn still no text selection 😆
+16:36:33 frieren-elf64 yes there is
+16:37:14 frieren-elf64 long hold
+16:38:12 frieren-elf64 copy is top right, remove sel is top left
+16:38:19 frieren-elf64 nothing is shown waiting on buttons from urs
+16:38:26 frieren-elf64 but u can click them
+16:38:38 grug ah yeah it's weird without the btns
+16:38:51 grug The longhold timeout is a bit too long imo
+16:39:02 frieren-elf64 yeah maybe its like 2s
+16:39:10 frieren-elf64 also URLs are clickable and copyable
+16:39:31 grug Yeah it's cool
+16:39:43 grug I can give you this kind of annoying feedback if you're interested
+16:39:45 grug :D
+16:39:48 frieren-elf64 yes
+16:40:04 frieren-elf64 more eyes makes bugs swallow
+16:40:12 grug kk, lemme use it for a bit then
+16:40:27 urs frieren-elf64: have you also seen my other commits with the buttons etc.?
+16:40:29 frieren-elf64 - steve jobs creator of linux
+16:40:41 frieren-elf64 urs menu branch?
+16:40:46 urs yes
+16:40:48 frieren-elf64 i looked at all the commits
+16:40:54 frieren-elf64 but theres too much random stuff mixed in
+16:41:19 urs wdym? the android commit?
+16:41:21 frieren-elf64 changes to core code must not be part of styling, should be separate branches
+16:41:38 frieren-elf64 idgi do i need to check again today?
+16:42:05 urs both the commits you mentioned before are not in the brach anymore - moved to experimental until i fully understand etc.
+16:42:10 frieren-elf64 ok
+16:42:12 frieren-elf64 checking
+16:42:52 urs apart from the buttons i also tried to act on my own, as you wanted me to and e.g made the version block look like in the designs more
+16:43:16 frieren-elf64 ok already looks much better
+16:43:24 urs the headers are also unified now, looking like in the design
+16:43:24 frieren-elf64 i will look more closely later and if its good merge
+16:43:38 frieren-elf64 super lemme compile and run
+16:44:19 urs i spent time studying the key generation part, as far as i can tell it looks good, but needs an extra eye to be sure
+16:45:55 frieren-elf64 cool ty
+16:48:46 urs its not much different from other things, just uses the random OsRng module to generate a random number based on some 'environmental parameters'
+16:49:36 urs also i used openspec recently to get a better understanding of the general infra. like from display touch to task execution
+16:49:50 urs it worked pretty well
+16:52:19 frieren-elf64 can u rebase master
+16:52:29 urs okay
+16:52:39 frieren-elf64 needs testing
+16:53:36 urs ++
+17:13:19 upgrayedd grug: latest commit broke the http rpc test, can you fix it? cargo test --release --all-features --workspace http_jsonrpc_reqrep -- --nocapture
+19:38:48 anon Yeah will do
+20:12:25 grug frieren-elf64: Where do you want me to write feedback for the app?
+20:12:40 grug I just have short notes, about a dozen
+20:13:06 frieren here?
+20:13:56 grug Sure, you can copy it down somewhere then 
+20:14:11 grug - IRC ACTION didn't seem to be rendered properly
+20:14:34 grug - Text selection has a too long timeout until it actually happens (also confusing but maybe gets better with the dedicated buttons)
+20:14:59 grug - It would be good to add swipe left/right screen gestures, e.g. swiping left can open the channel list
+20:15:30 grug - Backwards sync would be interesting to see in action, when scrolling up (there is an example in darkirc on how to do this)
+20:15:56 frieren i think it should just sync back even without scrolling up
+20:15:57 grug - When you scroll far back, it would be useful to have a button/gesture to scroll back down to newest messages immediately
+20:16:01 frieren theres too much network latency
+20:16:23 grug - Holding backspace in the input box doesn't delete
+20:16:31 grug - Missing completion for nicknames
+20:17:03 grug - Force Stop in android, when I opened the app again it reset the nickname to 'anon'. Not sure how persistent local state is handled
+20:17:22 grug - It would be good to have a setting that can stop p2p/net to save data
+20:18:03 frieren good feedback ty
+20:18:08 grug frieren: It can sync back but that can also abuse the data plan. There should be some realistic limit like 1-2 days. But then manually if you wanna go further you can show some progressbar or information that it's syncing further back
+20:18:27 frieren i think just 1-2 days default
+20:18:47 grug Yeah I think that's reasonable. And then if you wanna go further back it can trigger more sync
+20:20:58 grug It can look good if done properly
+20:21:29 grug Like you scroll back to top, and then one more scroll gesture can trigger it, and you can place some kind of wheel/bar that indicates that a sync is happening
+20:22:01 grug But it was a bit tedious to scroll back to newest from there so I thought something to jump back to present would be useful as well
+20:22:17 frieren-elf64 yeah lets see, will focus on fixing bugs in this release, maybe a couple of these items
+20:22:40 frieren-elf64 whats missing completion for nicknames? is that on desktop?
+20:22:51 grug Yeah no worries, just copy them down somewhere and we can add them as time goes
+20:23:00 frieren-elf64 yes agree abt the stop button for p2p too
+20:23:04 grug No, all feedback is for mobile
+20:23:16 frieren-elf64 how does that work? u mean text suggestion?
+20:23:29 grug Completion like if I start writing "fri.." maybe something can pop up
+20:23:39 grug (Not the dots)
+20:23:58 grug It doesn't even need to be a regex since you check from beginning of line
+20:24:14 frieren-elf64 ic maybe @fri or sth
+20:24:15 grug 2 or 3 chars would be enough to trigger it
+20:24:27 grug 1 char can be annoying since it would trigger too often
+20:24:50 grug And then whatever pops up would autocomplete a "frieren-elf64:"
+20:25:00 grug "frieren-elf64: " even
+20:25:38 grug @ could be good too maybe, if it pops up a small window with all the nicks
+20:25:57 grug It would have to be limited in height and scrollable tho
+20:30:00 grug upgrayedd: The test doesn't fail for me. What's the error you saw?
+21:53:12 frieren-elf64 ok gotcha ty
+21:53:16 frieren-elf64 gn all
+21:54:43 epiphany cya
+22:10:57 shayan cya
+22:11:06 shayan gn all too
+22:31:09 grug gn cya
+08:50:07 dasman for nick completion i would also suggest double tapping on a nick (as it appears on every msg line) automatically writes it down in msg text box
+08:50:07 dasman very useful for replys
+08:50:07 upgrayedd grug: Failed starting JSON-RPC server: URL parse error: http+tcp://127.0.0.1:{random_port}
+08:50:07 upgrayedd and then Error: Io(ConnectionRefused)
+08:50:07 upgrayedd grug: btw the warning was due to explorer since it was trying the rpc without tls
+08:50:07 upgrayedd set it for the correct transport and now everything is noice
+08:50:07 dasman frieren-elf64: tried opencode applied the spec built with deepseek (cuz why not :D), reviewed, built and tested everything verks perfectly 
+08:50:07 dasman i see you planned to use dag_sync_range() instead of catch_up_sync() as a future task which makes more sense to go page by page as opposed to sync all of newest dag as a whole
+08:50:08 shayan gm
+08:50:08 ryu gm
+08:50:08 anomie gm
+08:50:08 fc44arm64_8f16456cbNoTST interestingly on macbook air m4 all tests pass, build time about 78 minutes versus about 108 minutes on rk3588 with some tests skipped
+08:50:32 frieren-elf64 dasman i didnt plan anything D: i have no idea what any of it is saying
+08:51:38 frieren-elf64 nick double tap works cool
+09:18:25 dubh gm
+18:21:40 anon gm
+18:21:40 urs 'gm
+18:21:40 grug gm
+18:21:42 upgrayedd grug: passing now thanks
+18:21:42 dasman frieren-elf64: ah it's added as non-goal, to keep the reverse sync spec tight and focused 
+18:21:42 grug upgrayedd: gr8
+18:26:05 meruem urs, plz rebase master asap so i can merge
+18:26:11 meruem new changes should go on new branch
+18:26:16 meruem its exhausting i keep having to say this
+18:27:01 meruem the new branch is good tho and ready to merge i just need it rebased
+18:27:08 meruem feedback:
+18:27:10 meruem w / 2 + CONTENT_MARGIN * 3.0 - CHANNELS_ICON_SCALE * 1.6
+18:27:12 meruem dont like this formula, where did those magic consts 3.0 and 1.6 come from?
+18:27:14 meruem channels_icon_2? pick a better name
+18:42:36 grug meruem: Hey, I've been trying openspec today and I think I prefer it to peck actually
+18:42:52 grug meruem: I created custom agents however 
+18:43:04 grug meruem: But they can be refined if we decide to use this
+18:44:40 meruem so so cool custom agents
+18:44:53 meruem can u plz look at dasman work btw for backsync, just ack it
+18:45:11 grug I had claude opus help me design them
+18:45:46 meruem nice why do u use gpt, opus .etc instead of glm? do u find differences between them?
+18:45:55 grug Where is dasman's code?
+18:46:26 grug meruem: Yeah I use both gpt and opus back and forth and they get even better when you challenge them against each other lol
+18:46:28 meruem idk if it landed yet
+18:46:39 meruem oh sick
+18:46:42 grug You can tell gpt that opus made something and it gets very vigilant 
+18:46:55 grug So reviews better because it knows what the bad things with the other model are
+18:47:44 grug I've been following this https://github.com/Fission-AI/OpenSpec/blob/main/docs/workflows.md
+18:47:44 chadbot Title: OpenSpec/docs/workflows.md at main · Fission-AI/OpenSpec · GitHub
+18:51:23 grug meruem: Generally I've found gpt good at lowlevel and opus at ui/ux highlevel
+18:53:17 meruem so interesting!
+19:21:20 grug !topic openspec
+19:21:21 meetbot Added topic: openspec (by grug)
+19:23:09 dasman meruem: i haven't push my work, thought it's just review/test openspec 
+19:23:27 dasman i'll push later tonight, I'm having some guests rn 
+19:23:34 meruem yep ok ty
+21:57:27 lotus hi
+08:20:18 lotus I’m glad to be part of this community and to learn from everyone here. 
+08:20:18 lotus I also have a suggestion regarding the nickname autocomplete feature. I agree with Dasman’s suggestion, and I’d like to suggest another option as well: using the Tab key to autocomplete a nickname after typing the beginning of it!.
+08:20:18 shayan gn
+08:20:18 dasman meruem, grug: check latest commit, i can also share openspec dir externally so this step is checked from design
+08:20:18 dasman lotus: tab comletion for desktop, and double tap for android
+08:20:18 dasman tab and tap :D
+08:20:18 shayan gm
+08:20:30 frieren-elf64 gm
+08:20:51 frieren-elf64 ty dasman
+08:21:34 anon gm
+08:21:41 urs 'gm
+08:22:22 frieren-elf64 urs saw what i wrote yday?
+08:34:21 ryu gm
+08:34:49 frieren-elf64 https://zakura.com/engineering/key-agreement/
+08:34:50 chadbot Title: Faster Ironwood Key Agreement — Zakura
+08:34:50 frieren-elf64 exciting
+08:42:44 urs frieren-elf64: didn't see, will do now
+08:44:41 frieren-elf64 final tasks: 1. fix menu rendering 2. select timeouts 3. test backsync 4. see state filesize
+08:45:14 frieren-elf64 i wont do more than this unless its a bug. lets kick it out already
+08:46:09 urs gm
+09:05:00 dubh gm
+10:24:24 anomie gm
+10:54:29 frieren-elf64 urs wyd?
+11:02:53 urs i am moving the commits to a new branch and rebasing with master
+11:03:40 urs also you gave feedback on the magic numbers, so i will think how to position correctly without them
+11:04:16 urs on experiment branch i am trying to turn the search bar into the pub key display
+11:05:18 urs ah, and the channels_icon2, i am planning to rename them icon left and right and gray and green
+11:05:49 frieren great tysm, lets get the menu branch merged asap
+11:09:35 urs yes
+13:05:37 lotus dasman: ah perfect :
+13:06:36 anon GM DARKFRAUD SISTERS!! WEN MAINET
+13:06:38 anon REEEEEEEEEEEEEEEEEEEEEEEEEE
+13:28:40 frieren-elf64 can we get github mirror working again
+15:08:04 temp Test
+15:08:04 chadbot Test back
+15:55:10 gugu can someone send me some drk pls? 
+15:55:11 gugu fS5wCLrgnBMKempf5D5BK3GFGaMyP6AtBHrKJdXqN8Kx63HJJaXwBZB8
+16:22:36 frieren-elf64 sec spinning up my node
+16:35:43 frieren-elf64 syncing
+17:36:31 urs epiphany: i see this error compiling and it also effects the wallet https://bpa.st/HL26C
+17:36:31 chadbot Title: View paste HL26C
+17:52:29 epiphany urs: see those commits https://git.dark.fi/darkrenaissance/darkfi/commit/17da9178bf3b43825d3851be5576a50fac196553 https://git.dark.fi/darkrenaissance/darkfi/commit/12691bdca18ae35ab2dc5547444d9180cd6dd867
+17:52:31 chadbot Title: app/layer: migrate Layer to new trigger redraw paradigm. · 17da9178bf - DarkFi
+17:52:35 chadbot Title: app: migrate all remaining widgets to the new draw paradigm. remove RendererSync and batch IDs from gfx. · 12691bdca1 - DarkFi
+17:54:20 epiphany looks like wallet/main.rs was migrated
+17:55:39 epiphany so i guess it's a merging issue with your branch
+17:56:51 shayan my last build app size is behave wierdly.. the app size rising till 12gb and after dropping to 2gb and never settle.. 2 min ago was 6gb and now is 1.62.. any idea why thats happening? 
+18:00:38 upgrayedd its a debug build so logs are spammy af
+18:01:01 shayan aha.. thnx)
+18:01:02 upgrayedd everything is unoptimized so its expected
+18:03:54 frieren-elf64 logs are capped at 5mb tho
+18:04:07 frieren-elf64 weirdly had other ppl saying this
+18:04:27 frieren-elf64 maybe db related weirdness, would appreciate someone look into it
+18:04:30 frieren-elf64 bbiab
+20:55:16 shayan am still try to figure out how to make stable app with outbound reduce 3<>1 that's the fourth build for today)) 
+20:55:16 shayan this time feels it going to work tho.. 
+20:55:16 shayan last time it was behave when screen on/off but dropped all the peers when app bg.. and sometimes reclaim when fg, sometimes not.. hope this last attempt will solve that issue as well.. 
+20:55:16 upgrayedd frieren-elf64: most likely sled then, since its hella unoptimized when not on --release
+20:55:16 anon fS5wCLrgnBMKempf5D5BK3GFGaMyP6AtBHrKJdXqN8Kx63HJJaXwBZB8
+20:55:16 anon can only past half my wallet 
+20:55:16 anon or is the rest only seen on pc? (using android) 
+20:55:16 anon android app doesnt show CA fully
+20:55:16 grug frieren-elf64: We'll have a drop-in db replacement very soon
+20:55:16 urs epiphany: ty, okay will check again
+20:55:16 urs no, i already had the commit, so the errors seem independent of that
+20:55:16 urs should i just fix the missing ones also in /wallet? epiphany
+20:55:16 urs it's just one or two changes and the commits you mentioned show how to do it
+20:55:16 shayan does the upcoming drop in db affect the branch am currently working on? Shud I rebase/update against git.darkfi.fi master once that lands, or thats its irrelevant ? 
+20:55:16 epiphany urs: see your commit fcaaf76453d3f5bcd92dd82261917e98cbdf2a09
+20:55:16 urs hmm
+20:55:16 urs ic. ty
+20:55:16 epiphany np
+20:55:31 frieren-elf64 upgrayedd ohhhh ty i didnt know
+20:55:43 frieren-elf64 anon whats CA?
+20:56:09 frieren-elf64 shayan no dont worry
+21:02:03 shayan ok
+22:06:12 grug gn
+22:11:41 frieren-elf64 gn
+22:16:49 shayan cya
+22:34:25 anon /frieren-elf64 
+07:02:31 anon fS5wCLrgnBMKempf5D5BK3GF
+07:02:31 anon GaMyP6AtBHrKJdXqN8Kx63
+07:02:31 anon HJJaXwBZB8
+07:02:31 anon /frieren-elf64
+07:02:32 shayan gn
+07:03:05 shayan gm
+07:04:46 frieren-elf64 gm
+07:42:26 anomie gm
+07:54:13 urs gm
+09:00:05 ryu gm
+10:01:38 urs frieren-elf64: the work is now in menu/menu-buttons branch and i think things look good. one last thing i forgot, but it's quick, is to remove the search bar
+10:35:00 anon test
+10:35:00 chadbot test back
+10:35:10 bdass test
+10:35:10 chadbot test back
+11:14:47 frieren-elf64 ty
+11:14:52 frieren-elf64 urs great
+11:17:55 frieren-elf64 urs do u mean this branch? media/menu-buttons
+11:18:06 frieren-elf64 btw maybe delete some old branches
+11:18:12 frieren-elf64 altho nbd
+11:19:43 frieren-elf64 ty this looks much better
+11:27:55 urs yes, media/menu-buttons
+11:35:57 frieren-elf64 urs pushed ;)))
+11:36:20 frieren-elf64 i fixed the menu too
+11:36:39 frieren-elf64 grug fixed long press and bunch of stuff if u wanna test
+11:40:56 urs thx
+12:17:19 frieren-elf64 upgrayedd: i get this error for drk
+12:17:20 frieren-elf64 [scan_blocks] Generating scan cache failed: Database error: [get_money_secrets] Secret keys retrieval failed: WalletDbError::QueryPreparationFailed
+12:17:36 frieren-elf64 i havent used it in a while so did stuff change? guess i have to reset the db
+12:18:45 upgrayedd you still on rusqlite v?
+12:19:39 frieren-elf64 lemme update. been a while
+12:42:05 frieren-elf64 upgrayedd: send coins fXVHj32CiRAiA6751PoJJDrvT2YhCtdwijGn1B3wT257MZ4MEM2Hew3o
+12:44:34 upgrayedd pablo now
+13:07:44 anon ty
+13:16:34 frieren-elf64 yay
+13:30:28 frieren with backsync chat syncs near instantly
+13:31:01 frieren !list
+13:31:01 meetbot Topics:
+13:31:01 meetbot 1. openspec (by grug)
+13:31:07 frieren !topic wallet sync indicator
+13:31:07 meetbot Added topic: wallet sync indicator (by frieren)
+13:31:28 frieren !topic app next steps
+13:31:28 meetbot Added topic: app next steps (by frieren)
+13:39:05 frieren epiphany, when we create the wallet from scratch, we shouldnt scan from the start
+13:45:27 epiphany frieren: yep, adding a wallet restore height to drk was proposed some time ago for this
+13:45:38 frieren ah its a drk feature ok
+13:45:39 epiphany needs to be impl
+13:45:57 frieren rn im trying to sync a new wallet and its taking forever
+13:47:16 frieren eventually this can be fixed
+13:47:48 frieren https://zakura.com/engineering/key-agreement/
+13:47:49 chadbot Title: Faster Ironwood Key Agreement — Zakura
+14:14:08 frieren still syncing...
+14:15:34 frieren !list
+14:15:34 meetbot Topics:
+14:15:34 meetbot 1. openspec (by grug)
+14:15:35 meetbot 2. wallet sync indicator (by frieren)
+14:15:35 meetbot 3. app next steps (by frieren)
+14:15:38 frieren !deltopic 2
+14:15:38 meetbot Removed topic 2
+14:15:40 frieren !list
+14:15:40 meetbot Topics:
+14:15:40 meetbot 1. openspec (by grug)
+14:15:40 meetbot 2. app next steps (by frieren)
+14:19:02 epiphany maybe in the meantime we can just add a little text progress next to the sync indicator so you know stuff is happening
+14:19:44 epiphany i think the drk plugin already gets the data needed for this like how many blocks are remaining
+14:20:18 epiphany but yea we need drk to be able to start sync from wherever
+14:25:36 frieren yeah that indicator would be great, can u make it like 2% 5% etc?
+14:25:45 frieren just put it left of the icon
+14:26:09 epiphany yeah i guess
+14:26:30 epiphany can also make it like 123/1234 blocks
+14:26:48 frieren however u prefer tbh
+14:27:22 epiphany ok will do
+14:30:31 frieren tysm
+14:56:54 frieren 30 mns and still not synced, damn
+14:57:10 frieren this is gonna be a real issue
+15:10:15 frieren-elf64 RPC is a bottleneck
+15:11:13 frieren-elf64 sequential TLS roundtrips
+15:24:28 frieren-elf64 epiphany, is this change ok? https://agorism.dev/uploads/drk.diff
+15:26:59 shayan branch: android-reduce-outbound-on-screen-off
+15:27:01 shayan commit: b229f7f7b - bin/app: reduce outbound connections while screen is off
+15:27:03 shayan https://codeberg.org/shayan13g/darkfi-reports/src/branch/main/android-outbound-connection-reduction.md
+15:27:04 chadbot Title: Cookie monster!
+15:27:05 shayan ***
+15:27:07 shayan I know core lib is normally out of bounds, but couldnt figure out how to get the required peer-drop behaviour without touching it.. tried multiple builds and approaches, but none worked properly. 
+15:27:09 shayan I kept the change minimal, only added the cleanup in `OutboundSession::Slot::stop()` to drop connected peers.
+15:27:11 shayan ***
+15:27:13 shayan p.s. i stressed more right now than i did when i was crossing the minefield to get this sent out.. 
+15:31:18 epiphany frieren-elf64: looks ok
+15:31:54 frieren-elf64 shayan: check comment for P2p::reload() method. nothing needs changing in p2p
+15:32:45 frieren-elf64 upgrayedd: do we need to flush every block in drk? https://agorism.dev/uploads/rpc.diff
+15:32:49 frieren-elf64 can this work
+15:44:19 frieren-elf64 urs: https://dark.fi/book/dev/dev.html#cargo-fmt-pre-commit-hook
+15:44:20 chadbot Title: Development - The DarkFi Book
+15:44:26 frieren-elf64 i just run make fmt and fucked up my repo
+15:48:46 frieren-elf64 !list
+15:48:46 meetbot Topics:
+15:48:46 meetbot 1. openspec (by grug)
+15:48:46 meetbot 2. app next steps (by frieren)
+15:48:51 frieren-elf64 !topic github mirroring
+15:48:51 meetbot Added topic: github mirroring (by frieren-elf64)
+15:58:20 urs frieren-elf64: i am sorry, i thought i've done it
+15:58:23 urs won't happen again
+16:06:04 frieren-elf64 just add the hook
+16:10:03 urs will do
+16:10:28 frieren-elf64 epiphany signals can send data, u dont need to send a signal then also call get_balance, that is extra work
+16:14:29 frieren-elf64 i will amend this
+16:15:44 shayan fireren-elf64: bro, honestly don't get what you mean) i didnt touch p2p, just used P2p::reload() exactly like the comment says. only added that small `OutboundSession::Slot::stop()` so the connected peer actually gets dropped. do you mean that one? can you give bit more context - last time it took like 5 explanations, hopefully it will take less attemts this round lol)
+16:16:23 epiphany frieren-elf64: ok ty
+16:18:55 frieren-elf64 ahh ok shayan will look in a bit, currently deep in 3 ongoing major changes
+16:19:45 shayan ok tysm
+16:21:30 shayan https://codeberg.org/shayan13g/darkfi-reports/src/branch/main/android-outbound-connection-reduction.md - this is the report not the code
+16:21:31 chadbot Title: Cookie monster!
+16:21:47 line Hey I have a question. I see everyone on android mentionning the space it take and the battery drain. I understand the need of running our own nodes. its not expected in darkfi that you connect to someone else or public darkirc, darkfid or drk. It would leak privacy and wallets informations/keys right
+16:22:40 line But is this in the plan to let the app allow to connect to each binary considering some technical users might want to run each binary on a server and connect a GUI over them instead of bundling all of them on the device app running?
+16:29:22 frieren-elf64 line, wdym? dont use ui or use ui if u want, setup ur own darkfid local or connect to a remote either tcp or nym/tor .etc
+16:29:50 frieren-elf64 no keys are leaked
+16:30:04 frieren-elf64 !list
+16:30:05 meetbot Topics:
+16:30:05 meetbot 1. openspec (by grug)
+16:30:05 meetbot 2. app next steps (by frieren)
+16:30:05 meetbot 3. github mirroring (by frieren-elf64)
+16:34:46 line frieren-elf64 my point is if using app UI , you cannot set it to connect to a remote darkfid/darkirc that run on a 24/7 server with more bandwich or space or battery lets say
+16:35:04 frieren-elf64 in the future it will exist np
+16:35:12 line that is what I tough thank you
+16:39:07 frieren np
+16:43:47 frieren epiphany also in this update loop its looking up nodes repeatedly nonstop
+16:45:07 frieren oh wait nvm if its called periodically its fine (or only on an update)
+16:45:59 frieren ok this should only emit when balances actually change
+16:46:17 frieren i think rn it just blindly is called during scanning
+16:49:25 epiphany yea it's doing it blindly
+16:49:58 epiphany will need to add a pubsub or something to drk
+16:50:22 frieren ok checking now
+19:29:10 frieren-elf64 sry upgrayedd lmk wen abt got sth to ask
+19:41:43 frieren-elf64 epiphany: check last commit src/main.rs changed, i improved the look of ur code, we can unwrap all that stuff to flatten it and avoid excessive if let nesting
+19:46:39 frieren-elf64 or grug here?
+19:47:16 epiphany noice
+19:50:01 epiphany frieren-elf64: building the app is still building fud
+19:50:16 epiphany prob because enable-plugins is a default feature
+19:50:45 frieren-elf64 which target?
+19:50:51 frieren-elf64 it should have changed
+19:51:05 frieren-elf64 see Makefile _FEATURES
+19:51:26 shayan my app is 10gb lol)) 
+19:51:35 frieren-elf64 how? what is 10gb?
+19:51:38 frieren-elf64 android?
+19:53:36 epiphany make is running cargo build --release --features=schema-app,enable-filelog,enable-plugin-darkirc,enable-plugin-drk
+19:53:41 epiphany i think its missing --no-default-features
+19:53:50 epiphany target linux x64
+19:54:19 shayan frieren-elf64: yeah on android its always floating up and down 
+19:54:58 shayan max seen 17 - 19gb, notice it when phone says no space lefft.. after it dropping to 2gb and going back and forth 
+19:55:32 shayan can be that because I add `enable-netdebug` in release.. dunno now how its related tho 
+19:55:44 frieren-elf64 nah
+19:57:20 frieren-elf64 woah ic 6 gb user data
+19:58:08 shayan watch it its constantly changing every sec 
+20:00:16 grug frieren-elf64: I'm here
+20:01:14 frieren-elf64 hey grug so basically the roundtrip getblock during wallet scanning is so so slow, we need to do batches getblocks. i have made a branch called getblocks. if its good can we merge?
+20:01:28 frieren-elf64 or maybe just remove getblock and replace with getblocks?
+20:02:09 frieren-elf64 ohhh i just found sth:
+20:02:11 frieren-elf64 > The core issue: sled never returns disk space — there are zero Db::compress() calls in the codebase, and chat history + eventgraph are append-heavy, so the DBs only grow.
+20:04:11 frieren-elf64 huh this is fake news
+20:05:20 shayan mmm
+20:05:34 frieren-elf64 this fucking 6+ gb is insane, idk where it comes from. i checked the dbs and they look reasonable?
+20:07:29 frieren-elf64 ok its the drk cache
+20:07:33 frieren-elf64 its insane
+20:07:36 shayan https://imgsharehub.com/ge2rsccb
+20:07:36 chadbot Title: Image ge2rsccb | ImgShareHub
+20:08:08 grug The disk space is being reduced once fjall is in
+20:08:33 grug I agree with replacing with getblocks
+20:08:46 grug But we might need to increase the RPC reqrep size limit
+20:09:22 frieren-elf64 6gb is excessive tho
+20:09:32 frieren-elf64 it is storing the state inverse diff
+20:09:52 frieren-elf64 > per-block full inverse state diffs — used to roll back wallet state on reorgs (this is the bulk)
+20:10:40 grug Yeah, upgrayedd can explain this better
+20:10:56 frieren-elf64 we should just drop the inverse diffs beyond 100 blocks or so
+20:10:58 grug Basically if the wallet sees a reorg it needs a way to revert
+20:11:14 grug We can't just rescan from a specific height because we're maintaining Merkle trees
+20:11:33 grug So at the very least we need the tree diffs
+20:11:44 grug (Again upgrayedd knows all the tiny details)
+20:12:10 frieren-elf64 man this would be much easier with opensec ^^
+20:12:13 frieren-elf64 openspec
+20:12:19 grug :)
+20:12:25 frieren-elf64 i also need sync from height too
+20:12:58 grug There's 2 things, sync and scan
+20:13:09 grug sync always needs to be full in order to build the merkle tree(s)
+20:13:24 grug scan is probablly what you're talking about, wrt. finding coins to use
+20:13:25 frieren-elf64 oh ic
+20:13:30 frieren-elf64 yep the scan
+20:14:56 frieren-elf64 backsync works well. chat near instantly syncs
+20:15:21 grug Sweet
+20:15:40 frieren-elf64 also the string building in scan i think should be guarded with a macro to make it optional
+20:15:59 frieren-elf64 basically like if logger.is_some() { build the string }
+20:16:11 grug Add this as a mtg topic, we can discuss everything u need
+20:16:15 frieren-elf64 ok
+20:16:19 frieren-elf64 !list
+20:16:19 meetbot Topics:
+20:16:19 meetbot 1. openspec (by grug)
+20:16:19 meetbot 2. app next steps (by frieren)
+20:16:19 meetbot 3. github mirroring (by frieren-elf64)
+20:16:58 frieren-elf64 !topic getblocks scan
+20:16:59 meetbot Added topic: getblocks scan (by frieren-elf64)
+20:17:06 frieren-elf64 !topic scan from height
+20:17:06 meetbot Added topic: scan from height (by frieren-elf64)
+20:17:19 frieren-elf64 !topic guard string building in scan
+20:17:19 meetbot Added topic: guard string building in scan (by frieren-elf64)
+20:17:29 frieren-elf64 !topic drop old state inverse diffs from drk
+20:17:29 meetbot Added topic: drop old state inverse diffs from drk (by frieren-elf64)
+20:19:08 lotus !list
+20:19:08 meetbot Topics:
+20:19:09 meetbot 1. openspec (by grug)
+20:19:09 meetbot 2. app next steps (by frieren)
+20:19:09 meetbot 3. github mirroring (by frieren-elf64)
+20:19:09 meetbot 4. getblocks scan (by frieren-elf64)
+20:19:09 meetbot 5. scan from height (by frieren-elf64)
+20:19:09 meetbot 6. guard string building in scan (by frieren-elf64)
+20:19:09 meetbot 7. drop old state inverse diffs from drk (by frieren-elf64)
+20:20:49 frieren-elf64 !deltopic 3
+20:20:49 meetbot Removed topic 3
+20:20:52 frieren-elf64 !list
+20:20:52 meetbot Topics:
+20:20:52 meetbot 1. openspec (by grug)
+20:20:52 meetbot 2. app next steps (by frieren)
+20:20:52 meetbot 3. getblocks scan (by frieren-elf64)
+20:20:52 meetbot 4. scan from height (by frieren-elf64)
+20:20:52 meetbot 5. guard string building in scan (by frieren-elf64)
+20:20:52 meetbot 6. drop old state inverse diffs from drk (by frieren-elf64)
+20:40:01 frieren-elf64 grug, the dag_prune_task() doesnt work well on the phone, we need to use the actual clock instead
+20:43:12 grug You mean the system clock?
+20:43:16 frieren-elf64 https://agorism.dev/uploads/DAGBUG.md
+20:44:45 frieren-elf64 whats weird is it remains connected
+20:45:39 grug dasman had an idea for this iirc
+20:46:19 frieren-elf64 hmmm im looking too cos it should not be suspended
+20:46:55 dasman grug: you had an idea too lol, should I Impl mine? 
+20:47:45 grug I mean I was just talking about detecting time jumps, but I'm not sure if it's applicable here
+20:47:56 grug I think you had thought of something better
+20:48:03 dasman frieren-elf64: that happens cuz we check seconds to next rotation once, we should do a loop 
+20:48:15 dasman yes that's ^^ my idea 
+20:48:34 dasman that will effectively detect jumps as well
+20:48:39 grug Right
+20:49:00 frieren-elf64 ohhh my foreground service prevents the darkirc from being KILLED but it doesnt stop it being suspended
+20:49:57 frieren-elf64 ok its expected cos i just dont want app stopping when randomly closed or in the bg for like 1-2 mns, but yeah it can be suspended after like 15 mns phone is off
+20:50:26 frieren-elf64 i can acquire a wakelock to force phone to keep it awake but thats kinda messed up
+20:50:32 frieren-elf64 and flaky
+20:51:03 dasman yeah that's a no no, I'll impl my idea and see 
+20:51:26 grug No don't do that lol
+20:51:34 grug Then the phone will never idle 
+20:51:49 grug Which means 2 hrs of battery life before requiring charge lmao
+20:51:58 dasman XD
+20:52:29 frieren-elf64 yeah we already are rinsing the battery
+20:52:38 shayan app all the time using cpu doesn matter fg or bg
+20:52:39 grug It's probably more important that it quickly reconnects after waking up from suspend
+20:54:56 frieren-elf64 https://agorism.dev/uploads/CRITIQUE.md
+20:55:41 frieren-elf64 i think its saying nodes still get penalized for being too far ahead
+20:55:49 frieren-elf64 so they get banned()/blacklisted in p2p
+20:56:36 frieren-elf64 lol that fucking table is it being real
+20:56:52 frieren-elf64 | loop fix               | ≤1s + sled write        | 0–2    | ~0                               |
+20:57:17 frieren-elf64 strikes: ~0, errors: 0 - 2, latency: <= 1s
+20:59:08 frieren-elf64 idk wdyt? https://agorism.dev/uploads/RESOLV.md
+20:59:43 frieren-elf64 the reasoning here seems to make sense
+20:59:48 frieren-elf64 but idk evgr2 code
+21:01:34 grug I mean yeah but you should have that dag created
+21:02:02 grug The DAG missing is the main problem
+22:27:53 grug gn
+22:39:32 shayan battery issue getting wild.. %50
+22:39:46 shayan in three hours or something.. 
+22:47:31 shayan something wierd with dag_sync.. with only 1 peer it hits continue with no sleep so notify_connect fires nonstop.. an seeing connect events every few ms on android.. 
+22:47:51 shayan is that same issue you talk previously? 
+22:59:49 shayan looks like our outbound reduction to 1 clashes with the existing SYNC_MIN_PEERS = 2 logic - once OB drops to 1, dag_sync can never reach the min and starts hammering the loop/reconnect logic endlessly 
+23:00:45 shayan can be that the reason of high cpu and battery consumption.. 
+23:00:48 shayan ?
+23:02:01 frieren-elf64 gn
+23:02:09 shayan cya
+23:02:32 frieren-elf64 no idea, is it the ui, the p2p .etc? try compiling with p2p disabled for example
+23:02:49 frieren-elf64 like what is battery with just ui vs ui+p2p
+08:08:46 frieren-elf64 !list
+08:09:14 shayan i can add a wait to my patch si it doesnt go full maniac when there is onlu 1 peer.. but prooly that just temproary fix.. 
+08:09:14 shayan will lool into that.. just waited till you check my code to move on on the battery investigation issue 
+08:09:14 shayan *task 
+08:09:14 shayan ok my eyes not see anymore will take a break for today.. will look into it tomorrow.. 
+08:09:14 shayan gn *
+08:09:14 shayan worth to note this wanst an issue before i drop OB to 1 it was max %21 over night (7h)
+08:09:15 anon hi there pps
+08:09:15 anon hi🤫
+08:09:15 anon p
+08:09:15 anon hi
+08:09:15 dasman i can't seem to reproduce the suspend issue, since network disconnects first then suspend (so it becomes a reconnection issue _which is handled pretty well_ rather than messed up msleep())
+08:09:15 dasman so the code would be test in production :D
+08:09:15 shayan gm
+08:09:20 frieren-elf64 gmgm
+08:09:21 frieren-elf64 !list
+08:09:22 meetbot Topics:
+08:09:22 meetbot 1. openspec (by grug)
+08:09:22 meetbot 2. app next steps (by frieren)
+08:09:22 meetbot 3. getblocks scan (by frieren-elf64)
+08:09:22 meetbot 4. scan from height (by frieren-elf64)
+08:09:22 meetbot 5. guard string building in scan (by frieren-elf64)
+08:09:23 meetbot 6. drop old state inverse diffs from drk (by frieren-elf64)
+08:09:57 frieren-elf64 !topic out of band mailbox for darkfid
+08:09:57 meetbot Added topic: out of band mailbox for darkfid (by frieren-elf64)
+09:08:26 frieren-elf64 !deltopic 7
+09:08:26 meetbot Removed topic 7
+09:13:31 frieren-elf64 this doesnt rly get anything tbh, i dont think tachyon has solved this issue
+09:22:32 shayan	***
+09:22:34 shayan	const SYNC_MIN_PEERS: usize = 2;
+09:22:36 shayan	***
+09:22:38 shayan	if peers_count < SYNC_MIN_PEERS {
+09:22:40 shayan	    i!("Connected to {peers_count} peers. Waiting for more connections.");
+09:22:42 shayan	    continue
+09:22:44 shayan	}
+09:22:46 shayan	***
+09:22:48 shayan	may I add this to that one: 
+09:22:50 shayan	    let _ = channel_sub.receive().await;
+09:22:52 shayan	***
+09:22:54 shayan	so when peer count is 1 it stops spinning like crazy?
+09:28:26 shayan	or is there is something that i dont understand and that would create a regression.. 
+09:30:08 frieren-elf64	ohh what line is that?
+09:38:44 shayan	that line makes the `< SYNC_MIN_PEERS` path wait for the next P2P channel even instead of immediately looping again. With OB=1 / peers=1 that you requested to reduce to, dag_sync() keep spinning and fire notify_connect() nonstop, basically every ms. that could explain the battry going from ~21% to ~%50, plus the constant CPU usage.
+09:38:46 shayan	***
+09:38:48 shayan	not saying this is the cure just wanna try it.. I am only asking because this polling logic was introduced recently upstream and seems to conflict with the app's idle OB=1 policy we introduced..
+09:39:33 shayan	***
+09:42:10 shayan /bin/app/src/plugin/darkirc.rs
+09:46:15 urs gm
+09:47:49 shayan app is 14gb today lol
+09:50:06 frieren-elf64 yeah we know why now
+09:50:29 frieren-elf64 shayan what line number
+09:51:01 shayan 377-382
+09:51:33 shayan 50m runtime and already = 8.5% battery consumption lol)
+09:54:38 shayan ***
+09:54:40 shayan the idea is: 
+09:54:42 shayan Before: with 1 peer, connect events flooded every few ms.
+09:54:44 shayan ***
+09:54:46 shayan After: with 1 peer, it should settle and wait; no continuous notify_connect() storm. Then when a secondpeer connects, the sync loop should wake and continue.
+09:54:48 shayan ***
+09:54:50 shayan theoretically.. 
+09:55:15 frieren-elf64 why did u delete notify_start() and notify_stop()?
+09:57:42 frieren-elf64 for the src/net/session/outbound_session.rs change either need to ask dasman or grug abt that, share the diff w them
+09:58:46 frieren-elf64 it looks good otherwise, i would remove GraphicsEventScreen and just use a bool. also the field name "screen" is not good, if u notice the others all describe actions like "key_down" "resize" whereas screen is a noun.
+09:58:59 frieren-elf64 "screen_changed" for example
+10:02:15 shayan i didnt remove the methods, only calls from GOD.. I assumed that notify_start/stop just trigger the same /window signal that Window::start/stop now emit themselvs, so keeping both would fire them twice.. I left methods in place as you requested earlier.. 
+10:02:17 shayan if you want them back I can put them back..
+10:02:19 shayan ***
+10:02:21 shayan note it will change that right away, and ask to the grug or dasman about other issue when they come.. 
+10:02:23 shayan otherwise everything is ok? 
+10:07:53 frieren-elf64 yep gj yeah just wondering abt moving the signals to Window::stop() vs keeping them in App
+10:08:21 frieren-elf64 i need to know where stop() is actually called since ur smol::block_on() is blocking there
+10:14:05 shayan ***
+10:14:07 shayan found the call path: gfx::quit_requested_event() → God::stop_app() → App::stop() → Window::stop(), and Window::stop() currently does the smol::block_on(trigger("stop")).
+10:14:09 shayan ***

+ 28 - 12
bin/app/src/app/schema/chat.rs

@@ -1841,22 +1841,34 @@ pub async fn make(
 #[allow(dead_code)]
 pub(super) fn populate_tree(tree: &Tree) {
     use crate::ui::chatview::{codec, MessageId, MsgType};
-    use chrono::{NaiveDate, NaiveDateTime};
+    use chrono::{Local, NaiveDate, NaiveDateTime, TimeZone};
 
-    let chat_txt = include_str!("../../../data/chat.txt");
+    let chat_txt = include_str!("../../../data/chat2.txt");
+    let mut day_offset = 0i64;
+    let mut prev_secs = 0u32;
     for (idx, line) in chat_txt.lines().enumerate() {
-        let parts: Vec<&str> = line.splitn(3, ' ').collect();
-        assert_eq!(parts.len(), 3);
-        let time_parts: Vec<&str> = parts[0].splitn(2, ':').collect();
-        let (hour, min) = (time_parts[0], time_parts[1]);
+        // A few lines use a tab instead of a space after the nick.
+        let (time, rest) = line.split_once(' ').expect("malformed line");
+        let (nick, text) =
+            rest.split_once(' ').or_else(|| rest.split_once('\t')).expect("malformed line");
+        let time_parts: Vec<&str> = time.splitn(3, ':').collect();
+        assert_eq!(time_parts.len(), 3);
+        let (hour, min, sec) = (time_parts[0], time_parts[1], time_parts[2]);
         let hour = hour.parse::<u32>().unwrap();
         let min = min.parse::<u32>().unwrap();
-        let dt: NaiveDateTime =
-            NaiveDate::from_ymd_opt(2024, 8, 6).unwrap().and_hms_opt(hour, min, 0).unwrap();
-        let timest = dt.and_utc().timestamp_millis() as u64;
+        let sec = sec.parse::<u32>().unwrap();
+        let secs = hour * 3600 + min * 60 + sec;
+        if secs < prev_secs {
+            day_offset += 1;
+        }
+        prev_secs = secs;
+        let date =
+            NaiveDate::from_ymd_opt(2024, 8, 6).unwrap() + chrono::Duration::days(day_offset);
+        let dt: NaiveDateTime = date.and_hms_opt(hour, min, sec).unwrap();
+        let timest = Local.from_local_datetime(&dt).unwrap().timestamp_millis() as u64;
 
-        let nick = parts[1].to_string();
-        let text = parts[2].to_string();
+        let nick = nick.to_string();
+        let text = text.to_string();
 
         // Unique id per line: the minute timestamp alone can repeat.
         let mut id_bytes = [0u8; 32];
@@ -1869,5 +1881,9 @@ pub(super) fn populate_tree(tree: &Tree) {
         tree.insert(&key, &val).unwrap();
     }
     // O(n)
-    debug!(target: "app::schema", "populated db with {} lines", tree.len().unwrap());
+    debug!(
+        target: "app::schema",
+        "populated db with {} lines, day_offset={day_offset}",
+        tree.len().unwrap()
+    );
 }

+ 1 - 1
bin/app/src/ui/edit/mod.rs

@@ -64,7 +64,7 @@ use filter::{ALLOWED_KEYCODES, DISALLOWED_CHARS};
 mod behave;
 pub use behave::BaseEditType;
 use behave::{EditorBehavior, MultiLine, SingleLine};
-mod repeat;
+pub(crate) mod repeat;
 use repeat::{PressedKey, PressedKeysSmoothRepeat};
 
 /// The travel threshold on long hold select before activating select.

+ 4 - 1
bin/app/src/ui/mod.rs

@@ -54,7 +54,10 @@ pub use chatview::{ChatView, ChatViewPtr};
 pub mod tokentable;
 pub use tokentable::{TokenRow, TokenTable, TokenTablePtr};
 mod edit;
-pub use edit::{BaseEdit, BaseEditPtr, BaseEditType};
+pub use edit::{
+    repeat::{PressedKey, PressedKeysSmoothRepeat},
+    BaseEdit, BaseEditPtr, BaseEditType,
+};
 pub mod emoji_picker;
 pub use emoji_picker::{EmojiPicker, EmojiPickerPtr};
 pub mod gesture;