v0.1.2 944de91

0000_snapshot.json RawHistoryFolder

1{
2  "version": "6",
3  "dialect": "sqlite",
4  "id": "16b13426-2b9d-4084-8e17-71f9de0f72d0",
5  "prevId": "00000000-0000-0000-0000-000000000000",
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    "users": {
127      "name": "users",
128      "columns": {
129        "id": {
130          "name": "id",
131          "type": "text",
132          "primaryKey": true,
133          "notNull": true,
134          "autoincrement": false
135        },
136        "email": {
137          "name": "email",
138          "type": "text",
139          "primaryKey": false,
140          "notNull": true,
141          "autoincrement": false
142        },
143        "password": {
144          "name": "password",
145          "type": "text",
146          "primaryKey": false,
147          "notNull": true,
148          "autoincrement": false
149        },
150        "nickname": {
151          "name": "nickname",
152          "type": "text",
153          "primaryKey": false,
154          "notNull": true,
155          "autoincrement": false
156        },
157        "status": {
158          "name": "status",
159          "type": "text",
160          "primaryKey": false,
161          "notNull": false,
162          "autoincrement": false,
163          "default": "'offline'"
164        },
165        "avatar_url": {
166          "name": "avatar_url",
167          "type": "text",
168          "primaryKey": false,
169          "notNull": false,
170          "autoincrement": false
171        },
172        "created_at": {
173          "name": "created_at",
174          "type": "integer",
175          "primaryKey": false,
176          "notNull": true,
177          "autoincrement": false
178        },
179        "last_seen": {
180          "name": "last_seen",
181          "type": "integer",
182          "primaryKey": false,
183          "notNull": false,
184          "autoincrement": false
185        }
186      },
187      "indexes": {
188        "users_email_unique": {
189          "name": "users_email_unique",
190          "columns": [
191            "email"
192          ],
193          "isUnique": true
194        }
195      },
196      "foreignKeys": {},
197      "compositePrimaryKeys": {},
198      "uniqueConstraints": {},
199      "checkConstraints": {}
200    }
201  },
202  "views": {
203    "chat_room_view": {
204      "columns": {
205        "id": {
206          "name": "id",
207          "type": "text",
208          "primaryKey": true,
209          "notNull": true,
210          "autoincrement": false
211        },
212        "name": {
213          "name": "name",
214          "type": "text",
215          "primaryKey": false,
216          "notNull": false,
217          "autoincrement": false
218        },
219        "type": {
220          "name": "type",
221          "type": "text",
222          "primaryKey": false,
223          "notNull": true,
224          "autoincrement": false,
225          "default": "'direct'"
226        },
227        "created_at": {
228          "name": "created_at",
229          "type": "integer",
230          "primaryKey": false,
231          "notNull": true,
232          "autoincrement": false
233        }
234      },
235      "name": "chat_room_view",
236      "isExisting": false,
237      "definition": "select \"id\", \"name\", \"type\", \"created_at\" from \"chat_rooms\""
238    },
239    "message_view": {
240      "columns": {
241        "id": {
242          "name": "id",
243          "type": "text",
244          "primaryKey": true,
245          "notNull": true,
246          "autoincrement": false
247        },
248        "content": {
249          "name": "content",
250          "type": "text",
251          "primaryKey": false,
252          "notNull": true,
253          "autoincrement": false
254        },
255        "type": {
256          "name": "type",
257          "type": "text",
258          "primaryKey": false,
259          "notNull": true,
260          "autoincrement": false,
261          "default": "'chat'"
262        },
263        "timestamp": {
264          "name": "timestamp",
265          "type": "integer",
266          "primaryKey": false,
267          "notNull": true,
268          "autoincrement": false
269        },
270        "nickname": {
271          "name": "nickname",
272          "type": "text",
273          "primaryKey": false,
274          "notNull": true,
275          "autoincrement": false
276        },
277        "name": {
278          "name": "name",
279          "type": "text",
280          "primaryKey": false,
281          "notNull": false,
282          "autoincrement": false
283        }
284      },
285      "name": "message_view",
286      "isExisting": false,
287      "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\""
288    },
289    "user_view": {
290      "columns": {
291        "id": {
292          "name": "id",
293          "type": "text",
294          "primaryKey": true,
295          "notNull": true,
296          "autoincrement": false
297        },
298        "nickname": {
299          "name": "nickname",
300          "type": "text",
301          "primaryKey": false,
302          "notNull": true,
303          "autoincrement": false
304        },
305        "status": {
306          "name": "status",
307          "type": "text",
308          "primaryKey": false,
309          "notNull": false,
310          "autoincrement": false,
311          "default": "'offline'"
312        },
313        "avatar_url": {
314          "name": "avatar_url",
315          "type": "text",
316          "primaryKey": false,
317          "notNull": false,
318          "autoincrement": false
319        },
320        "last_seen": {
321          "name": "last_seen",
322          "type": "integer",
323          "primaryKey": false,
324          "notNull": false,
325          "autoincrement": false
326        }
327      },
328      "name": "user_view",
329      "isExisting": false,
330      "definition": "select \"id\", \"nickname\", \"status\", \"avatar_url\", \"last_seen\" from \"users\""
331    }
332  },
333  "enums": {},
334  "_meta": {
335    "schemas": {},
336    "tables": {},
337    "columns": {}
338  },
339  "internal": {
340    "indexes": {}
341  }
342}

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 8

↑↓ moveenter openesc close