{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":676772256,"defaultBranch":"main","name":"tailsql","ownerLogin":"tailscale","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-08-10T01:33:42.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/48932923?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1711074339.0","currentOid":""},"activityList":{"items":[{"before":"0c6dd257f60272d0177e7f0d0f1ff5cad340d6b3","after":"820559f382c1e4b7450b327958500300ab68cc70","ref":"refs/heads/main","pushedAt":"2024-04-18T23:58:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"go.mod: update squibble to commit 9ee0eeb78185","shortMessageHtmlLink":"go.mod: update squibble to commit 9ee0eeb78185"}},{"before":"6c4229a2463c4e1f8e87867552c46f5b6cd84aeb","after":"0c6dd257f60272d0177e7f0d0f1ff5cad340d6b3","ref":"refs/heads/main","pushedAt":"2024-04-10T14:45:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"server: clean up query text (no functional change)","shortMessageHtmlLink":"server: clean up query text (no functional change)"}},{"before":"ff96a7b87542f824945c007637afaf022c9d4f33","after":"6c4229a2463c4e1f8e87867552c46f5b6cd84aeb","ref":"refs/heads/main","pushedAt":"2024-04-08T19:33:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"go.mod: update module dependencies","shortMessageHtmlLink":"go.mod: update module dependencies"}},{"before":"c7cc7abab08c0e554f02c59772d59a40ee45d992","after":"ff96a7b87542f824945c007637afaf022c9d4f33","ref":"refs/heads/main","pushedAt":"2024-04-08T19:24:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"go.mod: update squibble to commit 3ee6329b51dc","shortMessageHtmlLink":"go.mod: update squibble to commit 3ee6329b51dc"}},{"before":"ee7f242b888715dcb253ddc28db38e4b19391edd","after":"c7cc7abab08c0e554f02c59772d59a40ee45d992","ref":"refs/heads/main","pushedAt":"2024-04-08T16:32:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"go.mod: update squibble to commit efcebb001116","shortMessageHtmlLink":"go.mod: update squibble to commit efcebb001116"}},{"before":"0ba8743547294cfffa722d6f58098bd3c34118df","after":"ee7f242b888715dcb253ddc28db38e4b19391edd","ref":"refs/heads/main","pushedAt":"2024-04-08T15:18:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"go.mod: update tailscale.com to commit 5336362e6408","shortMessageHtmlLink":"go.mod: update tailscale.com to commit 5336362e6408"}},{"before":"52c37471a6f883dca31268ef555956baa549fbdb","after":"0ba8743547294cfffa722d6f58098bd3c34118df","ref":"refs/heads/main","pushedAt":"2024-04-08T03:06:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"go.mod: update module dependencies","shortMessageHtmlLink":"go.mod: update module dependencies"}},{"before":"ac39542944794c93e06b5e66b57e321b896553f2","after":"52c37471a6f883dca31268ef555956baa549fbdb","ref":"refs/heads/main","pushedAt":"2024-04-06T22:02:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"go.mod: update tailscale.com to commit 21b32b467e31","shortMessageHtmlLink":"go.mod: update tailscale.com to commit 21b32b467e31"}},{"before":"7fd82dea80c7c7a0aab66708c17481419acb7c2c","after":"ac39542944794c93e06b5e66b57e321b896553f2","ref":"refs/heads/main","pushedAt":"2024-04-06T21:57:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":".github: update workflow action versions","shortMessageHtmlLink":".github: update workflow action versions"}},{"before":"8699e6b5192b12a8c377d4ba459e9436989c2ac2","after":"7fd82dea80c7c7a0aab66708c17481419acb7c2c","ref":"refs/heads/main","pushedAt":"2024-04-06T21:52:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"server: add an \"elapsed\" column to the query log\n\n- go.mod: squibble to commit d506ba44e8af\n- server: update the schema\n- server: log query elapsed times\n- server: add a migration rule for the elapsed column","shortMessageHtmlLink":"server: add an \"elapsed\" column to the query log"}},{"before":"96525101d8da38018eee86a30943b45a19502b23","after":"8699e6b5192b12a8c377d4ba459e9436989c2ac2","ref":"refs/heads/main","pushedAt":"2024-04-03T04:15:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"go.mod: update tailscale.com to commit 14683371ee6c","shortMessageHtmlLink":"go.mod: update tailscale.com to commit 14683371ee6c"}},{"before":"ad9977291773d132864402e392bdaa3c0dee8b1b","after":"96525101d8da38018eee86a30943b45a19502b23","ref":"refs/heads/main","pushedAt":"2024-04-03T04:12:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"go.mod: update module dependencies","shortMessageHtmlLink":"go.mod: update module dependencies"}},{"before":"a2827d72a12053380f2779f309992c1592e8b5a7","after":"ad9977291773d132864402e392bdaa3c0dee8b1b","ref":"refs/heads/main","pushedAt":"2024-03-24T04:38:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"go.mod: update module dependencies\n\n- github.com/tailscale/squibble to commit 06b7fb49994d\n- tailscale.com to commit b104688e0479","shortMessageHtmlLink":"go.mod: update module dependencies"}},{"before":"7d9837f706eeb4eaba04c45308b3c9315442d373","after":"a2827d72a12053380f2779f309992c1592e8b5a7","ref":"refs/heads/main","pushedAt":"2024-03-24T03:03:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"server: add favicon","shortMessageHtmlLink":"server: add favicon"}},{"before":"408a1a2ddc8c9d90a817705311f6a02c86002104","after":"7d9837f706eeb4eaba04c45308b3c9315442d373","ref":"refs/heads/main","pushedAt":"2024-03-22T23:33:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"server: update some UI styles","shortMessageHtmlLink":"server: update some UI styles"}},{"before":"254767dc425943f5dbb673a4d29ed0cb2e969fde","after":"408a1a2ddc8c9d90a817705311f6a02c86002104","ref":"refs/heads/main","pushedAt":"2024-03-22T21:55:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"server: add a schema migration manager for the local state DB\n\nFor now this is a functional no-op, it just installs the migrator and hooks it\nup when the database is first opened.","shortMessageHtmlLink":"server: add a schema migration manager for the local state DB"}},{"before":"f981a85be5ccffaf55c0d5506eec912d27dfc300","after":null,"ref":"refs/heads/mjf/uicheck","pushedAt":"2024-03-22T16:42:23.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"}},{"before":"4356add1524b3306857b9551e9ad4c4dd1012483","after":"254767dc425943f5dbb673a4d29ed0cb2e969fde","ref":"refs/heads/main","pushedAt":"2024-03-22T16:42:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"server: allow access to the UI with a blank query (#21)\n\nIf a caller requests the root UI and does not send a query, skip checking the\r\nsource and serve the UI directly. A non-blank query still triggers a check.","shortMessageHtmlLink":"server: allow access to the UI with a blank query (#21)"}},{"before":"b987b8c72fec1a0676bc418347c9991f02fbee91","after":"f981a85be5ccffaf55c0d5506eec912d27dfc300","ref":"refs/heads/mjf/uicheck","pushedAt":"2024-03-22T02:26:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"fix grammar","shortMessageHtmlLink":"fix grammar"}},{"before":null,"after":"b987b8c72fec1a0676bc418347c9991f02fbee91","ref":"refs/heads/mjf/uicheck","pushedAt":"2024-03-22T02:25:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"server: allow access to the UI with a blank query\n\nIf a caller requests the root UI and does not send a query, skip checking the\nsource and serve the UI directly. A non-blank query still triggers a check.","shortMessageHtmlLink":"server: allow access to the UI with a blank query"}},{"before":"833de3cdf65f97ffab158e9971bf1233b76a7b20","after":"4356add1524b3306857b9551e9ad4c4dd1012483","ref":"refs/heads/main","pushedAt":"2024-03-16T01:30:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"server: set X-Frame-Options","shortMessageHtmlLink":"server: set X-Frame-Options"}},{"before":"8483049a9e35d529634d2cb10615308db92d23fc","after":"833de3cdf65f97ffab158e9971bf1233b76a7b20","ref":"refs/heads/main","pushedAt":"2024-03-15T07:47:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"server: fix a nil indirection when updating databases\n\nWhen checking for an update, don't assume the previous value was non-nil, since\nusually it WILL be nil.\n\nI tested this manually by hacking the condition to force it into the right\nstate, but it's tricky to get this in a unit test without drilling long holes\ninto the plumbing.","shortMessageHtmlLink":"server: fix a nil indirection when updating databases"}},{"before":"f6813893da02e7e4e96c62b9cf5611777312b86d","after":"8483049a9e35d529634d2cb10615308db92d23fc","ref":"refs/heads/main","pushedAt":"2024-03-15T07:08:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"go.mod: update protobuf to v1.33.0\n\nAddresses a JSON unmarshaling bug.","shortMessageHtmlLink":"go.mod: update protobuf to v1.33.0"}},{"before":"211407ab92a0a792da156fac6cb12a6a21cb53d2","after":"f6813893da02e7e4e96c62b9cf5611777312b86d","ref":"refs/heads/main","pushedAt":"2024-03-15T07:07:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"go.mod: update module dependencies","shortMessageHtmlLink":"go.mod: update module dependencies"}},{"before":"027235e0d69e9d01a15660e7e6f15b214bd877b9","after":"211407ab92a0a792da156fac6cb12a6a21cb53d2","ref":"refs/heads/main","pushedAt":"2024-03-15T06:56:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"server: enable foreign keys in the query log","shortMessageHtmlLink":"server: enable foreign keys in the query log"}},{"before":"26319f3c831c806db9683785d9005a5b5fdd28ed","after":"027235e0d69e9d01a15660e7e6f15b214bd877b9","ref":"refs/heads/main","pushedAt":"2024-03-14T02:59:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"go.mod: update tailscale.com to commit f12d2557f94a","shortMessageHtmlLink":"go.mod: update tailscale.com to commit f12d2557f94a"}},{"before":"8400c81d2b2426e3091d801a12860c64276ed704","after":"26319f3c831c806db9683785d9005a5b5fdd28ed","ref":"refs/heads/main","pushedAt":"2024-03-14T02:57:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"server: remove unused context hook\n\nI can no longer remember what motivated me to add this in the first place, but\nit is not used anywhere and was confusingly named, so it's gone now.","shortMessageHtmlLink":"server: remove unused context hook"}},{"before":"fe491d582e3739b5f1a631551bede5bb15af6ad4","after":"8400c81d2b2426e3091d801a12860c64276ed704","ref":"refs/heads/main","pushedAt":"2024-03-14T02:48:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"server: remove the conflict between DB updates and running queries\n\nEach database handle has a shared lock that queries hold while they run, and\nthat updating the state of the handle with a new database, label, and named\nqueries acquire exclusively. This meant that handing off a new database would\nblock for a long-running query.\n\nI dealt with this by setting a timeout on user queries. That works, but can be\nannoying when users have a complex query to run that may take a while.\n\nTo address this, change the way updates are done:\n\n- If an update arrives and the handle is not locked, it is applied immediately\n (as before).\n\n- But if the handle is locked (busy), record the intended update in an atomic\n field.\n\n- Each time a query exits, it checks whether there is a pending update and\n tries to apply it.\n\n- Each time the UI browses the handles, it checks whether there are pending\n updates and tries to apply them.\n\nIf an update cannot be applied immediately, then one or more running queries\nhold the lock that prevents it. Either the last such query, or a subsequent UI\nvisit, will notice the pending query and apply it.","shortMessageHtmlLink":"server: remove the conflict between DB updates and running queries"}},{"before":"01f8568eb7585a53fcf8167840b097c62161a0fa","after":"fe491d582e3739b5f1a631551bede5bb15af6ad4","ref":"refs/heads/main","pushedAt":"2024-03-11T18:25:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"go.mod: update tailscale.com to commit 7429e8912acb","shortMessageHtmlLink":"go.mod: update tailscale.com to commit 7429e8912acb"}},{"before":"1af0de8fdb6678755d6947c2d6e1e42991d08dea","after":"01f8568eb7585a53fcf8167840b097c62161a0fa","ref":"refs/heads/main","pushedAt":"2024-03-11T18:22:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"creachadair","name":"M. J. Fromberger","path":"/creachadair","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19258?s=80&v=4"},"commit":{"message":"tools/update-oss.sh: use the repo root instead of the script path","shortMessageHtmlLink":"tools/update-oss.sh: use the repo root instead of the script path"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAENKh6BgA","startCursor":null,"endCursor":null}},"title":"Activity ยท tailscale/tailsql"}