v0.1.1 88fcae1

0001_snapshot.json RawHistoryFolder

1{
2  "version": "6",
3  "dialect": "sqlite",
4  "id": "9090026e-dae4-4b69-8539-471ebf6ec7e6",
5  "prevId": "16b13426-2b9d-4084-8e17-71f9de0f72d0",
6  "tables": {
7    "chat_rooms": {
8      "name": "chat_rooms",
9      "columns": {
10        "id": {
11          "name": "id",
12          "type": "text",
13          "primaryKey": true,
14          "notNull": true,
15          "autoincrement": false
16        },
17        "name": {
18          "name": "name",
19          "type": "text",
20          "primaryKey": false,
21          "notNull": false,
22          "autoincrement": false
23        },
24        "type": {
25          "name": "type",
26          "type": "text",
27          "primaryKey": false,
28          "notNull": true,
29          "autoincrement": false,
30          "default": "'direct'"
31        },
32        "created_at": {
33          "name": "created_at",
34          "type": "integer",
35          "primaryKey": false,
36          "notNull": true,
37          "autoincrement": false
38        }
39      },
40      "indexes": {},
41      "foreignKeys": {},
42      "compositePrimaryKeys": {},
43      "uniqueConstraints": {},
44      "checkConstraints": {}
45    },
46    "messages": {
47      "name": "messages",
48      "columns": {
49        "id": {
50          "name": "id",
51          "type": "text",
52          "primaryKey": true,
53          "notNull": true,
54          "autoincrement": false
55        },
56        "chat_room_id": {
57          "name": "chat_room_id",
58          "type": "text",
59          "primaryKey": false,
60          "notNull": true,
61          "autoincrement": false
62        },
63        "sender_id": {
64          "name": "sender_id",
65          "type": "text",
66          "primaryKey": false,
67          "notNull": true,
68          "autoincrement": false
69        },
70        "content": {
71          "name": "content",
72          "type": "text",
73          "primaryKey": false,
74          "notNull": true,
75          "autoincrement": false
76        },
77        "type": {
78          "name": "type",
79          "type": "text",
80          "primaryKey": false,
81          "notNull": true,
82          "autoincrement": false,
83          "default": "'chat'"
84        },
85        "timestamp": {
86          "name": "timestamp",
87          "type": "integer",
88          "primaryKey": false,
89          "notNull": true,
90          "autoincrement": false
91        }
92      },
93      "indexes": {},
94      "foreignKeys": {
95        "messages_chat_room_id_chat_rooms_id_fk": {
96          "name": "messages_chat_room_id_chat_rooms_id_fk",
97          "tableFrom": "messages",
98          "tableTo": "chat_rooms",
99          "columnsFrom": [
100            "chat_room_id"
101          ],
102          "columnsTo": [
103            "id"
104          ],
105          "onDelete": "no action",
106          "onUpdate": "no action"
107        },
108        "messages_sender_id_users_id_fk": {
109          "name": "messages_sender_id_users_id_fk",
110          "tableFrom": "messages",
111          "tableTo": "users",
112          "columnsFrom": [
113            "sender_id"
114          ],
115          "columnsTo": [
116            "id"
117          ],
118          "onDelete": "no action",
119          "onUpdate": "no action"
120        }
121      },
122      "compositePrimaryKeys": {},
123      "uniqueConstraints": {},
124      "checkConstraints": {}
125    },
126    "sessions": {
127      "name": "sessions",
128      "columns": {
129        "id": {
130          "name": "id",
131          "type": "text",
132          "primaryKey": true,
133          "notNull": true,
134          "autoincrement": false
135        },
136        "user_id": {
137          "name": "user_id",
138          "type": "text",
139          "primaryKey": false,
140          "notNull": true,
141          "autoincrement": false
142        },
143        "expires_at": {
144          "name": "expires_at",
145          "type": "integer",
146          "primaryKey": false,
147          "notNull": true,
148          "autoincrement": false
149        },
150        "created_at": {
151          "name": "created_at",
152          "type": "integer",
153          "primaryKey": false,
154          "notNull": true,
155          "autoincrement": false
156        }
157      },
158      "indexes": {},
159      "foreignKeys": {
160        "sessions_user_id_users_id_fk": {
161          "name": "sessions_user_id_users_id_fk",
162          "tableFrom": "sessions",
163          "tableTo": "users",
164          "columnsFrom": [
165            "user_id"
166          ],
167          "columnsTo": [
168            "id"
169          ],
170          "onDelete": "no action",
171          "onUpdate": "no action"
172        }
173      },
174      "compositePrimaryKeys": {},
175      "uniqueConstraints": {},
176      "checkConstraints": {}
177    },
178    "users": {
179      "name": "users",
180      "columns": {
181        "id": {
182          "name": "id",
183          "type": "text",
184          "primaryKey": true,
185          "notNull": true,
186          "autoincrement": false
187        },
188        "password": {
189          "name": "password",
190          "type": "text",
191          "primaryKey": false,
192          "notNull": true,
193          "autoincrement": false
194        },
195        "nickname": {
196          "name": "nickname",
197          "type": "text",
198          "primaryKey": false,
199          "notNull": true,
200          "autoincrement": false
201        },
202        "status": {
203          "name": "status",
204          "type": "text",
205          "primaryKey": false,
206          "notNull": true,
207          "autoincrement": false,
208          "default": "'offline'"
209        },
210        "avatar_url": {
211          "name": "avatar_url",
212          "type": "text",
213          "primaryKey": false,
214          "notNull": false,
215          "autoincrement": false
216        },
217        "created_at": {
218          "name": "created_at",
219          "type": "integer",
220          "primaryKey": false,
221          "notNull": true,
222          "autoincrement": false
223        },
224        "last_seen": {
225          "name": "last_seen",
226          "type": "integer",
227          "primaryKey": false,
228          "notNull": false,
229          "autoincrement": false
230        }
231      },
232      "indexes": {},
233      "foreignKeys": {},
234      "compositePrimaryKeys": {},
235      "uniqueConstraints": {},
236      "checkConstraints": {}
237    }
238  },
239  "views": {
240    "chat_room_view": {
241      "columns": {
242        "id": {
243          "name": "id",
244          "type": "text",
245          "primaryKey": true,
246          "notNull": true,
247          "autoincrement": false
248        },
249        "name": {
250          "name": "name",
251          "type": "text",
252          "primaryKey": false,
253          "notNull": false,
254          "autoincrement": false
255        },
256        "type": {
257          "name": "type",
258          "type": "text",
259          "primaryKey": false,
260          "notNull": true,
261          "autoincrement": false,
262          "default": "'direct'"
263        },
264        "created_at": {
265          "name": "created_at",
266          "type": "integer",
267          "primaryKey": false,
268          "notNull": true,
269          "autoincrement": false
270        }
271      },
272      "name": "chat_room_view",
273      "isExisting": false,
274      "definition": "select \"id\", \"name\", \"type\", \"created_at\" from \"chat_rooms\""
275    },
276    "message_view": {
277      "columns": {
278        "id": {
279          "name": "id",
280          "type": "text",
281          "primaryKey": true,
282          "notNull": true,
283          "autoincrement": false
284        },
285        "content": {
286          "name": "content",
287          "type": "text",
288          "primaryKey": false,
289          "notNull": true,
290          "autoincrement": false
291        },
292        "type": {
293          "name": "type",
294          "type": "text",
295          "primaryKey": false,
296          "notNull": true,
297          "autoincrement": false,
298          "default": "'chat'"
299        },
300        "timestamp": {
301          "name": "timestamp",
302          "type": "integer",
303          "primaryKey": false,
304          "notNull": true,
305          "autoincrement": false
306        },
307        "nickname": {
308          "name": "nickname",
309          "type": "text",
310          "primaryKey": false,
311          "notNull": true,
312          "autoincrement": false
313        },
314        "name": {
315          "name": "name",
316          "type": "text",
317          "primaryKey": false,
318          "notNull": false,
319          "autoincrement": false
320        }
321      },
322      "name": "message_view",
323      "isExisting": false,
324      "definition": "select \"messages\".\"id\", \"messages\".\"content\", \"messages\".\"type\", \"messages\".\"timestamp\", \"users\".\"nickname\", \"chat_rooms\".\"name\" from \"messages\" left join \"users\" on \"messages\".\"sender_id\" = \"users\".\"id\" left join \"chat_rooms\" on \"messages\".\"chat_room_id\" = \"chat_rooms\".\"id\""
325    },
326    "user_view": {
327      "columns": {
328        "id": {
329          "name": "id",
330          "type": "text",
331          "primaryKey": true,
332          "notNull": true,
333          "autoincrement": false
334        },
335        "nickname": {
336          "name": "nickname",
337          "type": "text",
338          "primaryKey": false,
339          "notNull": true,
340          "autoincrement": false
341        },
342        "status": {
343          "name": "status",
344          "type": "text",
345          "primaryKey": false,
346          "notNull": true,
347          "autoincrement": false,
348          "default": "'offline'"
349        },
350        "avatar_url": {
351          "name": "avatar_url",
352          "type": "text",
353          "primaryKey": false,
354          "notNull": false,
355          "autoincrement": false
356        },
357        "last_seen": {
358          "name": "last_seen",
359          "type": "integer",
360          "primaryKey": false,
361          "notNull": false,
362          "autoincrement": false
363        }
364      },
365      "name": "user_view",
366      "isExisting": false,
367      "definition": "select \"id\", \"nickname\", \"status\", \"avatar_url\", \"last_seen\" from \"users\""
368    }
369  },
370  "enums": {},
371  "_meta": {
372    "schemas": {},
373    "tables": {},
374    "columns": {}
375  },
376  "internal": {
377    "indexes": {}
378  }
379}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 3

Tags 9

↑↓ moveenter openesc close