{"sha":"07b3487f54bc06b62bcceb717473469060c4a358","node_id":"C_kwDORD3Y59oAKDA3YjM0ODdmNTRiYzA2YjYyYmNjZWI3MTc0NzM0NjkwNjBjNGEzNTg","commit":{"author":{"name":"gizzy","email":"me@gizzy.pro","date":"2026-02-02T18:44:09Z"},"committer":{"name":"gizzy","email":"me@gizzy.pro","date":"2026-02-02T18:44:09Z"},"message":"fix: swap order from oldest to newest to newest to oldest","tree":{"sha":"a73c96f30d9e76845f3589116c4b7590cd3b9557","url":"https://api.github.com/repos/GizzyUwU/govgiz/git/trees/a73c96f30d9e76845f3589116c4b7590cd3b9557"},"url":"https://api.github.com/repos/GizzyUwU/govgiz/git/commits/07b3487f54bc06b62bcceb717473469060c4a358","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null,"verified_at":null}},"url":"https://api.github.com/repos/GizzyUwU/govgiz/commits/07b3487f54bc06b62bcceb717473469060c4a358","html_url":"https://github.com/GizzyUwU/govgiz/commit/07b3487f54bc06b62bcceb717473469060c4a358","comments_url":"https://api.github.com/repos/GizzyUwU/govgiz/commits/07b3487f54bc06b62bcceb717473469060c4a358/comments","author":{"login":"GizzyUwU","id":61115942,"node_id":"MDQ6VXNlcjYxMTE1OTQy","avatar_url":"https://avatars.githubusercontent.com/u/61115942?v=4","gravatar_id":"","url":"https://api.github.com/users/GizzyUwU","html_url":"https://github.com/GizzyUwU","followers_url":"https://api.github.com/users/GizzyUwU/followers","following_url":"https://api.github.com/users/GizzyUwU/following{/other_user}","gists_url":"https://api.github.com/users/GizzyUwU/gists{/gist_id}","starred_url":"https://api.github.com/users/GizzyUwU/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GizzyUwU/subscriptions","organizations_url":"https://api.github.com/users/GizzyUwU/orgs","repos_url":"https://api.github.com/users/GizzyUwU/repos","events_url":"https://api.github.com/users/GizzyUwU/events{/privacy}","received_events_url":"https://api.github.com/users/GizzyUwU/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"GizzyUwU","id":61115942,"node_id":"MDQ6VXNlcjYxMTE1OTQy","avatar_url":"https://avatars.githubusercontent.com/u/61115942?v=4","gravatar_id":"","url":"https://api.github.com/users/GizzyUwU","html_url":"https://github.com/GizzyUwU","followers_url":"https://api.github.com/users/GizzyUwU/followers","following_url":"https://api.github.com/users/GizzyUwU/following{/other_user}","gists_url":"https://api.github.com/users/GizzyUwU/gists{/gist_id}","starred_url":"https://api.github.com/users/GizzyUwU/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GizzyUwU/subscriptions","organizations_url":"https://api.github.com/users/GizzyUwU/orgs","repos_url":"https://api.github.com/users/GizzyUwU/repos","events_url":"https://api.github.com/users/GizzyUwU/events{/privacy}","received_events_url":"https://api.github.com/users/GizzyUwU/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"234af23a850dc54609891ea620a654986a8bd67e","url":"https://api.github.com/repos/GizzyUwU/govgiz/commits/234af23a850dc54609891ea620a654986a8bd67e","html_url":"https://github.com/GizzyUwU/govgiz/commit/234af23a850dc54609891ea620a654986a8bd67e"}],"stats":{"total":466,"additions":179,"deletions":287},"files":[{"sha":"74bdab522a0f6eb27cda5bc8a5d78585edbb4e2e","filename":"src/automation/ftToMDX.ts","status":"modified","additions":8,"deletions":5,"changes":13,"blob_url":"https://github.com/GizzyUwU/govgiz/blob/07b3487f54bc06b62bcceb717473469060c4a358/src%2Fautomation%2FftToMDX.ts","raw_url":"https://github.com/GizzyUwU/govgiz/raw/07b3487f54bc06b62bcceb717473469060c4a358/src%2Fautomation%2FftToMDX.ts","contents_url":"https://api.github.com/repos/GizzyUwU/govgiz/contents/src%2Fautomation%2FftToMDX.ts?ref=07b3487f54bc06b62bcceb717473469060c4a358","patch":"@@ -77,7 +77,7 @@ for (const project of projects) {\n \n   devlogs.sort(\n     (a, b) =>\n-      new Date(a.created_at).getTime() - new Date(b.created_at).getTime(),\n+      new Date(b.created_at).getTime() - new Date(a.created_at).getTime(),\n   );\n \n   const filePath = path.join(POSTS_DIR, `${slug}.md`);\n@@ -102,7 +102,7 @@ for (const project of projects) {\n         `${d.body}\\n\\n${d.likes_count} likes • ${Math.round(d.duration_seconds / 60)} min\\n\\n`,\n     );\n \n-  if(newDevlogs.length > 0) console.log(\"Woah new devlogs for\", project.id)\n+  if (newDevlogs.length > 0) console.log(\"Woah new devlogs for\", project.id);\n \n   const preDevlogContent = body.split(/^\\s*## Devlog/m)[0];\n \n@@ -123,6 +123,9 @@ for (const project of projects) {\n     newDevlogs.join(\"\");\n   fs.writeFileSync(filePath, finalContent, \"utf8\");\n }\n+\n+posts.sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime());\n+\n fs.writeFileSync(POSTS_JSON, JSON.stringify(posts, null, 4), \"utf-8\");\n \n posts.forEach((post: Post, index: number) => {\n@@ -137,11 +140,11 @@ posts.forEach((post: Post, index: number) => {\n \n   const updatedYaml = yaml.dump(fmData, { lineWidth: -1 }).trim();\n   const afterFrontmatter = content\n-  .slice(fmMatch[0].length)\n-  .replace(/^\\s*\\n+/, \"\\n\\n\");\n+    .slice(fmMatch[0].length)\n+    .replace(/^\\s*\\n+/, \"\\n\\n\");\n \n   const updatedContent =\n-  `---\\n${updatedYaml}\\n---\\n\\n` + afterFrontmatter.trimStart();\n+    `---\\n${updatedYaml}\\n---\\n\\n` + afterFrontmatter.trimStart();\n \n   fs.writeFileSync(mdxPath, updatedContent, \"utf8\");\n });"},{"sha":"cd9af592f403293668163b73ad69703de65646f4","filename":"src/routes/blog/posts/govgiz.md","status":"modified","additions":57,"deletions":86,"changes":143,"blob_url":"https://github.com/GizzyUwU/govgiz/blob/07b3487f54bc06b62bcceb717473469060c4a358/src%2Froutes%2Fblog%2Fposts%2Fgovgiz.md","raw_url":"https://github.com/GizzyUwU/govgiz/raw/07b3487f54bc06b62bcceb717473469060c4a358/src%2Froutes%2Fblog%2Fposts%2Fgovgiz.md","contents_url":"https://api.github.com/repos/GizzyUwU/govgiz/contents/src%2Froutes%2Fblog%2Fposts%2Fgovgiz.md?ref=07b3487f54bc06b62bcceb717473469060c4a358","patch":"@@ -8,82 +8,29 @@ tags:\n   - projects\n ---\n \n-## Devlog 17136 • 2026-01-29\n-\n-Blehhhh ![3c](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3c%2F8c317faf11962206.png&w=30&h=30&fit=contain&n=-1) so new project first devlog i spent most of time fighitng to get it to work with solidjs but it works AND LOOKS SEXY i also wiped up custom logo in figma balls\n-\n-\n-0 likes • 87 min\n-\n-## Devlog 17146 • 2026-01-29\n-\n-Im eepy its 1 am but gotta devlog so yipeeeeeeeeeeeeeeeeee\n-- Uses hackatime now to get my hours coded today\n-- Shows my local time which also live updates using typedjs to update it\n-- Small desc about me uses typedjs to change values bleh ![yay](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fyay%2F47296c029c8ee253.gif&w=30&h=30&fit=contain&n=-1) \n-\n-0 likes • 47 min\n-\n-## Devlog 18019 • 2026-01-31\n-\n-BLEHHHHHH 2 HOURS ALREADY DAMN BLEHHH\n-ANYWAY ![3c](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3c%2F8c317faf11962206.png&w=30&h=30&fit=contain&n=-1) ![3cnuke](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3cnuke%2Fe35ee9bec8dfa875.png&w=30&h=30&fit=contain&n=-1)\n-UPDATEEEEEEEEEEEEEE AAAAAAAAAAAAAAAAAA\n-- I did sum code theft ![3c](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3c%2F8c317faf11962206.png&w=30&h=30&fit=contain&n=-1) someone made a blog in solidjs with mdx before me so i stole sum code from it [there blog on it is here](https://andi.dev/blog/how-solid-start-blog/) so i made use of that code for mine but modifying it so it fits uk gov design bleh\n-- I did other stuff but forgor\n-### Changelog\n-- [feat: basic ahh blog i ripped off from someones site but trying to make fit this design](https://api.github.com/repos/GizzyUwU/govgiz/commits/4b2613c90b8a156fd557a6569138a5416a1876cd)\n-\n-\n-0 likes • 131 min\n-\n-## Devlog 18071 • 2026-01-31\n-\n-Wow an hour just spent on this? ![bleh](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fbleh%2F8be6dc6939de105f.png&w=30&h=30&fit=contain&n=-1) uk gov being fucking annoying again! The UK Gov Design System lacks a code block which a [github issue](https://github.com/orgs/alphagov/projects/43/views/1?filterQuery=status%3A%22Not+published%22+code&pane=issue&itemId=10865678&issue=alphagov%7Cgovuk-design-system-backlog%7C8) was opened for it in 2018. so i spent past hour literally combining other components and jankiness to make one using prismjs for highlighting it looks pretty similar to the real one used on design system docs (which EXISTS BUT IN THE NPM ITSELF DOESNT????).\n-\n-0 likes • 86 min\n-\n-## Devlog 18087 • 2026-01-31\n-\n-BLEHHHHH ANOTHER UPDATE SO SOON? YES YES I UPDATE RIGHT MEOW ![bleh](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fbleh%2F8be6dc6939de105f.png&w=30&h=30&fit=contain&n=-1) \n-ANYWAY\n-- Tag system exists meow\n-- a bit of changes to blog.tsx i forgor what they was\n-### Changelog\n-- [feat: tags](https://api.github.com/repos/GizzyUwU/govgiz/commits/9b9687cd0dd56d0b86eb97ec784ac01946e39ece)\n-- [fix: add copy button](https://api.github.com/repos/GizzyUwU/govgiz/commits/ef7e40b4fd1f2690a1b582ae4f07e73f1b5253c5)\n-\n-\n-0 likes • 46 min\n-\n-## Devlog 18203 • 2026-01-31\n-\n-HAIIII ITS MEEEE AGAIN ;3c\n-This wasnt much but yipeee\n-- Uses giscus for comments (it uses GitHub discussions for comments) ![yay](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fyay%2F47296c029c8ee253.gif&w=30&h=30&fit=contain&n=-1) \n-- Default blog page to list all blogs instead of it 404ing on /blog\n-- Breadcrumbs instead of bunches of back buttons i have to add to every single page as its top level and dynamic ![3-blahaj-spinning](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3-blahaj-spinning%2F3814527118f8ddd7.gif&w=30&h=30&fit=contain&n=-1) \n-### Changelog\n-- [feat: default blogs page to list blogs, breadcrumbs at top level so not spamming back buttons](https://api.github.com/repos/GizzyUwU/govgiz/commits/462d06bc8a6a2444ee12cdcf90a1ca8a07488e81)\n-- [feat: giscus for comments, gov giz logo redirect to /](https://api.github.com/repos/GizzyUwU/govgiz/commits/a260a01ac6257e84efe3acdbee4ef790727bf6f1)\n-\n-\n-0 likes • 60 min\n+## Devlog 18818 • 2026-02-02\n \n-## Devlog 18303 • 2026-02-01\n+An hour? Damn not that long to be fair, ANYWAY hai chat ![3c](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3c%2F8c317faf11962206.png&w=30&h=30&fit=contain&n=-1) I did sum fixes\r\n+- 404 continued to explode on github so I fixed that finally by making a static 404.html not solidjs one,\r\n+- 404, Details and Home page is less fucked on mobile now\r\n+- Improved birthday count down text to do less typedjs typing\n \n-BLEHHH IM BACK AGAIN ![3c](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3c%2F8c317faf11962206.png&w=30&h=30&fit=contain&n=-1) since it has a blog now i gotta do the natural thing of being lazy! I made a github action to generate an mdx from these FT devlogs and projects and add it to the website mdx ![3c](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3c%2F8c317faf11962206.png&w=30&h=30&fit=contain&n=-1) i also did sum other stuff but thats not really important compared to that\n+0 likes • 52 min\n \n-0 likes • 162 min\n+## Devlog 18662 • 2026-02-01\n \n-## Devlog 18312 • 2026-02-01\n+KABOOM WE DO UPDATE YIPEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE\r\n+![3-blahaj-spinning](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3-blahaj-spinning%2F3814527118f8ddd7.gif&w=30&h=30&fit=contain&n=-1) \r\n+- 404 fixed i think on prod it works in dev\r\n+- DETAILS PAGE ABOUT ME ![3c](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3c%2F8c317faf11962206.png&w=30&h=30&fit=contain&n=-1) \r\n+- Sum other stuff i forgor\r\n+\r\n+### Changelog\r\n+- [fix: 404 exploding bleh](https://api.github.com/repos/GizzyUwU/govgiz/commits/04992389ebbb216020b9f2102cb9e3c53b31139a)\r\n+- [feat: fix 404 on github, 88x31 for this site, github follower count and star count i stole from cyteon, details page](https://api.github.com/repos/GizzyUwU/govgiz/commits/f4fbc7f37ad4baa27692f9d5a6df0e8f1421487b)\r\n \n-bleh i had to fix script and aciton that was painfal its 1 am im eepy but update\n-- github action runs update every 10m now correctly\n-- it prevents xss now from mdx bleh\n-- IM TIRIED\n \n-0 likes • 45 min\n+0 likes • 101 min\n \n ## Devlog 18619 • 2026-02-01\n \n@@ -103,27 +50,51 @@ i DID SOME THINGS\n \n 0 likes • 206 min\n \n-## Devlog 18662 • 2026-02-01\n+## Devlog 18312 • 2026-02-01\n \n-KABOOM WE DO UPDATE YIPEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE\r\n-![3-blahaj-spinning](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3-blahaj-spinning%2F3814527118f8ddd7.gif&w=30&h=30&fit=contain&n=-1) \r\n-- 404 fixed i think on prod it works in dev\r\n-- DETAILS PAGE ABOUT ME ![3c](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3c%2F8c317faf11962206.png&w=30&h=30&fit=contain&n=-1) \r\n-- Sum other stuff i forgor\r\n-\r\n+bleh i had to fix script and aciton that was painfal its 1 am im eepy but update\r\n+- github action runs update every 10m now correctly\r\n+- it prevents xss now from mdx bleh\r\n+- IM TIRIED\n+\n+0 likes • 45 min\n+\n+## Devlog 18303 • 2026-02-01\n+\n+BLEHHH IM BACK AGAIN ![3c](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3c%2F8c317faf11962206.png&w=30&h=30&fit=contain&n=-1) since it has a blog now i gotta do the natural thing of being lazy! I made a github action to generate an mdx from these FT devlogs and projects and add it to the website mdx ![3c](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3c%2F8c317faf11962206.png&w=30&h=30&fit=contain&n=-1) i also did sum other stuff but thats not really important compared to that\n+\n+0 likes • 162 min\n+\n+## Devlog 18203 • 2026-01-31\n+\n+HAIIII ITS MEEEE AGAIN ;3c\r\n+This wasnt much but yipeee\r\n+- Uses giscus for comments (it uses GitHub discussions for comments) ![yay](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fyay%2F47296c029c8ee253.gif&w=30&h=30&fit=contain&n=-1) \r\n+- Default blog page to list all blogs instead of it 404ing on /blog\r\n+- Breadcrumbs instead of bunches of back buttons i have to add to every single page as its top level and dynamic ![3-blahaj-spinning](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3-blahaj-spinning%2F3814527118f8ddd7.gif&w=30&h=30&fit=contain&n=-1) \r\n ### Changelog\r\n-- [fix: 404 exploding bleh](https://api.github.com/repos/GizzyUwU/govgiz/commits/04992389ebbb216020b9f2102cb9e3c53b31139a)\r\n-- [feat: fix 404 on github, 88x31 for this site, github follower count and star count i stole from cyteon, details page](https://api.github.com/repos/GizzyUwU/govgiz/commits/f4fbc7f37ad4baa27692f9d5a6df0e8f1421487b)\r\n+- [feat: default blogs page to list blogs, breadcrumbs at top level so not spamming back buttons](https://api.github.com/repos/GizzyUwU/govgiz/commits/462d06bc8a6a2444ee12cdcf90a1ca8a07488e81)\r\n+- [feat: giscus for comments, gov giz logo redirect to /](https://api.github.com/repos/GizzyUwU/govgiz/commits/a260a01ac6257e84efe3acdbee4ef790727bf6f1)\r\n \n \n-0 likes • 101 min\n+0 likes • 60 min\n \n-## Devlog 18818 • 2026-02-02\n+## Devlog 18087 • 2026-01-31\n \n-An hour? Damn not that long to be fair, ANYWAY hai chat ![3c](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2F3c%2F8c317faf11962206.png&w=30&h=30&fit=contain&n=-1) I did sum fixes\r\n-- 404 continued to explode on github so I fixed that finally by making a static 404.html not solidjs one,\r\n-- 404, Details and Home page is less fucked on mobile now\r\n-- Improved birthday count down text to do less typedjs typing\n+BLEHHHHH ANOTHER UPDATE SO SOON? YES YES I UPDATE RIGHT MEOW ![bleh](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fbleh%2F8be6dc6939de105f.png&w=30&h=30&fit=contain&n=-1) \r\n+ANYWAY\r\n+- Tag system exists meow\r\n+- a bit of changes to blog.tsx i forgor what they was\r\n+### Changelog\r\n+- [feat: tags](https://api.github.com/repos/GizzyUwU/govgiz/commits/9b9687cd0dd56d0b86eb97ec784ac01946e39ece)\r\n+- [fix: add copy button](https://api.github.com/repos/GizzyUwU/govgiz/commits/ef7e40b4fd1f2690a1b582ae4f07e73f1b5253c5)\r\n \n-0 likes • 52 min\n+\n+0 likes • 46 min\n+\n+## Devlog 18071 • 2026-01-31\n+\n+Wow an hour just spent on this? ![bleh](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fbleh%2F8be6dc6939de105f.png&w=30&h=30&fit=contain&n=-1) uk gov being fucking annoying again! The UK Gov Design System lacks a code block which a [github issue](https://github.com/orgs/alphagov/projects/43/views/1?filterQuery=status%3A%22Not+published%22+code&pane=issue&itemId=10865678&issue=alphagov%7Cgovuk-design-system-backlog%7C8) was opened for it in 2018. so i spent past hour literally combining other components and jankiness to make one using prismjs for highlighting it looks pretty similar to the real one used on design system docs (which EXISTS BUT IN THE NPM ITSELF DOESNT????).\n+\n+0 likes • 86 min\n "},{"sha":"9ab6f99a5bdfe47e7dfca5b4a8e34942ec2d0026","filename":"src/routes/blog/posts/logpheus.md","status":"modified","additions":76,"deletions":158,"changes":234,"blob_url":"https://github.com/GizzyUwU/govgiz/blob/07b3487f54bc06b62bcceb717473469060c4a358/src%2Froutes%2Fblog%2Fposts%2Flogpheus.md","raw_url":"https://github.com/GizzyUwU/govgiz/raw/07b3487f54bc06b62bcceb717473469060c4a358/src%2Froutes%2Fblog%2Fposts%2Flogpheus.md","contents_url":"https://api.github.com/repos/GizzyUwU/govgiz/contents/src%2Froutes%2Fblog%2Fposts%2Flogpheus.md?ref=07b3487f54bc06b62bcceb717473469060c4a358","patch":"@@ -8,228 +8,146 @@ tags:\n   - projects\n ---\n \n-## Devlog 2214 • 2025-12-24\n-\n-I need a devlog to test so uhm past hour and half i well made lib file for ft its a class file so i can use it in other projects if i want to too then using that i made it pull projects then pull devlogs if no cache file exists it adds all devlogs of project id which is in apiKeys.json which stores project id as key then under it the api key and channel to post it to\n-\n-0 likes • 98 min\n-\n-## Devlog 2250 • 2025-12-24\n-\n-The past hour I have been debugging and making the bot worked implementing /logpheus-add to add projects to the list and it works i just need to add /logpheus-remove now :3c and also docker support\n-\n-0 likes • 75 min\n-\n-## Devlog 2261 • 2025-12-24\n-\n-Woah this was a fast devlog i made /logpheus-remove so you can now remove your project from a channel! and i also realised im an idiot! i now gotta modify the code to not use project id as a prefix and instead use channel id so someone cant block you from adding your proj to your channel because they added it to theres!\n-\n-0 likes • 21 min\n-\n-## Devlog 2272 • 2025-12-24\n-\n-Woah fast fix too i swapped it to use api key instead sas the prefix only allowing 1 api key to be used for a channel but a channe4l can have multiple projects subscribed so yipeeeeeeeee\n-\n-0 likes • 27 min\n-\n-## Devlog 2308 • 2025-12-24\n+## Devlog 17028 • 2026-01-28\n \n-Prodtato. The bot is in prod and seems stable working in my channel! The docker is complete and also finished the readme showing how to use it but also how to self host it if you dont trust me with your api key which is BORING TRUST MEEEEEE its basically done i ship i think i did other stuff too but i forgor\n+Chat, are we codemaxxing rn? no stupid we are bugfixing dumb ahh\r\n+- Fixed my channel being spammed in dev cuz i dropped project table by adding fallback to checker to prevent that\r\n+- Fixed sentry context not being included in commands/views sending sentry errors\r\n+- I realised slack modals have private metadata and also has body so instead of manually parsing the channel and user id through view i used that to hide it from user\r\n+- Idiotproofed the bot more because people somehow keep using other self hosted instances so now titles of modals use prefix as title which is different on every self hosted instance and for offical prod its just logpheus so if you STILL use wrong instance you are dumb nothing to say more about that\r\n+- DATA COMMADN TO SEE WHAT DATA LOGPHEUS HAS ON YOU YIPEEEEEEEEEEE ![yay](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fyay%2F47296c029c8ee253.gif&w=30&h=30&fit=contain&n=-1) \r\n+- Config command not channel specific now it uses user id to update api key\r\n+- Tells user that prod exploded instead of ghostting them when it does\n \n-0 likes • 45 min\n+0 likes • 156 min\n \n-## Devlog 2321 • 2025-12-24\n+## Devlog 16313 • 2026-01-26\n \n-An extra 21 minutes for me because docker sucks! I literally spent 21 minutes just trying to get apiKeys to be persistant in the docker containuer using docker volumes i hate docker NOW ITS PRODTATO READY\n+Almost 3 hours again GOD i kinda forgor was gonna do one this morning but devlogs was done ANYWAY\r\n+- Register command and project command to register to use bot as general purpose just for its commands, user to get a persons profile and project to look at project by id ![bleh](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fbleh%2F8be6dc6939de105f.png&w=30&h=30&fit=contain&n=-1) \r\n+- Bug fixes such as shutting up the error logged when FT did a restart or anything like that ![sickbro](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fsickbro%2Fdeed2ff6a3f25263.png&w=30&h=30&fit=contain&n=-1) \r\n+- Drops disabled clients from saved clients arr because they are disabled\r\n+- More bug fixes as an FT api route changed without me knowing breaking the bot so had to fix that and fallback so if it happens again it logs to sentry as sus ![sussy](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fsussy%2Fcc3a0a8a261caea2.png&w=30&h=30&fit=contain&n=-1)\r\n+- Did a update to readme to match new stuff ![yay](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fyay%2F47296c029c8ee253.gif&w=30&h=30&fit=contain&n=-1) \n \n-0 likes • 20 min\n+0 likes • 161 min\n \n-## Devlog 2912 • 2025-12-26\n+## Devlog 15877 • 2026-01-25\n \n-I need a devlog to test but the bot's handling system of new devlogs is being changed to do less work by making us of the new devlog_id in /api/v1/projects/:id making the bot and probably the api do less work thats just assuming but atleast the bot will do less work so peak!!!\n+oop 3h already past jesus anyway\r\n+i fixed sum bugs\r\n+user command! get someones ft profile from sometimes slack account\r\n+opt outs column for something soon owo\n \n-0 likes • 48 min\n+0 likes • 182 min\n \n-## Devlog 2938 • 2025-12-26\n+## Devlog 15662 • 2026-01-25\n \n-Okay bot now makes use of devlog_ids to check so less resources during hosting and should also mean less api hits :3c also now /logpheus-stats to see how many users it has and every req has header that makes bot show up on the extensions page\n+Another time for a devlog!!!!!!!!!!!!!!!!!!!!!!! BLEH :hyper-dino-wave:\r\n+I spent most of the time improving the error handling of logpheus so it makes use of MY BUGSINK MOREEEE and its more specific with errors so now if it isnt 401 it doesnt default to no project exists at id it only does that at 404 :3c with MORE CONTEXT TOO so better easier debugging\n \n-0 likes • 34 min\n+0 likes • 117 min\n \n-## Devlog 3026 • 2025-12-26\n+## Devlog 15325 • 2026-01-24\n \n-More improvements to the code! The bot message has improved to be more detailed with the devlog and also improved the code by setting types to the functions used so when called you can know what data is returned easily from typescript and your ide and also cleaned up some of the code.\n+uhm pushed to prod the changes i madeto table etc fixed sum stuff took down prod for like half and hour as u do so fixed that because of dumb migration issues bleh but it does make use of new tables now for data not all data in new tables tho like last devlog timestamp or the store of user ids so i need to manually add uids in for users previous to the update but also change it so it stores and uses last devlog timestamp as main check and fallback to id check if need be\n \n-0 likes • 44 min\n+0 likes • 71 min\n \n-## Devlog 3075 • 2025-12-26\n+## Devlog 15281 • 2026-01-24\n \n-Clean up of code to be more easier to develop in by seperating views/commands out into seperate files, fixed cache files that was done before latest update using differnet cache setup not causing any issues but with this update would of so it now migrates old caches to new format and now includes ship status!!!!!!!\n+bleh more time for me! I did sum cleaning moving devlog check to sept file and no longer rely on loadApiKeys which is super overkill for 1 function using it since func was legacy code used a lot before changing to drizzle etc\n \n-0 likes • 83 min\n+0 likes • 54 min\n \n-## Devlog 15662 • 2026-01-25\n+## Devlog 15243 • 2026-01-24\n \n-Another time for a devlog!!!!!!!!!!!!!!!!!!!!!!! BLEH :hyper-dino-wave:\n-I spent most of the time improving the error handling of logpheus so it makes use of MY BUGSINK MOREEEE and its more specific with errors so now if it isnt 401 it doesnt default to no project exists at id it only does that at 404 :3c with MORE CONTEXT TOO so better easier debugging\n+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n+I work on moving schema :3c and also cleaning up the codebase so its more readable as ts confusing also improved schema migration by learning how to actually use drizzle frfr\n \n-0 likes • 117 min\n+0 likes • 87 min\n \n-## Devlog 15877 • 2026-01-25\n+## Devlog 15051 • 2026-01-23\n \n-oop 3h already past jesus anyway\n-i fixed sum bugs\n-user command! get someones ft profile from sometimes slack account\n-opt outs column for something soon owo\n+Well uhm this was a crazy one, a self hosted instance caused offical to die because of how slack handles slash commands its extremely secure setup allows other bots to overwrite the slash commnads you have to their own and dw it does the exact opposite of telling user this it still shows that the command you are about to run is from the offical bot so i had to modify it so self hosted instances now use user id and bot user as prefix to fix it also updating schema to work more efficiently then and clean up code\n \n-0 likes • 182 min\n+0 likes • 222 min\n \n-## Devlog 16313 • 2026-01-26\n+## Devlog 14494 • 2026-01-21\n \n-Almost 3 hours again GOD i kinda forgor was gonna do one this morning but devlogs was done ANYWAY\n-- Register command and project command to register to use bot as general purpose just for its commands, user to get a persons profile and project to look at project by id ![bleh](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fbleh%2F8be6dc6939de105f.png&w=30&h=30&fit=contain&n=-1) \n-- Bug fixes such as shutting up the error logged when FT did a restart or anything like that ![sickbro](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fsickbro%2Fdeed2ff6a3f25263.png&w=30&h=30&fit=contain&n=-1) \n-- Drops disabled clients from saved clients arr because they are disabled\n-- More bug fixes as an FT api route changed without me knowing breaking the bot so had to fix that and fallback so if it happens again it logs to sentry as sus ![sussy](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fsussy%2Fcc3a0a8a261caea2.png&w=30&h=30&fit=contain&n=-1)\n-- Did a update to readme to match new stuff ![yay](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fyay%2F47296c029c8ee253.gif&w=30&h=30&fit=contain&n=-1) \n+Mreowwwww! I'm literally just improving logpheus handling of issues to use bugsink to post errors so I can read but also handle 401 errors better so I'm not being spammed with errors because you guys being annoying with your api keys\n \n-0 likes • 161 min\n+1 likes • 105 min\n \n-## Devlog 17028 • 2026-01-28\n+## Devlog 4012 • 2025-12-29\n \n-Chat, are we codemaxxing rn? no stupid we are bugfixing dumb ahh\n-- Fixed my channel being spammed in dev cuz i dropped project table by adding fallback to checker to prevent that\n-- Fixed sentry context not being included in commands/views sending sentry errors\n-- I realised slack modals have private metadata and also has body so instead of manually parsing the channel and user id through view i used that to hide it from user\n-- Idiotproofed the bot more because people somehow keep using other self hosted instances so now titles of modals use prefix as title which is different on every self hosted instance and for offical prod its just logpheus so if you STILL use wrong instance you are dumb nothing to say more about that\n-- DATA COMMADN TO SEE WHAT DATA LOGPHEUS HAS ON YOU YIPEEEEEEEEEEE ![yay](https://images.weserv.nl/?url=https%3A%2F%2Femoji.slack-edge.com%2FT09V59WQY1E%2Fyay%2F47296c029c8ee253.gif&w=30&h=30&fit=contain&n=-1) \n-- Config command not channel specific now it uses user id to update api key\n-- Tells user that prod exploded instead of ghostting them when it does\n+UH MORE HOURS FOR ME YIPEEEEEE so basically i in this time explode prod a couple times because of the new dockerfile but fixed it added improved error handling so that it doesnt spam my logs when something like a 401 happens i added ability to change api key in a channel using /logpheus-config, i converted timestamps to utc and now use the good format not the us format for dates so DD/MM/YYYY and it is now clickable timestamp so users can click it and convert it to their timezone if they want to and i moved the ext header which is useless to axios.create instead of spammed in every func call\n \n-0 likes • 156 min\n+0 likes • 103 min\n \n ## Devlog 3646 • 2025-12-28\n \n Might aswell make a devlog for the stuff i did even though not really important. During this time I improved upon the add command to post more detail of the project when being added, I made changes to the Dockerfile to improve its build times using docker's cache mounts and removing unnecessary stages (i stole the build file from buns website and its very over complicated for this) and I made pending review after ship message more clear and once reviewed message more clear.\n \n 0 likes • 31 min\n \n-## Devlog 4012 • 2025-12-29\n-\n-UH MORE HOURS FOR ME YIPEEEEEE so basically i in this time explode prod a couple times because of the new dockerfile but fixed it added improved error handling so that it doesnt spam my logs when something like a 401 happens i added ability to change api key in a channel using /logpheus-config, i converted timestamps to utc and now use the good format not the us format for dates so DD/MM/YYYY and it is now clickable timestamp so users can click it and convert it to their timezone if they want to and i moved the ext header which is useless to axios.create instead of spammed in every func call\n-\n-0 likes • 103 min\n-\n-## Devlog 4147 • 2025-12-29\n-\n-# Haiiiiiiiiiiii\n-> I NEED MARKDOWN TO TEST LOGPHEUS THIS ISNT REALLY A DEVLOG JUST TESTING SOMETHING DEVLOG SOON THO\n-\n-~~REA~~\n-*DK*\n-**YOUR BALD**\n-- QUACK\n-- A\n+## Devlog 3075 • 2025-12-26\n \n-1. A\n-2. a\n-- [x] quacked at people today\n-- [ ] meowed at people today\n-`sniffs you`\n-```\n-arf arf\n-```\n-[quacker](https://example.com)\n+Clean up of code to be more easier to develop in by seperating views/commands out into seperate files, fixed cache files that was done before latest update using differnet cache setup not causing any issues but with this update would of so it now migrates old caches to new format and now includes ship status!!!!!!!\n \n+0 likes • 83 min\n \n----\n-sadgagagdag\n+## Devlog 3026 • 2025-12-26\n \n-0 likes • 19 min\n+More improvements to the code! The bot message has improved to be more detailed with the devlog and also improved the code by setting types to the functions used so when called you can know what data is returned easily from typescript and your ide and also cleaned up some of the code.\n \n-## Devlog 4157 • 2025-12-29\n+0 likes • 44 min\n \n-Trying to implement support for markdown in logpheus\n-<u>meow</u>\n+## Devlog 2938 • 2025-12-26\n \n-i like <u>potatos</u>\n+Okay bot now makes use of devlog_ids to check so less resources during hosting and should also mean less api hits :3c also now /logpheus-stats to see how many users it has and every req has header that makes bot show up on the extensions page\n \n 0 likes • 34 min\n \n-## Devlog 4167 • 2025-12-29\n-\n-OKAY REAL DEVLOG THIS TIME, markdown support is now fully added i think yes\n-\n-0 likes • 28 min\n-\n-## Devlog 4394 • 2025-12-30\n-\n-# Migration!\n-Using json was really annoying especially for every project using their own cache json file for devlogs so instead i swapped to SQL which is using bun:sqlite for storing api keys, projects etc taking advantage of buns implementation which is pretty fast but also its less resource usage slightly because I'm not using json for everything I need parsing it stringifying it pushing it to file a lot. All previous json files will be migrated on start to the new db.\n-\n-0 likes • 113 min\n-\n-## Devlog 4899 • 2025-12-31\n-\n-This whole devlog time was spent on another migration because I found out about pglite (postgres in wasm) and drizzle supported it so I migrated over to that instead because drizzle makes my life way more convienent especially working on logpheus it just took so long to setup as it was my first time using drizzle and i had to also create migration from sqlite and json to pglite to ensure no data loss.\n-\n-0 likes • 290 min\n-\n-## Devlog 4943 • 2025-12-31\n-\n-WOOOOOOO just took down prod for 10 minutes because im dumb! I spent this time fixing my dumb mistakes, adding support to use full postgres in prod so I only need pglite in dev making my life easier in both cases and adding validation of api keys when added!\n-\n-0 likes • 124 min\n-\n-## Devlog 4952 • 2026-01-01\n-\n-I'm logging this cuz free time! Logpheus felt like going on a spamming spree because of a bug in my code. Every minute a check ran and my dumbass made it update db to the value of the check so every 2 minutes it would change value back to one that causes shipped message to post causing spam hopefully this should be fixed tho\n-\n-0 likes • 29 min\n-\n-## Devlog 4960 • 2026-01-01\n+## Devlog 2912 • 2025-12-26\n \n-Nvm i hate code! 16m of more bug fixing to get it to stop spamming qwp\n+I need a devlog to test but the bot's handling system of new devlogs is being changed to do less work by making us of the new devlog_id in /api/v1/projects/:id making the bot and probably the api do less work thats just assuming but atleast the bot will do less work so peak!!!\n \n-0 likes • 16 min\n+0 likes • 48 min\n \n-## Devlog 13586 • 2026-01-19\n+## Devlog 2321 • 2025-12-24\n \n-Bleh not devlogged this in a while but i got time so might aswell\n-Fixed bugs!\n-- You can now add multiple projects to one api key as fixed bug preventing this\n-- you can no longer be a stinky and try add the same project twice under a api key\n+An extra 21 minutes for me because docker sucks! I literally spent 21 minutes just trying to get apiKeys to be persistant in the docker containuer using docker volumes i hate docker NOW ITS PRODTATO READY\n \n-0 likes • 46 min\n+0 likes • 20 min\n \n-## Devlog 14494 • 2026-01-21\n+## Devlog 2308 • 2025-12-24\n \n-Mreowwwww! I'm literally just improving logpheus handling of issues to use bugsink to post errors so I can read but also handle 401 errors better so I'm not being spammed with errors because you guys being annoying with your api keys\n+Prodtato. The bot is in prod and seems stable working in my channel! The docker is complete and also finished the readme showing how to use it but also how to self host it if you dont trust me with your api key which is BORING TRUST MEEEEEE its basically done i ship i think i did other stuff too but i forgor\n \n-1 likes • 105 min\n+0 likes • 45 min\n \n-## Devlog 15325 • 2026-01-24\n+## Devlog 2272 • 2025-12-24\n \n-uhm pushed to prod the changes i madeto table etc fixed sum stuff took down prod for like half and hour as u do so fixed that because of dumb migration issues bleh but it does make use of new tables now for data not all data in new tables tho like last devlog timestamp or the store of user ids so i need to manually add uids in for users previous to the update but also change it so it stores and uses last devlog timestamp as main check and fallback to id check if need be\n+Woah fast fix too i swapped it to use api key instead sas the prefix only allowing 1 api key to be used for a channel but a channe4l can have multiple projects subscribed so yipeeeeeeeee\n \n-0 likes • 71 min\n+0 likes • 27 min\n \n-## Devlog 15051 • 2026-01-23\n+## Devlog 2261 • 2025-12-24\n \n-Well uhm this was a crazy one, a self hosted instance caused offical to die because of how slack handles slash commands its extremely secure setup allows other bots to overwrite the slash commnads you have to their own and dw it does the exact opposite of telling user this it still shows that the command you are about to run is from the offical bot so i had to modify it so self hosted instances now use user id and bot user as prefix to fix it also updating schema to work more efficiently then and clean up code\n+Woah this was a fast devlog i made /logpheus-remove so you can now remove your project from a channel! and i also realised im an idiot! i now gotta modify the code to not use project id as a prefix and instead use channel id so someone cant block you from adding your proj to your channel because they added it to theres!\n \n-0 likes • 222 min\n+0 likes • 21 min\n \n-## Devlog 15243 • 2026-01-24\n+## Devlog 2250 • 2025-12-24\n \n-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n-I work on moving schema :3c and also cleaning up the codebase so its more readable as ts confusing also improved schema migration by learning how to actually use drizzle frfr\n+The past hour I have been debugging and making the bot worked implementing /logpheus-add to add projects to the list and it works i just need to add /logpheus-remove now :3c and also docker support\n \n-0 likes • 87 min\n+0 likes • 75 min\n \n-## Devlog 15281 • 2026-01-24\n+## Devlog 2214 • 2025-12-24\n \n-bleh more time for me! I did sum cleaning moving devlog check to sept file and no longer rely on loadApiKeys which is super overkill for 1 function using it since func was legacy code used a lot before changing to drizzle etc\n+I need a devlog to test so uhm past hour and half i well made lib file for ft its a class file so i can use it in other projects if i want to too then using that i made it pull projects then pull devlogs if no cache file exists it adds all devlogs of project id which is in apiKeys.json which stores project id as key then under it the api key and channel to post it to\n \n-0 likes • 54 min\n+0 likes • 98 min\n "},{"sha":"e59b883a9578e16cc3a9bbf7997382dc6570f47b","filename":"src/routes/blog/posts/suri.md","status":"modified","additions":36,"deletions":36,"changes":72,"blob_url":"https://github.com/GizzyUwU/govgiz/blob/07b3487f54bc06b62bcceb717473469060c4a358/src%2Froutes%2Fblog%2Fposts%2Fsuri.md","raw_url":"https://github.com/GizzyUwU/govgiz/raw/07b3487f54bc06b62bcceb717473469060c4a358/src%2Froutes%2Fblog%2Fposts%2Fsuri.md","contents_url":"https://api.github.com/repos/GizzyUwU/govgiz/contents/src%2Froutes%2Fblog%2Fposts%2Fsuri.md?ref=07b3487f54bc06b62bcceb717473469060c4a358","patch":"@@ -8,75 +8,75 @@ tags:\n   - projects\n ---\n \n-## Devlog 358 • 2025-12-20\n-\n-Yes I am 1h 48m in to this and I have made barely any progress. Blame slack for that I spent all this time just trying to get convo history to work :hs:\n-\n-0 likes • 111 min\n-\n-## Devlog 685 • 2025-12-21\n+## Devlog 6298 • 2026-01-05\n \n-I spent most of the 2h 33m trying and debugging just to get a single d cookie that slack auth uses it was pain in the ass since webkit2gtk kept crashing (because it sucks ass) when i tried to intercept responses to look through there headers under I realised tauri supports grabbing webview windows cookies so I swapped to on_navigation to look for path /checkcookie which slack auth uses to check for cookie is valid so we know the webview will have the cookie at that time then we extract and print it for now. I still gotta grab the second token although that should be 10x easier since slack sends that one over a network request only requiring the d cookie to get it although it does require some parsing since the response is js script? thats really stupid\n+I implemented more of the formatting :3c also added names back as i broke that\n \n-0 likes • 152 min\n+1 likes • 68 min\n \n-## Devlog 1029 • 2025-12-22\n+## Devlog 6260 • 2026-01-05\n \n-Well this one is a long one. I literally spent 4 hours and the feature isn't done yet. I can confirm that I hate slack, I have gained more hate for tauri and more love for tauri. I tried first to make the request for data i need manually which for some god known reason refused to work and kept 404ing aka i hate slack, i then spent my time trying to grab data from session storage before slack wiped it which that didnt work out then I realised it moves the data to localStorage which is well weird and I wrote rust code to grab that then I spent more time just trying to get that data from webview to frontend code and FINALLY I GOT THE DATA login still not done tho now take a picturee of my shit code\n+Better parsing of rich text blocks :3c not completely dont yet tho\n \n-0 likes • 242 min\n+1 likes • 41 min\n \n-## Devlog 1054 • 2025-12-22\n+## Devlog 6086 • 2026-01-04\n \n-30 minutes later and it works mostly now! The webview window now closes once finished and you can view channels and message history again :3c\n+A bit better message parsing :3c it now has semi good image support setup image is kinda large gotta fix that but it also unescapes html encode stuff now so yipee\n \n-0 likes • 31 min\n+0 likes • 60 min\n \n-## Devlog 1903 • 2025-12-23\n+## Devlog 5979 • 2026-01-04\n \n-Well this was semi painful but WEBSOCKET mhm yes we got slack websocket in it now and because slack sends so much data even on channels your not currently looking at you could multiple channels at once on it :uuh: mhm yes you can see people typing, that someone joined someone sent a message while not being in that channel very sigma must say but this was pain to get to work\n+Names! Yes this could of been done in like 30 minutes but im a twat i made a stupid mistake causing me to not match the user id to the gotten ids for the channel because i used channel: channelId in the body not channels: [channelId] causing slack to throw workspace users not channel users. I also moved chat to its own file instead of just in the index.tsx file\n \n-0 likes • 143 min\n+0 likes • 131 min\n \n-## Devlog 2160 • 2025-12-24\n+## Devlog 5720 • 2026-01-03\n \n-More modifications to auth! This time not because slack sucks but because I wanted auto login. It now saves xoxd and xoxc in a json file with name scheme \"slack-${user.name}.json\" user,name being active system user so different system users dont got same file and don't worry it's encrypted with a key set in system keyring under that users account. The user account name is grabbed using a tauri command with using the rust crate \"users' to get the active system account.\n+Yeah my previous fix to shutup couldnt find callback id annoyed me so i spent this whole devlog time just trying to get my shit rust code to work so it prevents default reload and instead causes a window relaunch clearing out any callback ids so no console spam because it relaunches on reload\n \n-0 likes • 125 min\n+0 likes • 99 min\n \n ## Devlog 5676 • 2026-01-03\n \n I forgor to make a devlog qwp. ANYWAY 10 days past and i did some stuff :3 I tried to get tauri to shutup about \"couldnn't find callback id\" because it sucks at cleaning up its own resources with its plugins that took a while until i just made console.warn filter it out of console to shut it up instead it aint my job to fix tauris shit,  I also made a bit of a ui for it and real time messages from the websocket and ability to post messages! (dont mind the random person on the right i stole the ui from flowbite :3c)\n \n 0 likes • 318 min\n \n-## Devlog 5720 • 2026-01-03\n+## Devlog 2160 • 2025-12-24\n \n-Yeah my previous fix to shutup couldnt find callback id annoyed me so i spent this whole devlog time just trying to get my shit rust code to work so it prevents default reload and instead causes a window relaunch clearing out any callback ids so no console spam because it relaunches on reload\n+More modifications to auth! This time not because slack sucks but because I wanted auto login. It now saves xoxd and xoxc in a json file with name scheme \"slack-${user.name}.json\" user,name being active system user so different system users dont got same file and don't worry it's encrypted with a key set in system keyring under that users account. The user account name is grabbed using a tauri command with using the rust crate \"users' to get the active system account.\n \n-0 likes • 99 min\n+0 likes • 125 min\n \n-## Devlog 5979 • 2026-01-04\n+## Devlog 1903 • 2025-12-23\n \n-Names! Yes this could of been done in like 30 minutes but im a twat i made a stupid mistake causing me to not match the user id to the gotten ids for the channel because i used channel: channelId in the body not channels: [channelId] causing slack to throw workspace users not channel users. I also moved chat to its own file instead of just in the index.tsx file\n+Well this was semi painful but WEBSOCKET mhm yes we got slack websocket in it now and because slack sends so much data even on channels your not currently looking at you could multiple channels at once on it :uuh: mhm yes you can see people typing, that someone joined someone sent a message while not being in that channel very sigma must say but this was pain to get to work\n \n-0 likes • 131 min\n+0 likes • 143 min\n \n-## Devlog 6086 • 2026-01-04\n+## Devlog 1054 • 2025-12-22\n \n-A bit better message parsing :3c it now has semi good image support setup image is kinda large gotta fix that but it also unescapes html encode stuff now so yipee\n+30 minutes later and it works mostly now! The webview window now closes once finished and you can view channels and message history again :3c\n \n-0 likes • 60 min\n+0 likes • 31 min\n \n-## Devlog 6260 • 2026-01-05\n+## Devlog 1029 • 2025-12-22\n \n-Better parsing of rich text blocks :3c not completely dont yet tho\n+Well this one is a long one. I literally spent 4 hours and the feature isn't done yet. I can confirm that I hate slack, I have gained more hate for tauri and more love for tauri. I tried first to make the request for data i need manually which for some god known reason refused to work and kept 404ing aka i hate slack, i then spent my time trying to grab data from session storage before slack wiped it which that didnt work out then I realised it moves the data to localStorage which is well weird and I wrote rust code to grab that then I spent more time just trying to get that data from webview to frontend code and FINALLY I GOT THE DATA login still not done tho now take a picturee of my shit code\n \n-1 likes • 41 min\n+0 likes • 242 min\n \n-## Devlog 6298 • 2026-01-05\n+## Devlog 685 • 2025-12-21\n \n-I implemented more of the formatting :3c also added names back as i broke that\n+I spent most of the 2h 33m trying and debugging just to get a single d cookie that slack auth uses it was pain in the ass since webkit2gtk kept crashing (because it sucks ass) when i tried to intercept responses to look through there headers under I realised tauri supports grabbing webview windows cookies so I swapped to on_navigation to look for path /checkcookie which slack auth uses to check for cookie is valid so we know the webview will have the cookie at that time then we extract and print it for now. I still gotta grab the second token although that should be 10x easier since slack sends that one over a network request only requiring the d cookie to get it although it does require some parsing since the response is js script? thats really stupid\n \n-1 likes • 68 min\n+0 likes • 152 min\n+\n+## Devlog 358 • 2025-12-20\n+\n+Yes I am 1h 48m in to this and I have made barely any progress. Blame slack for that I spent all this time just trying to get convo history to work :hs:\n+\n+0 likes • 111 min\n "},{"sha":"37b5b820670e4be161dbf03784d3460f438e0fd5","filename":"src/routes/index.tsx","status":"modified","additions":2,"deletions":2,"changes":4,"blob_url":"https://github.com/GizzyUwU/govgiz/blob/07b3487f54bc06b62bcceb717473469060c4a358/src%2Froutes%2Findex.tsx","raw_url":"https://github.com/GizzyUwU/govgiz/raw/07b3487f54bc06b62bcceb717473469060c4a358/src%2Froutes%2Findex.tsx","contents_url":"https://api.github.com/repos/GizzyUwU/govgiz/contents/src%2Froutes%2Findex.tsx?ref=07b3487f54bc06b62bcceb717473469060c4a358","patch":"@@ -193,8 +193,8 @@ export default function Home() {\n         I'm a <span id=\"typed-list\"></span>based in the United Kingdom!\n       </p>\n       <Show when={stats()}>\n-        <div class=\"govuk-inset-text govuk-!-margin-bottom-2\">\n-          <p class=\"govuk-body-s\">\n+        <div class=\"govuk-inset-text govuk-!-margin-bottom-2 govuk-!-margin-top-0\">\n+          <p class=\"govuk-body\">\n             <span id=\"typed-time\"></span> -{\" \"}\n             {stats().data?.human_readable_total\n               ? stats().data.human_readable_total.replace(/\\s*\\d+s/, \"\")"}]}