r/o

make some mobile views actually somewhat usable. ab66c64a parent 8364d825

authored by ~talya

1
* [ ] show dag nav on mobile with popout
2
3
* [ ] use read replica where appropriate
4
* [ ] address our lack of sendmail in container; send mail to status.hostIP:25 (no auth)
5
* [ ] "hooks" also point HEAD to tags when received, oops
6
* [ ] autumn and mdex NIFs are both around 80MB; the latter includes the former. dedupe.
7
8
* [-] per-repo deploy keys: R/O, R/W
9
* i want this for flux
10
* [x] everything except the UI
11
* [ ] the UI
12
* [ ] update the unique index to be per-repo since we've changed auth anyway
13
14
* [ ] tree view isn't getting the right commits for files in subdirectories
15
since we're back to one-directory-at-a-time and need to redo how we search
16
for the last changed commit.
17
* [ ] relative URIs: ugc- prefix, #xyz shouldn't navigate away, etc.
18
* [ ] pressing browser forward/back should trigger fancy blob highlights, not
19
just the automatic :target ones
20
* [ ] some patch links really need to scroll back to top
21
* [ ] actually show commit details at top of tree/blob views
22
23
* [ ] https://talya.nossa.ee ?
24
25
* [ ] NixOS tests to ensure the module stays good even after we move to deploying on k8s
26
27
### short term
28
29
- [x] blob
30
- [x] images
31
- [ ] pdfs, etc.
32
- [ ] less polysaturated, leaner design
33
- [ ] do we use Binary explicitly to not have to pass Unk back as a linked list? @fun
34
- [ ] get our tests and coverage fixed again. @pls
35
- [ ] message to end-user when following a redirect (via git)
36
37
### features
38
39
- [ ] dag infinite scroll/load to context
40
- [ ] blob permalink
41
- [ ] responsive (mobile) styles
42
- [ ] override locale user option
43
- [ ] diff 2+ parent commit
44
- [ ] passkey support
45
- jfc https://shadowfacts.net/2023/phoenix-passkeys/
46
- [ ] default branch: choose from existing branches; non-UTF-8 support
47
48
### housekeeping
49
50
- [ ] tab indices on e.g. crear repositorio
51
- [ ] IPv6 check
52
- [ ] redirect to primary host if not on it
53
- [ ] reverse where the structs are defined (between Git2/Nossa.Storage*)
54
- [ ] rename RepositorySelf* to RepositorySettings*?
55
- [ ] extract CGI into its own application; stream request/response in/out
56
- [ ] consider erlexec, or write our own driver, so we can get stderr out of
57
the way
58
- [ ] gettext once-over in hard-to-reach spots
59
- [ ] verify typescript in compile step
60
- [ ] override elixir/erlang used in autumn/mdex to keep all together
61
- there's some wip of this in zmlqmwzq
62
63
### graceful degradation
64
65
- [x] branch selector disappears on safari with javascript on
66
- [ ] "method" links don't work with noscript since they don't do the right
67
thing
68
- [ ] can't dismiss flash
69
- [ ] javascriptless sidebar changes? (then they must go in the URL)
70
71
### production ops
72
73
- [ ] caching: nginx, varnish? fragment?, git object? how much does bandwidth
74
cost at ovh? bunny? integrate caching, backup into nix module.
75
- right now the pawiwo visibly reloads on every page
76
- [ ] DIY anubis? (for easy deploy to other Phoenix/etc. strength in diversity @fun
77
is a real consideration in this fight.)
78
- [ ] backup restore procedure/test
79
- [ ] feature that restores from backup as we make it. ez!
80
- [ ] admin diagnostics page (combine into/with live dashboard somehow?)
81
- [ ] per repo: audit log, pushes, etc. (git hooks?)
82
- [ ] LRU-ish app-level caching: memcached? redis? ets? mnesia?
83
84
### future
85
86
- [ ] avatar upload, associate multiple emails?
87
- [ ] federation?
88
- identity: auth to other nossa instance
89
- auth another instance for avatars
90
- federated MR-type deal?
91
- don't want to redo a whole code review thing here, idt? check out gerrit
92
etc.
93
- see also simon tatham's thing on git; pull request is just "please check
94
again"
95
- opinionated about rebase/jj norms
96
- at the very least we could show interdiffs between pushes etc.
97
- [ ] merge queue? what do i need at work?
98
- [ ] Log in with GitHub/GitLab/Forgxejo? make it easy to work across, to not be
99
completely hecked by network effects?
100
101
102
## archivo
103
104
- [x] change "settings" top right to "account"
105
- [x] repository delete
106
- [x] repository storage
107
- [x] push keys
108
- [x] proper logging (insert some in e.g. storage creation failure)
109
- [x] some kind of log aggregation/interface on kala
110
- [x] test coverage back up
111
- [x] do some more!
112
- [x] work out why jj fails to push!
113
- [x] fix up this /blah/!url nonsense
114
- [x] git store tests
115
- [x] git tests async: use per-runner store
116
- [x] last controller tests
117
- [x] don't rename storage: use only numeric ids in storage
118
- [x] figure out why our distribution metrics ("phoenix.*") don't make it to
119
grafana (or appear in /metrics at all)
120
- [x] try ETS
121
- [x] pawiwo icon
122
- [x] clean up RepositoryGitControllerTest
123
- [x] Anubis/Nepenthes/?
124
- See https://lobste.rs/s/dmuad3/mitigating_sourcehut_s_partial_outage --- we
125
will need to be prepared; robots.txt, etc., and above all usage stats/graphs
126
so we can see it happen.
127
- [x] https://git.sr.ht/robots.txt is a good start, though of course it isn't
128
saving them. Still, no reason to start from zero.
129
- [x] start of gettext support
130
- [x] main browsing interface, ui polish/consistency
131
- [x] navigate tree
132
- [x] zindex fix for icons overlaying nav bit
133
- [x] select commit
134
- need to resolve a rev instead of a branch now
135
- [x] include breadcrumbs in Diff view
136
- [x] wherever "path=" is sneaking into our URLs, get it out (breadcrumbs)
137
- [x] liveview for navigating within
138
- [x] extract inline classes into css (w/ @apply)
139
- [x] dark mode styles
140
- [x] actual colour system
141
- [x] pawiwo svg for colours
142
- [x] ok dark mode again
143
- [x] safari, chromium
144
- [x] repository redirects
145
- [x] tailwind v4
146
https://elixirforum.com/t/mix-tailwind-4-0-0-beta-1-support/67636/17
147
- [x] more post-liveview cleanup of repository controller; check over
148
auth-related stuff.
149
- [x] then back to (re)design
150
- [x] work out whether diff view will be within the same liveview, a different
151
one, etc.? - it may be overkill; navigating the tree responsively is nice,
152
but the huge diffs might make browsers sick. gotta test!
153
- [x] decide on the repository view design; do we keep the commits there? do
154
we make the sidebar collapsable a la ~~yuta~~ hexdocs etc.? something
155
else entirely?
156
- what do i want to see when i hit a root of a repo? what are the various
157
reasons i end up on one of those on github/srht/etc.?
158
* linked to as a project's "home page", searched and the first result (or
159
apparent best result for an official download or similar)
160
* directly navigated to because i want to browse the source of something
161
i don't have a local clone of (and i haven't yet hit the threshold
162
where i need to use tools to look thru; source aware views can sometimes
163
abrogate the need but often (e.g. github's views + semantic index)
164
they're an untenable degree of both meh design usability (in e.g., links
165
are all too small, everything bunched up on the side, often starting to
166
scroll horizontally by this point; not a priority) and flawed impl (in
167
e.g. elixir outlining. is this just from elixir-ls? tree-sitter?))
168
* often want a specific version (i.e. something i'm running/using),
169
sometimes just browse main/master if cbf/not relevant/more interested
170
in design than exact
171
* summary of this point: "whatever would be unnecessary if i always had
172
a clone of everything". i don't, but i'm in the position of improving
173
the situation for when you don't -- what actually helps?
174
* sometimes i do this even in the presence of a clone on disk, because
175
i'm *using* that one somehow, but i cbf creating a new worktree.
176
similar result. a browser window (and the way you can open lots of
177
them, to various paths/versions/etc) is a much smaller cognitive unit
178
to manage than a worktree.
179
* how often do i want to see the whole commit list straight up front like
180
this? (day separations would give this a lot more context, for what
181
it is.)
182
* almost always would prefer the *graph*; i almost never prefer the
183
straight log style locally. (think about jj log view.)
184
* there are three axes: commit (temporal), path (spatial), view (fn).
185
github exposes commit consistently, path inconsistently (compare blob
186
view to commit history restricted to a subpath), view inconsistently
187
("Commits" page vs 2.5 tree pages (root, non-root w/ README, non-root;
188
sidebar tree only visible in non-root) vs blob (very aligned with
189
non-root tree). root really is the odd one out, since it's a landing
190
page.)
191
* big commit *graph* that stashes in side: file listing-style tree view
192
that then collapses into expanding tree sidebar: blob.
193
* then you can shift around points in the graph while retaining
194
visibility over the directory tree, no reloads/scrolls breaking
195
"immersion".
196
* does the graph stash over to a plain log? i should make sure while i'm
197
developing that i work with the browser the sizes i want to actually
198
be using it at. (i.e. push back against default to 2/3rds code, unless
199
i'm developing a usecase where i'd have the browser at 1/3rd).
200
* sometimes you do want to view just the log of a file or subtree.
201
kinda wanna apply that filter *to* the far-left graph, as a
202
saved-in-navigation thing. then you can nav to a commit (still
203
centred on the tree or file you started the filter from), see it in
204
context, move around, and then at some point you back up or clear
205
the 'path filter' on the DAG view.
206
* note that we want the current path to remain in the tree view
207
when navigating the DAG view even when we don't have a path filter
208
active. same with current blob, if any.
209
* this kind of removes that fake third axis, exposes the other two as
210
proper orthogonal ones. github flattening the DAG with no way to
211
recover is criminal.
212
* and then there's commit view, which is a whole other thing: viewing a
213
commit message & diff.
214
- [x] let's fix our URIs in gen i guess, ?path= is ugly
215
- [x] support submodules in tree
216
- [x] be explicit in which params are UTF-8 encoded & which aren't
217
- [x] global support for non-UTF-8; no error messages
218
- [x] navigate commits on left; focus current commit as navigating
219
- [x] compile-time the storage layer choice
220
- [x] vyxos push fails!
221
- [x] "last commit modified" links are incorrect for subtrees, there's a TODO in
222
git2.rs somewhere
223
- [x] decompose git2's monster "resolve_commit" into somewhat orthogonal ops
224
- [x] syntax highlighting
225
- [x] little live demo with channels of push response
226
- [x] reaffirm backup situation for kala
227
- [x] nix syntax highlighting egumi??
228
- [x] wow! nossa in docker/k8s!
229
- [x] ES: "Clave de empujar creada exitosamente" when creating a new repo!?
230
- [x] new repo => brocken
231
- [x] remove register links if register is disabled
232
- [x] install our own git hooks in repositories, set HEAD on push if unset
233
- [x] assign default branch on first push
234
- [x] this causes clone failures, the weird nix flake stuff we've been seeing, etc.
235
- [x] floating windows don't preserve state on livereload
236
- [x] let's fix the first thing: navigating back to a subtree shouldn't close an
237
open blob. we can keep our existing assigns, or just stream.
238
- [x] open new windows in specified order
239
- [x] default orientation based on aspect ratio
240
- [x] splith(3): need to have up/down too; splitv(3) needs to have left/right.
241
it's too hard to just do that with merges and unmerges.
242
- [x] skip floating windows when finding clientInDirection; similarly,
243
moveClient/mergeClient; their behaviour is very puzzling if it's not clear
244
what's happening
245
- [x] "hooks" are breaking on current live because they're symlinks into old
246
versions of nossa, since GC'd from the nix store!
247
* [x] shynet: add javascript call on live patch
248
* [x] what's nom? https://github.com/NixOS/nixpkgs/pull/430275#pullrequestreview-3089109039
249