Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 2018 lines 89 kB view raw
1🪦 Completed Tasks (dumped from `README.txt`) 2 3 * `kidlisp` * 4 - Get $bez working with proper syntax highlighting. 5 - Future proof URL sharing and attribution. 6 - [x] Any kidlisp that runs successfully should automatically be added to the 7 database and given a unique UTC timestamp identifier or other meaningful 8 identifier. 9 - [x] Uploaded kidlisp's uniqueness should be enforced somehow similar to how 10 handles must be unique. If another record is found just return or use that. 11 - [x] Uploaded kidlisp should automatically be attributed to the user who uploaded it 12 or be treated as anonymous contributions otherwise. 13 - [c] If the kidlisp was generated from a prompt, that prompt should be recorded 14 as was the model used to generate it and a git hash reference to the 15 pre-prompt file so it could be regenerated under various conditions. 16 17 * Regressions * 18 - [x] `painting` ... no longer is tappable because of 19 new multiline label hitboxes? 20 21 * from 'chat.mjs' * 22 + Done 23 - [x] Add textual links to AC chat. 24 - [x] Does adding the radar key prevent gcp logs from running? 25 - [x] Or maybe the log name / id needs to change each time? 26 - [x] Try adding the radar key back or... running a deployment again with the same log name... 27 - [x] Add a basic client to `sotce-net`. 28 - [x] Start with 'dev' / 'local' version. 29 - [x] Write it as a totally separate UI layer that always connects. 30 - [x️] Import the chat module to `sotce-net`. 31 - [x] Set up another instance of this chat for `sotce-net` that... 32 - [x] Will have a different subdomain setup so `conductor` will need updates. 33 - [x] Add the new production deploy command to package.json 34 - [x] Walk through `conductor.mjs` to see where chat-system needs changes. 35 - [x] Set up separate subdomain in Cloudflare at `chat.sotce.net`. 36 - [x] Run a test deployment. 37 - [x] How will it know what version it's running both in production and in development? 38 - [x] Run the sotce-net instance in development in addition to the AC one in emacs. 39 - [x] Will use a different table in the database like `chat-sotce-net` instead 40 of chat-system. 41 - [x] Will require subscriber authorization from `sotce-net` users (code can be found in`sotce-net.mjs`) 42 if running that instance in order to actually send messages but not to join or 43 observe chats. 44 - [x] Add the proper commands for a new system to package.json. 45 - [x] Development command. 46 - [x] Run the development command in tandem with `chat-system` and 47 see if it boots up properly. 48 - [x] Update nanos versions / dependencies in this dir. 49 - [x] Set up logging so I know why this server is crashing. 50 - [x] Maybe it's a setting in Google Cloud to log the serial console. 51 - [x] Also check the nanos logs. 52 - [x] Or maybe I need to use an external service. (Signed up for nanos Radar) 53 54 * `shop` launch * 55 + Done 56 - [x] Modify homepage a bit and product slide shows and then launch via Instagram? 57 - [x] Homepage. 58 - [x] Mobile product view. 59 - [x] Edit Shopify code: https://admin.shopify.com/store/3pc8se-sj/themes/141869547701 60 - [x] Make sure 'corner labels' expand from shopify to AC. 61 - [x] Fix prompt~hi not opening keyboard / being weird on reload. 62 - [x] Get the backspace key shortcut to work? 63 - [x] Add titles for each drawing and final descriptions. 64 - [x] Add little corner guy to Shopify bottom right corner from `docs`. 65 66* `shop` items to add * 67 https://aesthetic.computer/share~25.4.13.18.54 68 https://shop.aesthetic.computer/products/pictures_25-4-13-18-54 69 https://aesthetic.computer/share~25.4.13.19.24 70 https://shop.aesthetic.computer/products/pictures_25-4-13-19-24 71 https://aesthetic.computer/share~25.4.13.19.06 72 https://shop.aesthetic.computer/products/pictures_25-4-13-19-06 73 https://aesthetic.computer/share~25.4.13.17.47 74 https://shop.aesthetic.computer/products/pictures_25-4-13-17-47 75 https://aesthetic.computer/share~25.4.13.18.18 76 https://shop.aesthetic.computer/products/25-4-13-18-18 77 78- [x] Fix `tape`. 79 80* swipe to share * 81 - [x] Implement swipe scrub to share. 82 83*** put 'chat' back up with increased moderation support *** 84 - [x] Test muting and unmuting mixed in with the below. 85 - [x] (Incognito) 86 - [x] Make a new account: `me+stripmepls@jas.life`. 87 - [x] Make a new handle 'stripmepls'. 88 - [x] (From @jeffrey) 89 - [x] Use `admin:handle:strip @stripmepls` on the `prompt`. 90 - [x] Check the other tab. 91 - [x] Try to make a new handle again. 92 - [x] Delete the account with `delete-erase-and-forget-me`. 93 + Done 94 - [x] Test stripping. 95 96*** `stample` *** 97 - [x] Make initial prototype. 98 - [?] Integrate into `notepat` at some point? 99 100*** `tv` is a `notepat` remote *** 101- [?] Use `tv channel-name-here` to scope the udp broadcast to a particular 102 channel. 103- [x] Have `notepat` send udp messages over to `tv`. 104- [x] Make the `tv` piece which simply responds to udp 105 messages prefixed with `notepat`. 106 107*** readme refresh *** 108 - [x] Redesign the project README. 109 - [x] Graveyard a lot of dead TODOS and instructions below. 110 - [x] Make a new intro above. 111 - [x] Move all TODOs other than like a 'current' task to a new TODO.txt. 112 113*** `chat` instancing *** 114 - [x] Make a new instance for `sotce-net` chat and fix a bunch of stuff for all chat. 115 116*** 📧 Aesthetic Inc. Announcement Email *** 117 - [x] Draft and send `Aesthetic Inc.` announcement to supporters and friends. 118 - [x] Send quick message to all `booted-by` patrons asking to meet. 119 120*** sotce.net *** 121 - [🟢] Finish sotce-net rc1 122 123*** Old `chat` server done list 24.10.27.07.52 *** 124 - [x] Get Firebase notifications fixed everywhere! 125 (Maybe in production?) 126 - [x] Get text filtering working. 127 - [x] Connect to production server. 128 - [x] Disallow any req that isn't the chat-system.aesthetic.computer host when not in dev mode. 129 - [x] New connection process: 130 1. On a new connection, get a paged list of messages from MongoDB, 131 but also keep a cache here on the server so it just starts up 132 and always stores the last 50 messages or something. 133 2. Create an http request on this endpoint for fetching more messages. 134 135*** Aesthetic Direct No. 1 *** 136 - [x] Add qualifying statement that shows 137 - [x] the cultural, creative, and financial significance of Aesthetic Computer. 138 - [x] Announcing Aesthetic Inc. 139 - [x] Write and date an initial message that... 140 - [x] Announces the corporation and links the papers. 141 - [x] Honors and thanks the booted-by patrons. 142 - [x] Include a path to converting early patrons into SAFE holders. 143 - [x] Announcing "Aesthetic Inc." 144 - [x] Add endpoint to show live 'metrics' / stats on the platform. 145 - [x] Account Signups: via auth0 146 - [x] Handles registered: 147 - [x] Other database fields. 148 - [x] Add 'Track changes to this page.' link on the bottom. 149 150*** sotce-net pre-launch *** 151 *** Firefox *** 152 - [x] Test the full site interactions in Firefox. 153 - [x] Add Print 🖨️ CSS behind touch menu. 154 - [x] Add more consistent rendering of page outlines. 155 - [x] Get scrolling working in editor in iOS. 156 - [x] Add a nice veil fix for iOS Safari, maybe by changing the page 157 background color via a class on the body. 158 - [x] Speed up rendering of the feed. 159 - [x] Deprecate last line feature. 160 - [x] Keep spinner up until feed is rendered... 161 - [x] Prevent page zoom and scroll inconsistency on iOS. 162 - [x] Change full page background color once feed is open. 163 (Helps with scrolling.) 164 - [x] Also fix editor background color to match things. 165 - [x] Prevent dragging normal buttons from scrolling the page on iOS. 166 - [x] Get corner tap interface correct on touch screens. 167 - [x] Add a lavender or light blue backdrop to the feed screen. 168 - [c] Fix editor layout. 169 - [*] Hyphenation was not supported in VS Code so I filed a bug. 170 - [x] Play more with typography and page layout. 171 - [x] Choose a better 18 line font. 172 - [x] --- 🏁 Launch 🏁 --- 173 - [x] Preload the Wingdings font so it appears with no flah in the editor. 174 - [c] Total subscriptions should only be calculated once a day on demand? 175 - [x] Better loading with spinner while logged out. 176 - [x] Tap and hold cookie shouldn't show context menu. 177 *** Speed Up *** 178 - [x] Choose consistent page type font and size and make sure it fits initial 179 pages from @amelia. 180 - [x] And contains all of the page 1 text. 181 - [x] Use a font from Google Fonts to prototype. 182 - [x] When cancelling a subscription pick up the event in stripe and remove it 183 from the redis cache... 184 - [x] Add an event to ticket. 185 - [x] Store subscription information in redis, and delete it with an expiration 186 that matches the subscription renew date. 187 - [x] Cache in 'subscribed' function. 188 - [x] And cache in ticket.js payment confirmation (speed up first time). 189 // await KeyValue.del("sotce-subscribed", user.sub); 190 // await KeyValue.set( 191 // "sotce-subscribed", 192 // user.sub, 193 // JSON.stringify(subscription), 194 // ); 195 - [x] Show spinner while logged out / no blanking. 196 - [x] Test full signup and subscribe flow in production on mobile. 197 *** First Page *** 198 - [x] Pink circle flicker still present. 199 - [x] Have @amelia write her first page and then turn on the feed. 200 - [x] Backdrop under page editor should not cut off on Safari. 201 - [x] Fix focus textfield bugs on touch / iOS. 202 - [x] Check scroll up based on drag amount radius. 203 - [x] Get local style edits running, maybe through ngrok. 204 - [p] Should ngrok appear automatically? 205 - [x] Get flourishes to show up on iOS. 206 - [x] Pink cookie shouldn't show up after. 207 - [x] Fix drop shadows on buttons. 208 - [x] Remove tap highlight from pink cookie. 209 *** 📊 Statistics *** 210 - [x] Add Google Analytics 211 - [x] Show number of subscribed users so far - maybe in the closed donut or 212 privacy policy? and only for certain whitelisted users? 213 - [c] Re-render page touches to include unhandled users. 214 - [x] `eared` corner menu that shows byline 215 *** 🖐️ "Touches" *** 216 - [x] Add some kind of handle based reaction for pages? (touch?) 217 @blahblah and x others touched this page. 218 'ear' 219 - [x] Add back page interactive layer switch. 220 - [x] Tie it to the API 221 *** Crumple *** 222 - [x] Make it so pages can be crumpled by an admin if they are the author. 223 *** 📜 Scroll Checking *** 224 - [x] Scrolling in the editor or cookie-menu should not affect page scroll. 225 - [x] Make a handful of pages. 226 - [x] Check scrolling with editor. 227 - [x] Check with cookie menu. 228 - [x] New line creation logic in editor. 229 - [x] Make the cookie menu fully scrollable. 230 - [x] Don't run rendering algorithm on every input. 231 - [x] Crumpling an Empty page shouldn't add a record to the database. 232 - [x] Fix line start warning changing when a UI button is pressed? 233 - [x] If text is empty it should always be 18. 234 - [x] Make sure subscription receipt emails get sent. 235 - [x] Add coloring for "Awaiting verification..." and "Email verified!". 236 - [x] Add a "thank you for subscribing" alert popup. 237 - [x] Set the "sotce" handle to "amelia". 238 (Tell Amelia to set it.) 239 - [x] Restrict 'sotce' handle (reserved). 240 - [x] upscrolling 241 - [x] *** 🛫 Put Editor Online *** 242 *** ⭐ Page Composition *** 243 - [x] Add 'discard' ability to page editor. 244 - [x] Wire up the ui and api. 245 - [x] Make the discard button red and publish button green. (#discard) 246 - [x] Add loading spinner to `write-a-page` and `publish` and `draft` and `discard` buttons. 247 - [x] Keep the most recent draft remotely / have a "published" flag on pages. 248 - [c] Show rules or timer under the form? 249 - [c] Enforce global uniqueness on page content 250 - [x] Update the 'write-a-page' button with a network call. 251 - [x] Which should return the page model with the right server day. 252 - [x] Add a draft flag to the 'write-a-page' api call. 253 - [x] Remove draft flag on publish. 254 - [x] textarea should auto-focus when it is opened 255 - [c] even on refresh (not possible) 256 - [x] Fix justified text reflow. 257 - [x] Write last line behavior into the editor. (if possible) 258 - [x] Write last line behavior in page renderer. 259 - [x] Switch to transform based page renderer and editor. 260 - [x] Prevent overwriting past the boundary. 261 - [x] Fix word-break. 262 - [x] Add color to the 'lines left' warning. green -> orange -> red 263 - [x] Build out the editor form to match page design. 264 - [x] 📟 Design the editor first. 265 - [x] Lines left needs to be important. 266 - [x] Add page count and title header to design. 267 - [x] Title header 268 - [x] page count 269 - [x] Test scaffolded end<->end page creation logic. 270 - [x] add endpoint for submitting a "page" 271 - [x] add the 'write a page' button 272 whitelisted for admin users 273 - [x] show the form, maybe in a modal? 274 *** Page Layout *** 275 - [x] Check that layouts don't break with page zoom feature, and that 276 text actually gets larger. 277 - [x] Fix tiny width sizing breakpoint (good enough for now!). 278 - [x] Position cookie inside of corner more nicely. 279 - [x] Always make sure at least one page fits on screen. 280 (vertical bound) 281 - [x] Clicking the donut should save scroll position in pages. 282 - [x] Standard resizing width logic. 283 284 - [x] Add 'isAdmin' support for sotce-net subs and add necessary subs. 285 - [x] go through all the prompt boxes, including the username entry / too long / inappropriate etc. 286 - [x] make a privacy policy for sotce.net (inlined in this file) 287 - [x] update ac privacy policy with shared accounting rules 288 - [x] add handle creation / handle support for sotce-net users 289 🧪 Manual Tests 290 (Sotce Side) 291 1. - [x] create a new `sotce-net` account under `me+handleswap@jas.life` 292 2. - [x] validate email and subscribe 293 3. - [x] try to set a handle to 'handleswap1' 294 4. - [x] then create an aesthetic computer account under `me+handleswap@jas.life` 295 5. - [x] validate email and see if handle 'handleswap1' appears automatically / user joins chat 296 - [x] What to log here? and how? 297 - [x] Test auth0-events in production... 298 - [x] And log it that way. 299 6. - [x] change the handle of the user to `handleswap2' and see if it updates 300 on sotce-net automatically (after a refresh) 301 7. - [x] update the user's email on aesthetic computer to `me+handleswap2@jas.life` 302 - [x] validate email again on both `sotce-net` and `aesthetic computer` 303 8. - [x] delete the ac user and make sure the sotce-net handle and user remains 304 9. - [x] delete the sotce-net user and run the same test for the aesthetic side 305 (Aesthetic Side) 306 1 - [x] create an ac account under `me+handleswap@jas.life` 307 2. - [x] validate email and set handle to 'handleswap1' 308 3. - [x] then create a sotce-net account under `me+handleswap@jas.life` 309 4. - [x] validate email and see if `handleswap1` appears automatically 310 - [x] Do better with the auth0 flow. 311 - [x] Re-capitalize login screens effectively. 312 - [x] Verification email should re-route to a nice page if in a new tab. 313 - [x] Also check this on aesthetic. 314 - [x] change email after being subscribed... 315 - [x] Add support for: ?supportSignUp=true&supportForgotPassword=true&message=Your%20email%20was%20verified.%20You%20can%20continue%20using%20the%20application.&success=true&code=success 316 - [x] Test email changes post subscription... 317 - [x] once a handle is made there should also be a way to change the handle 318 and see the button update. 319 - [x] ⚠️ ensure that all cross-tenant email handle checks require email_verified 320 to be true 321 - [x] email changes need to persist on both networks and must be shared 322 and they need to update any customer emails on stripe that exist for the 323 sotce-net users... 324 - [x] there should be a 'create handle' button / (a dedicated handle space) 325 - [x] this should prompt the user to make a handle 326 - [x] make sure handles will also be deleted when accounts are deleted, BUT 327 only if they are not shared across an aesthetic computer account 328 - [x] Perhaps the subs could be 'sotce' prefixed. 329 - [c] Combine texts so it says "Your subscription for `me@jas.life` renews on..." 330 - [x] delete all existing subscriptions in stripe and resubscribe with a test 331 user 332 - [x] tapping the user's email address should allow them to alter / reset 333 email even after initial verification... 334 - [x] add cookie favicon which switches if the user is logged in... 335 - [x] Account deletion. 336 - [x] Implement a DOM structure for these layouts. 337 - [x] Add a templated layout. 338 💈 #wrapper.gate 339 // 👣 logged-out 340 [login] [im-new] 341 342 // 👣 unverified 343 signed-in-as: me@jas.life 344 "waiting for verification" [resend?] 345 [logout] [delete account] 346 347 // 👣 unsubscribed 348 signed-in-as: me@jas.life 349 [subscribe] 350 [logout] [delete account] 351 352 🏡 #wrapper.garden 353 // 👣 subscribed 354 signed-in-as: me@jas.life 355 356 ^^^^^settings^^^^^ (colophon?) 357 "you are subscribed to sotce-net!" 358 "your monthly subscription will auto-renew on July 7th, 2024 for $5" 359 [cancel renewal] 360 [delete account] 361 _______________ 362 [logout] 363 - [x] add a cancellation button... 364 - [x] make sure it returns the right subscribed information below 365 - [x] refreshing the page with websockets needs to keep the current session somehow! 366 - [x] run a new development subscription 367 - [x] try from vscode / cancel as needed? 368 - [x] bring in `respond` helper and replace `statusCode:` handler returns with it. 369 - [x] stripe paywall 370 - [x] set up subscription payment wall on 'subscribe' button 371 - [x] run a test subscription 372 - [x] check for subscription status somehow... 373 - [x] Make subscription `priceId` on Stripe. 374 - [x] bring in necessary env vars for stripe 375 - [x] Add session / login support to the Aesthetic Computer VSCode extension / 376 switch to an in-editor development flow. 377 - [x] Need to be able to login to Aesthetic with VS Code, then switch to 378 sotce-net and then back to aesthetic and stay logged in. 379 - [️x] Need to be able to log in to sotce-net with VS Code, then switch 380 to Aesthetic and back and stay logged in. 381 - [x] Disambiguate 'session' query string and 382 somehow receive both / capture both on first load. 383 or know which one to send for both AC and Sotce-Net. 384 - [x] Get rid of the 'user consent' signup field. 385 (Only is necessary on localhost) 386 - [x] auth0 based auth / registration 387 - [x] review existing ac auth implementation and necessary 388 keys 389 - [x] Set up login pages / logo etc. 390 - [x] not logged in option 391 - [x] logged in option 392 - [x] Use shadow dom / custom element or a "modal" element for signup. 393 - [x] Run through a test sign-up. 394 - [x] Set up email sending service via google apps? 395 - [x] Developmnt mode. 396 - [x] Live reload function. 397 - [x] Set up path->method routing in `sotce-net.js`. 398 - [x] Test login in production in VS Code, 399 - [x] and via vscode.dev 400 - [x] Test login inside VS Code local. 401 - [x] Test login in production outside VS Code. 402 - [x] Test login outside VS Code local. 403 - [x] Test signup in development. 404 - [x] Check how the auth works / token passing works from VSCode. 405 - [x] Add support for developing `sotce-net` inside of the VS Code extension. 406 - [x] In both development and production. 407 408*** slide *** 409 - [x] add two octaves of sliding with volume on the x axis for 410 a single voice instrument and have a textual read-out for what note 411 is being played 412 413*** list *** 414 - [x] add handled pieces to list using list @handle 415 416*** .pjs compiler *** 417 - [🟠] Write the metaprocessor in that slurps the .pjs to OpenAI 418 at runtime. 419 - [x] Break the below down into steps and get it compiling on each load. 420 - [x] Add syntax support to the vscode extension for the .pjs files / metaprocessor. 421 // 🔥 422 // TODO: Write `prompted` javascript that will compile and run against any 423 // LLM version 24.02.22.19.38 424 // Call it `.pjs` ? 425 // piece, processing, prompted 426 427 //if (!net.iframe && params[0]^does not start with^) { 428 // return; 429 //} 430 431*** icons *** 432 - [x] fix `/prompt?icon=128x128` not loading icon mode 433 434 *** bleep *** 435 - [x] add sustain to bleep 436 437 *** notepad *** 438 - [x] add boxes / software based layout 439 - [x] 3AGAGA fails in tap (reverts octave) 440 441 *** class -> user list *** 442 - [x] joelle -> @joelle 443 - [x] noelani -> @noelanio 444 - [x] caihong -> @caihong 445 - [x] kim -> @kim 446 - [x] tori -> @toriwazhere 447 - [x] masayo -> @mayomochi 448 - [x] samantha -> @samanthaschen 449 - [x] javid -> @joda 450 - [x] zuhair -> @zuhair 451 452 + Done 453 - [c] separate chat server for class 454 - [x] fix syllabus medical thing / oversight 455 - [x] instead just talk and gather information 456 - [x] title of documentation doesn't change when clicking with the 457 tab open 458 - [x] design colored bars activity for thursday 459 - [x] should all top-level functions be auto-exported 460 if they exist, based on a whitelist? 461 - [c] fix tape 462 - [x] mute socket connection logs (bad for class) 463 - [x] make sure logging in works via the extension 464 - [x️] fix index.js meta parsing logic so it works across the board for 465 all sources of mjs modules and all lisp modules, 💛 perhaps by running 466 sources through a pre-processor endpoint builder function 💛 467 - [x] check in local and production... 468 - [x] code 469 - [x] (requires kidlisp parsing) 470 - [x] @bash/fire! or equivalent with meta function 471 - [x] line 472 - [x] prompt 473 - [x] @jeffrey 474 - [x] ff~1 475 - [x] hell_-world 476 477*** handle updates in chat *** 478 + Done 479 - [x] Get system log messages correct with handle change 480 live in chat or even in field / world and prompt? 481 - [x] When a user changes their handle, all visible chat messages for each 482 client associated with that handle change should update. 483 (Replace the current message buffer for the client.) 484 - [x] Why are messages going > 100 and doubling up sometimes? 485 486*** night stuff *** 487 - [x] Update bots to gpt-4o 488 - [x] Fix UDP server. 489 - [x] Add some money to OpenAI. 490 491*** sign out / account deletion synchronization *** 492 - [x] When a user signs out or deletes their account any other windows should refresh. 493 494*** onboarding optimization *** 495 + Done 496 - [x] Run through onboarding in production with @ida, making any necessary changes. 497 (Check this for both set and unset handles.) 498 - [x] Test sign up flow on a phone. 499 - [x] Run with iOS debugger to test keyboard issues with "Create handle" on 500 localhost. 501 - [x] Add "back to prompt" arrow to left of chat corner. 502 - [x] Reloading prompt in dev does not refresh the keyboard state? 503 - [x] Don't flash pending verification on reload 504 if email has been verified. 505 - [x] Resend email enter key not functioning. 506 - [x] Update email content to include chat and remove other stuff? 507 - [x] Tappable personal handle in chat. 508 - [x] Signed out? Tapping 'nohandle' in chat should go to closed prompt. 509 - [x] Scroll off by 1px. 510 - [x] Guideline is not inside text input. 511 - [x] Chat should say "Enter message...". 512 - [x] Set a handle / EMAIL VERIFIED wording. 513 - [x] After setting a handle, jump to chat. 514 - [x] Button for email should instead say Resend email. 515 - [x] Remove RESEND EMAIL? 516 - [x] Tapping after resend email appears should clear the prompt if there was no edit to the text. 517 - [x] The email confirmation doesn't go away... after setting handle. 518 519*** udp *** 520 - [x] Could not solve and decided to abandon windows based development in 521 favor of focusing only on Fedora. 522 - [c] local udp is not working through the windows container... 523 - [c] it just doesn't work sometimes, maybe this is because 524 there is a remote webrtc server being called somehow / somewhere? 525 526*** aesthetic lisp / s-expression parser and evaluator *** 527 + Done 528 - [x] Add support for functions and variables. 529 - [x] Hook a lisp function into the graph / paint api somehow? 530 - [x] Write s-expressions directly in the prompt if 531 the input begins with a parenthesis / produce 532 a dynamic disk / run existing lisp code through 533 `load`. 534 - [x] Refactor `load` to be more efficient to support this. 535 - [x] Make a source .lisp file in `disks`. 536 - [x] Make a lisp.mjs file that exports a parser. 537 - [x] Read the file in as a piece in load in side `disk.mjs`. 538 539*** 🎹 keys ** 540 + Done 541 - [x] Add actual frequencies of the notes for the piano. 542 - [x] Only connect to MIDI on-demand. 543 - [x] Add basic graphics. 544 - [x] Hook up MIDI. 545 546*** dev *** 547 - [?] Fix extra closing brackets being added in mjs files. 548 - [x] Why do mjs files scroll all the way to the bottom after running prettier? 549 - [x] This is because `bios.mjs` and `disk.mjs` are too large 550 and should probably be cut down in size. 551 552*** etc... *** 553 + Done 554 - [x] Add "..." glyph to font. 555 - [x] Fix 'download' / dl command. 556 557*** dev environment *** 558 + Done 559 - [x] Can't kill and re-open platform in the devcontainer... 560 - [x] Auto enter insert mode when switching tabs in emacs. 561 - [x] The eat shells seem to stay open? 562 - [x] Ports are staying open after C-c C-x 563 - [x] https://elpa.nongnu.org/nongnu-devel/doc/eat.html#Shell-Integration 564 - [x] Fix copy + paste across the container boundary. 565 - [x] VSCode status bar todo goal. 566 567*** regressions *** 568 - [x] Republish chat and session-server. 569 - [x] Redeploy. 570 + Done 571 - [x] Download m4a's in Safari contexts for audio decoding. 572 And oggs everywhere else? 573 - [x] Field chat is now broken for some reason. 574 - [x] Add 'beaner' to chat filter. 575 576- [c] Get `docker` running inside the devcontainer. 577 (So that session-server can be published...) 578 (Just don't use docker anymore / leave jamsocket behind.) 579 580- [🧡] Fix `sfx` playback in extension. 581 - [x] Convert all sound in the platform to OGG, which works in 582 the vscode extension. 583 - [x] Why won't the m4a files decode inside VS Code? 584 - [x] Check to see if it works on vscode.dev... 585 - [x] Wire up new AeCo sounds. 586 587*** local devcontainer support *** 588 + Done 589 - [x] Get platform running locally. 590 - [x] Do the emacsd clone trick... 591 - [x] Get fish configs working. 592 593*** @dreamdealer/grisaille *** 594 + Done 595 - [x] Get a nice live reload working in vscode extension's local mode. 596 - [x] Get keyboard shortcuts working in vscode extension. 597 - [x] Entering preslashed urls should jump to the actual url route on the `prompt`. 598 - [x] Get the `media/@handle/pieces` JSON endpoint up and running. 599 600*** fill *** 601 - [x] Make a `fill` brush. 602 - [x] Add it to the docs. 603 604*** obscenity *** 605 - [x] Make sure they don't filter "rapper" / make an exception there. 606 + Done 607 - [x] Combine all 'filter.mjs' modules into one shared file somehow... 608 609*** [🟠] light & dark autocomplete *** 610 611*** emacs + micro *** 612 - [x] Bring `fnm` install back into the Dockerfile? 613 - [x] C-c on the servers should always go back to a shell. 614 615*** -[x] make sure ai.aesthetic.computer only allows requets from either 616 aesthetic.computer or botce.ac *** 617 618*** bot color schemes *** 619 - [x] Fix color schemes for bots, based on `mom`. 620 (No more light mode schemes / just use one.) 621 - [x] mom 622 - [x] dad 623 - [x] kid 624 - [x] gargoyle 625 - [x] brother 626 - [x] sister 627 - [x] wife 628 - [x] husband 629 - [x] boyfriend 630 - [x] girlfriend 631 632*** micro *** 633 + Done 634 - [x] Autogenerate local ssl certificates when first building / booting if they are not present 635 in ssl-dev/. 636 - [x] Implement a `boot` command that will begin the rebuild process 637 from the docker container / or it could be an emacs command even. 638 - [x] Make the `source` open the readme by default. 639 - [x] Take out emacs support and instead connect to the 640 running container from some sub-buffers in an emacs 641 layout that would always be self-hosted. 642 - [x] Combine url code and prompt into one pane / tab. 643 - [x] Auto-switch to the `prompt` tab. 644 - [x] Use my own emacs lisp file / move dotfiles over. 645+ Done 646- [x] Get a basic http server punching through the container. 647 648*** dotfiles *** 649 - [x] Move my own dotfiles to the ac repo? 650 651*** emacs fixes *** 652 + Done 653 - [x] Autoscroll `eat` terminal? 654 - [c] Choose a default emacs theme... perhaps gruvbox again? 655 - [x] Get tab cycling shortcuts working / find other potential shortcut issues. 656 - [c] How can I open the full one-window dev environment in one click? 657 - [x] Subtle issues with buffer rendering after mixing eat terminals and splits... (had to do with emojis) 658 - [x] Add emoji to each tab-bar item. 659 - [x] Use gptel. 660 - [x] Replace 'helm' with vertico / embark and other stuff: https://www.youtube.com/watch?v=d3aaxOqwHhI 661 - [c] Opening a new file should always open a new buffer that splits the current one. 662 - [x] Get rid of terminal warning when opening 'eat'. 663 - [x] Open 'eat' terminals to 'aesthetic-computer'. 664 - [x] Add ascii scroll bars. 665 - [x] Make sure I always have access to the production udp server. 666 - [x] fix ctrl+tab on windows 667 - [c] Include "assets" directory in ctrl+p helm search? 668 (just use ctrl+x and ctrl+f to find file or whatever) 669 - [x] Add code-folding (check out origami or vimdiff mode?) 670 - [x] It should use `zc` and respect my #region marks. 671 - [x] Tab theme needs to make sense. 672 - [x] :q in evil mode should never quit emacs unless it's the last buffer? 673 - [x] Add line numbers back. 674 - [x] Make ctrl+p open instantly in a terminal mode. 675 - [x] Make the `aesthetic-backend` function work in gui and terminal emacs. 676 inside docker and outside. 677 - [x] JavaScript auto-indent needs to be 2 spaces wide 678 - [x] Javascript auto-close braces / brackets not working. 679 - [x] Add gutter at 80 character width. 680 - [x] Save on leave buffer / clicking out of buffer. 681 682 683*** screenshots *** 684 - [x] Map new token ids to screenshot numbers. 685 (https://highlight.xyz/mint/65f5e86427e22afacb0972e7/marketplace) 686 - [x] Add left + right tap buttons that take up the full half-width. 687 + Done 688 - [x] Fix font loading issue. 689 690*** field notes *** 691 - [x] name in field should be positions on the other player instead of in the 692 list so long as they are visible on screen. 693 694*** split *** 695 - [🧡] finish basic split to test world persistence. 696 697*** fix auth0 logo route *** 698 - [x] There is an ssl error on: https://logo.aesthetic.computer.nyc3.cdn.digitaloceanspaces.com/painting-2023.8.21.10.25.png 699 700*** text centering issue *** 701 - [x] seems to happen only after entering `field`? and also baktok is affected. 702 703*** dark mode updates *** 704 - [x] and switches every refresh... 705 - [x] Switching between dark and light mode in the system settings 706 always switches the mode no matter what, even if they are out of sync. 707 708 *** light mode *** 709 - [x] Starfield should paint behind the paste and enter buttons. 710 - [x] Starfield connection colors should be different in light mode. 711 - [x] autocompletions no longer appear / are too light in light mode 712 - [x] Color change for buttons in Light Mode. See `ui.mjs`. 713 - [x] Login buttons. 714 - [c] Invert all black and white buttons via the `ui.mjs`. Button default 715 schemes. By setting and updating global in `disk.mjs` on the `ui` module that is red when buttons are painted. 716 - [x] Color change for the border when tapping from the login. 717 - [x] HANDLES SET warning should have different colors in light mode 718 - [x] Put glaze back on. 719 720*** `blur` *** 721 - [️x] Red crosshair drags when pressing corner label. 722 723*** Web Notifications *** 724 - [x] Get web notifications working and tie them directly to push notifications. 725 726*** piece authoriship improvements: workshop with casey *** 727 + Done 728 - [x] Refreshing the page (opening and closing the pane) should be able to work better / reload the last-run code? 729 - [x] Reloading from prompt. 730 - [x] See `disk.mjs` line 2477. 731 - [x] Refreshing the page should show a 404 message if the piece doesn't 732 exist possibly with a simple call to action. 733 - [x] Drag and drop should rename the url path. 734 - [x] Fix dragging and dropping of piece code. 735 - [x] So in order to draw from a template, you can say `new brush` or `new bot` or `new piece frogger`. 736 - [x] One should be able to view source code / use `source` from inside vscode. 737 - [x] Can this produce a new file tab inside of vscode? 738 - [x] vscode extension should somehow ignore system files like `bios` and `boot`. 739 - [x] or just not run auto-complete while in local mode / ignore files over 500 lines. 740 - [x] Entering `docs` in the vscode extension should pop open the docs pane. 741 - [x] Multiple templates for different types of pieces. 742 - [x] "world" template. 743 - [x] "3D" template. 744 - [x] "Bot" template. 745 - [x] "Brush" piece template. 746 - [x] "Blank" piece template. 747 - [x] "Stamp" template. 748 - [x] Add param to `publish` to rename the file. 749 - [x] Publishing the same piece more than once / overwriting a piece doesn't 750 work in the editor. 751 752*** - [x] automatically read metadata tags from top two lines of a piece if 753 the meta function does not exist? *** 754 755*** `list` *** 756 - [x] Populate `list` with all kinds of existing commands. 757 - [x] Enter `list` to view existing commands. 758 759*** `prompt` improvements *** 760 - [x] rewrite typo reply 761 + Done 762 - [x] hardcode typo reply 763 764*** Extension Post *** 765 - [x] The API data should be loaded remotely so docs can reploy with 766 site changes and the extension doesn't need a version bump to 767 keep up. 768 - [x] Wire up the API data so it's live and remote. 769 - [x] Test and make sure auth works in vscode.dev. 770 - [x] Add api docs and auto-complete via the VSCode extension. 771 772*** New VSCode Embedded Extension *** 773- [x] More immediate coding. 774 + Done 775 - [x] Publish new version of extension. 776 - [x] Update instructions and Microsoft Store page. 777 - [x] Rename `code-channel` to a full on `channel` piece 778 and entering empty channel 779 will share the current channel code, while entering a new 780 one will join an existing channel and also share the code. 781 - [x] Check on the differences between coding things in local and production 782 while being both signed in and signed out. 783 - [x] Make a publishing command progress bar / better workflow... 784 - [x] Get user authorized publishing to work. 785 - [x] Get anonymous publishing to work. 786 - [x] Finish authorization flow. 787 - [x] Disable some commands like `hi` if the app is running in an iframe. 788 - [c] Get tab-flipping to work properly if a piece hasn't been loaded succesfully yet. 789 - [c] The `publish` command should open an external url that tries to publish 790 the piece in the browser (to make sure the user is logged in). 791 - [c] Get authorization / login working (for publishing). 792 - [x] Add connection flashes to noise. 793 - [x] Any code that doesn't parse just print out if no piece is running 794 or show an error notice if a piece is. 795 796*** `field -> horizon` transition fix *** 797 - [x] Be able to follow other users. 798 - [x] Prevent doubling. 799 - [?] Aspen found a piece infinite reload bug... 800 801*** botce xmas *** 802 + Done 803 - [x] 6$ 804 - [x] Dec. 23 - Jan ?. 805 + Postponed 806 - [c] Baby blue background and white text. 807 - [c] Snowflake backdrop in paywall. 808 - [c] Snowflake Image 809 - [c] Share button for screenshotting. 810 - [c] Test Instagram share. 811 - [c] Add `about` credits. 812 813*** filtering obscenities with underscores *** 814 - [x] Add `obscenity` to session-server. 815 - [x] Add `obscenity` to backend for moods. 816 817*** `field` *** 818 + Done 819 - [x] Localize world geometry to this file. 820 - [x] Move all functions over succesfully. 821 - [x] Move common functionality to a `world.mjs` library file. 822 - [x] Slow camera following. 823 - [x] Add user list support. 824 - [x] Finish "world:fields:list". 825 - [x] When you join you get the full list, 826 - [x] Then when anyone else joins or leaves you get 827 the individual joins and leaves. 828 - [c] Store persistent position on the server / in the database. 829 - [x] Fix up lerping a bit... 830 - [x] Store local position in store. 831 - [x] Make the world scrollable with some background grass. 832 - [x] Always lerp towards next character positions from the network. 833 - [x] Test join `field` simultaneously (with forceProd on) and ensure 834 there are no race conditions or conflicts. (Implement jamsocket's locks?) 835 - [x] Fix instagram not connecting error. 836 - [x] Keyboard stops working after tabbing out and returning. 837 - [x] Android debugger session with @ida's phone. 838 - [x] Remove gutter. 839 - [x] Add world bounds. 840 - [?] Add enter key hint. 841 - [x] Tapping the word in the top left corner should not flash the keyboard. 842 - [x] Get keyboard opening on Mobile Safari. 843 - [x] `Escape` key should still go back to the `prompt`. 844 - [x] (`) key should still go back to the `prompt`. 845 - [x] Add a "special", `smile`, `frown` and `meh` command 😉. 846 - [x] Add color words to change face. 847 - [x] Make sure these can be written like: `smile: chat` / using a 848 simple character on the keyboard. 849 - [x] Get multi-user networking online. 850 - [x] Add an overhead chat display. 851 - [x] Wire up tappable character button to activate the text input. 852 - [x] Enter button should close empty prompt. 853 - [x] Escape key should close prompt no matter what. 854 - [x] Don't snap the cursor all the way back after hitting return 855 / keep it at its position. 856 - [x] Paste button does not appear when going back to the prompt 857 from another piece after entering a single key. 858 - [x] `Enter` button appears and disappears at weird times. 859 860*** iOS Release *** 861 + Version 1 862 + Done 863 - [x] Privacy policy page 864 - [X] Sending Pixel Grab images in iMessage Extension 865 - [X] `download` popup native share interface for storing image. 866 - [X] Change app short name as it appears on homescreen to "aesthetic". 867 - [X] Enable camera access 868 - [X] iMessage plugin (is webview allowed there?) 869 - [X] Launch screen 870 - [X] Screen formatting (margins, padding) 871 - [X] Enable microphone access 872 - [X] Customize allow messages (camera, microphone, notifications) 873 - [X] Offline access 874 - [X] App icon 875 - [X] Sign up work 876 - [X] Logging out (broken) 877 - [X] Notification for `scream`. (via the integrated GCP account) 878 - [X] Notification invite for `pond`. 879 - [X] Test ordering a sticker (check if that is illegal) 880 - [X] Make Offline access page compliant with apple submission guidelines + beautify 881 - [X] Disable landscape mode 882 - [X] Provide a method in your app for a user to opt out from receiving notifs 883 884*** ios resubmission *** 885 + Done 886 - [?] Access to non-account Based features. (Clarification? / Did they know?) 887 - [x] Supply a more decent Support URL. 888 - [x] App Completeness (Mic and Camera Regression) 889 - [x] Account Deletion 890 891*** `bots` list (add colored text) *** 892 - [] alphapoet 893 - [x] angel 894 - [x] botce 895 - [x] boyfriend 896 - [x] brother 897 - [x] dad 898 - [x] decode 899 - [x] encode 900 - [x] gargoyle 901 - [x] girlfriend 902 - [x] husband 903 - [x] kid 904 - [x] liar 905 - [x] mom 906 - [x] sister 907 - [x] wife 908 909 910*** bring back the 404 page *** 911 - [x] Visiting an unresolved piece on first load should 912 redirect to 404. 913 914*** sharing *** 915 - [x] Make sure `shareFile` will always be populated / prevent the 916 race condition. 917 918*** motd is now editable regression *** 919 - [x] :() 920 921*** share (qr) *** 922 - [x] Enter `qr pond` to show a scannable QR code that would join 923 pond, both on lan (properly) and in production, in addition to 924 reading out the IP address. 925 926*** `prompt` star status *** 927 - [x] Use the colors of the starfield to represent connectivity status. 928 929*** Regression *** 930 - [x] Tapping on `prompt` breaks after getting a GPT reply. 931 932*** Monolithic UDP *** 933 + Done 934 - [x] Switch to using UDP for fairy positioning (since it's now monolithic). 935 - [x] Set up a UDP-working version of the session-server monolith. 936 (udp.aesthetic.computer) 937 - [x] Automatically pull git changes for the UDP server. 938 939*** Connection Status *** 940 - [x] Show connection status on prompt and as color of corner labels. 941 942*** 🪷 `botce` launch (ticketed pieces) - Nov. 21 *** 943 + Done 944 - [x] See `botce.mjs`. 945 - [x] Don't send multiple emails for some reason... 946 - [x] Go over UX w/ Ida 947 948*** profile page updates *** 949 - [x] `profile` should be able to <- -> on a user's paintings 950 (and still tap into lightbox for painting / playback) 951 - [x] Add buttons logic from `hell_-world.js`. 952 - [x] move `mood` to be to the top left to the right of username 953 954*** `prompt` issues *** 955 - [x] Shift + Enter is broken now. 956 957*** prutti poems *** 958 - [x] See `prutti.mjs` 959 960*** onboarding "taken" bug *** 961 - [x] Test in production. 962 - [x] Sometimes when users sign up, their untaken handle reports 963 as taken even though it has not been... 964 (`mood` also seems to fail here...) 965 966*** discord reported bugs *** 967 - [x] Entering `hw` twice in a row will yield the weird "helo" / "halo" bug. 968 (Could not reproduce.) 969 970*** delete-able paintings *** 971 (hide from profiles) 972 - [x] Add a keyboard shortcut / endpoint to flag a painting as nuked. 973 (With a `notice`) 974 - [x] Prevent nuked paintings from showing up in the profile list / consider 975 how to hide them. 976 977*** `hw` *** 978 - [x] Landing on `hw` (random) and then going backwards after the 979 auto-jump does not jump back to the chosen token. 980 - [x] Tapping the top left corner switches the token when going back. 981 - [x] There is a weird jumpy infinite redirect loop in `hw` that appears 982 sometimes. Try to reproduce and fix it. 983 - [x] Using backspace after landing on any `hw` does not go back to 984 the prompt, but always should, no matter what. 985 986*** `scream` *** 987 - [x] There seems to be a long delay at times. 988 989*** 🤑 `hell_-world` / `hw` sale day *** 990 + Done 991 - [x] Adjust timestamp button on page resize. 992 - [x] Alert users in `#help` to take a peek (on oct. 31) 993 - [x] Review UX w/ @ida. 994 - [x] Test player / functionality throughout the day. 995 - [x] Add `d` to download keyboard shortcut. 996 997*** scream *** 998 - [x] Word-wrapping. 999 - [x] Fix socket stuff. 1000 1001*** handles *** 1002 - [x] Setting your initial handle always seems to show TAKEN 1003 even if the handle is not taken and succeeds on the first try? 1004 (Could not reproduce.) 1005*** char prompt regressions *** 1006 - [x] Entering text / typing on bots seems to sometimes not bring the prompt 1007 into open mode. 1008 1009*** 😈 `hell_ world` - oct. 30 *** 1010 + Done 1011 - [x] Finish player. See `hell_-world.mjs`. 1012 - [x] Watch some more of the sample painting playbacks and check for other 1013 errors like the ineffective no? 1014 - [?] Try to see if I can hit the ineffective `no` error. 1015 - [x] Alias them to a `hell_-world` command with `hw` for short. 1016 - [x] Paint > 200 pictures on @jeffrey. 1017 - [x] Capture timestamped gesture data from first pointer. 1018 - [x] Fix `done` progress bar repeating and repeating over and over on the 1019 bigger zip file. (Not taking into account full math?) 1020 - [x] Fix up down arrow not showing a blank entry in the loop. 1021 - [x] Fix instant typing after wrong response regression. 1022 - [x] Fix `shape yellow 0.1` being opaque for some reason... 1023 - After what action? `line rainbow` 1024 - [x] Fix `no` not working after first attempt regression. 1025 - [x] Fix zip file loading on `painting`. 1026 1027*** Networking *** 1028 - [x] Remove periods from all buckets on DigitalOcean so that certificates 1029 behind the CDNs work. 1030 - [x] And transfer all the data. 1031 - [x] user.aesthetic.computer 1032 (In progress...) 1033 - [x] sotce.aesthetic.computer 1034 - [x] assets.aesthetic.computer 1035 - [x] wand.aesthetic.computer 1036 - [x] art.aesthetic.computer 1037 - [x] Update all cloudflare DNS settings for these buckets... 1038 - [x] user, sotce, assets, wand, art 1039 + Done 1040 - [x] logo.aesthetic.computer -> pals-aesthetic-computer 1041 1042*** `enter` *** 1043 - [x] Implement a discord slash command webhook. 1044 1045*** brush bugs *** 1046 - [x] `word` multi line centering not working on panned canvas 1047 1048*** `paintings` *** 1049 - [x] Put all paintings in a database, with new ones being added. 1050 - [x] And the download / retrieval code in `profile`, but not necessarily 1051 in painting. 1052 - [x] Existing user paintings need to be added to the database via a migration 1053 script, then some code that adds the record to the database for each 1054 makes sense. 1055 - [x] I need to adjust the upload code to post a record to the database too. 1056 - [x] I need some kind of a scripts directory or admin command for these 1057 1058*** `pond` *** 1059 - [x] a 2d place where connected cursors can communicate with disappearing lines 1060 1061*** annoyance *** 1062 - [x] Up arrow key does not load previous commands on first run. 1063 - [x] Make a mac friendly $creenshot -> painting shortcut. 1064 1065*** screenshot / steal *** 1066 - [x] Global keyboard shortcut 1067 - [x] 5 finger discount 1068 1069*** prompt annoyances *** 1070 - [x] jumping from shortcut to shortcut is a little jarring 1071 - [x] deprecate `NETWORK FAILURE` in favor of a notify. 1072 1073*** `moods` *** 1074 - [x] Show a live-updated list of user moods... 1075 1076*** `bb` -> `booted-by` *** 1077 - [x] make bb a short name for booted-by 1078 1079*** text entry regressions *** 1080 + Done 1081 - [x] Fix regional text selection delay support. 1082 - [x] immediate first key entry no longer works. 1083 - [x] Clear response highlighted text. 1084 - [x] NETWORK FAILURE does not reset the text. 1085 - [x] Backspace shortcut. 1086 - [x] `prompt~line` shortcut no longer works... 1087 - [x] sounds no longer function 1088 - [x] starting with left or right arrow keys doesn't clear prompt 1089 - [x] Pressing tilde while processing can be weird, and 1090 so can typing while processing. 1091 - [x] moving arrow keys left and right... 1092 1093*** `wave` *** 1094 - [x] `wave` pixels are still stretched on Android. 1095 1096*** landing page *** 1097 + Done 1098 - [x] ### handles set 1099 - [x] Add support for transparent animation. (Starfield) 1100 1101*** add zora prefilled `mint` command *** 1102 - [x] https://zora.co/create/single-edition?image=https://upload.wikimedia.org/wikipedia/en/c/cc/Wojak_cropped.jpg 1103 1104*** iOS *** 1105 + Done 1106 - [x] Some highlighted text also breaks. 1107 - [x] Fix delete key not working. 1108 - [x] iOS keyboard auto-suggestions should work. 1109 - [x] Properly handle device rotation with camera... 1110 - [x] Audio loads inconsistently / slowly on iOS. 1111 (Debug on the actual device.) 1112 1113*** important user reported errors *** 1114 + Done 1115 - [x] Fix android errors with keyboard. 1116 - [x] Double entry (reported somehow) 1117 - [x] Backspace (reproducible via @ida) 1118 - [x] Fix Android portrait mode stretching. 1119 - [x] Make sure camera landscape mode works on an iPhone. 1120 1121*** `booted-by` *** 1122 + Done 1123 - [x] complete page 1124 - [🟠] record demo video 1125 1126*** Profiles *** 1127 - [x] Typing in a handle on the prompt and visiting it should work. 1128 - [x] Make sure setting a @handle actually works. 1129 - [x] @handle pages should show the current version of the user's painting. 1130 (Upload and replace the file in S3, then send a redis sub ping for 1131 that user.) 1132 1133 *** `tape` *** 1134 + Done 1135 - [x] Always show white border on pause. 1136 - [x] Final iOS testing. 1137 - [x] Get audio / voice-over working good. 1138 - [x] Why does audio get louder while starting a `tape` on iOS? 1139 - [x] Audio slides. 1140 - [x] "Processing..." progress bar cosmetics. 1141 - [x] Fix letterboxing again / changing window size while recording and 1142 playing back. 1143 - [x] Fix progress bar. 1144 - [x] Get the stamp typography just right. 1145 - [x] Make the red recording progress bar decrease. 1146 - [x] Cache download link. 1147 - [x] Try a new strategy where frames are dumped 1148 and then playback occurs through a live mediastream that 1149 composes the frames and the sound. This can be captured 1150 when download is tapped? 1151 - [x] Fix any the synchronization errors. 1152 - [x] Show mouse cursor / touches in the recordings. 1153 - [c] See if tape addition works via concatenating stored tape now? 1154 - [x] Make better / more interactive `tap to play` call to action. 1155 (No longer necessary right now because it should always auto-play?) 1156 (And test it with the buttons) 1157 - [x] Wire up corner hotspot even though video covers it. 1158 - [x] First just keep the button but prevent it from rendering. 1159 - [x] Add timestamps to tape file names 1160 - [x] Add a special 1080x1920 flag if needed. `tape:tt`. 1161 - [x] disable stackable recordings 1162 (Put behind a `tape:add` flag.) 1163 - [x] Test in iOS to see if videos can actually be uploaded to TikTok. 1164 - [x] And stop it from flickering. 1165 - [x] Wire up download button for downloading the file with the proper extension. 1166 - [x] Add `HANDLE` watermark if a handle exists. 1167 - [x] Make tape progress bar global for the tape, and superimposed. 1168 - [x] Stop the start flickering. 1169 - [x] Overlay a global progress bar on the recording. 1170 - [x] Also see if glaze can be swapped in on the fly if it's enabled. (📓 Not enabling, wait until full GPU renderer.) 1171 - [x] Clear the screen each frame. 1172 - [x] Add a stamp while superimposing. 1173 - [x] Hide it from the actual recorded pixels. 1174 - [x] Check to see if mic is already connected in BakTok and skip starting 1175 screen if it is. 1176 - [x] and also if the freaky-flowers / 3D buffer can work, if enabled. 1177 - [x] Put download button on bottom right of `video` page, removing the other lame buttons and skipping the `download` page. 1178 - [c] downloadable `baktok` video. 1179 - [x] system-wide `tape` command to record voice with everything else. 1180 (Default 30 seconds with progress bar of some kind) 1181 1182*** Remove Back Button *** 1183 - [x] Remove back button 1184 1185*** textfence *** 1186 - [x] Title of tab is merely "textfence". 1187 - [x] Fix duplicate playback of phrases. 1188 1189*** Onboarding Bugs *** 1190 + Done 1191 - [x] Using the backspace command reloads the font? 1192 - [x] `prompt` button appears in bottom left corner in all pieces 1193 but pieces can opt out and only when coming from the prompt 1194 - [x] `enter` and `backspace` as primary keyboard shortcuts 1195 - [x] profile page when not logged in should say sign up to create profile 1196 - [x] uploading media with no handle should still use email 1197 - [x] pressing back button requires extra prompt tap 1198 - [x] back button does not bring up keyboard... (same as above?) 1199 - [x] handle with no parameters should flash EMPTY 1200 - [x] unverified = email unverified and wrap the message 1201 - [x] same email should say taken 1202 - [x] typing "me" in one tab after setting handle in another tab 1203 does not get the handle update 1204 1205*** Onboarding *** 1206 + Done 1207 - [x] Add email update command / link. 1208 (Should work similarly to "handle" in `prompt` and have an endpoint.) 1209 - [x] Add verification to handle confirmation in API. 1210 - [x] Thank you for confirming your email. 1211 - [x] Make auth0 emails match the formatting & tone of the print order emails. 1212 - [x] Welcome and please verify email. 1213 - [x] Where is the user directed to after clicking the verify link? 1214 (What are the possibilities here?) 1215 1216*** colplay *** 1217 - [x] Tie a sound with a color. 1218 1219*** @maya/sparkle *** 1220 - [x] Get sparkle working again and add it to @maya. 1221 1222*** Backdrop *** 1223 - [x] Get a backdrop test in place. 1224 1225*** Stickers *** 1226 - [x] How do I treat alpha in images? 1227 - [x] Make it black in both the mockup and in the actual resize setting. 1228 (This needs to be a url option in `pixel`) 1229 1230*** Fix `Painting` page in Firefox *** 1231 - [x] Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://user.aesthetic.computer/auth0|63effeeb2a7d55f8098d62f9/painting/2023.8.24.14.26.54.544.zip. (Reason: CORS request did not succeed). Status code: (null). 1232 1233*** Get Deployment Working Again *** 1234 - [x] Move `tts.js` to `ai.aesthetic.computer/api/say`, removing 1235 the large GCP environment variables. 1236 1237*** deck *** 1238 - [x] Make a complete interactive deck prototype. 1239 1240*** better `paste` rotation *** 1241 - [x] Make paste rotation work pixel perfectly for all 90 degree increments. 1242 and all image sizes. 1243 1244*** Decode / Encode (Issue) *** 1245- [x] Text automatically copied to clipboard when typing `decode` and 1246 going to the piece. 1247 1248*** nopaint *** 1249 - [x] Scaffold `nopaint`. 1250 1251*** Drag + Drop / Publishing *** 1252 - [x] Test `publish` command by using new extension. 1253 + Done 1254 - [x] Only publish to the correct user via the extension. (Not to everyone subscribed...) (See `extension.js`) 1255 (Make `publish` command) 1256 - [x] Add an on-screen friendly UI message once a piece has been published. 1257 - [x] Local extension not working. (SSL Self-signed Error / Unsolvable) 1258 - [x] Get user hosted pieces to run. 1259 - [x] Fix cloudflare wrangler dev worker. 1260 - [x] Get guest hosted pieces to run. 1261 - [x] Add publish command underneath `Run Piece`. 1262 - [x] Test code-channel re-routing along with drag + drop. 1263 - [x] Filter codeChannel messages on the server. 1264 - [x] Fix debug live-reload blank load from prompt. 1265 - [x] Fix drag + drop coding not finding code signal. (disk:1426) 1266 1267*** fr moca notes *** 1268 - [🍄] Get mushrooms talking to humans. (Harry) 1269 1270*** Happy Hands 🖐️😃 *** 1271 + Done 1272 - [x] Put hand-tracking data in core loop? 1273 - [x] Test `@mediapipe` tracking integration on iOS. 1274 - [x] Get multiple refreshes working on iOS without losing tracking? 1275 - (Create new landMarker but dont reload libs?) 1276 - [x] Get geometry working properly across all systems. 1277 - [x] Get rotation working on iOS. 1278 - [x] https://mediapipe-studio.webapps.google.com/demo/hand_landmarker 1279 Performance comparison ^ 1280 - [x] Also test original demo and hand_landmarker above on Firefox! 1281 - [x] Profile `@mediapipe` for memory leaks in the worker context. 1282 - [x] Plan next meeting w/ Tina. (6th) 1283 - [x] Explore gesture recognition model: https://mediapipe-studio.webapps.google.com/demo/gesture_recognizer 1284 📓 Notes & Spec 1285 (All hands are defined by integer ids 0-n) 1286 - Creating and Publishing 1287 (pattern -> body) -> style -> face 1288 mesh creation 1289 1. `hhf` aka `happy-hand-factory` with an integer. 1290 - Tie us to working with a particular hand and jumps to step A by default. 1291 - Go to another step with: `hhf:body 800` 1292 - Viewing and Using 1293 1. `hh` or `happy-hand` takes you to using a random hand from 0-n. 1294 2. `hh 800` will view a hand 1295 ✅ Done 1296 Thursday 1297 - [x] Got hand data working! 1298 - [x] Fix framebuffer initialization error from mediapipe loading delay. (@jeffrey) 1299 Wednesday 1300 - [x] Integrate `@mediapipe/hands` into the project. 1301 Tuesday 1302 - [x] Draw and define the 2D mesh thingy inside `pattern`. 1303 Monday 1304 - [x] Define command set for pipeline. 1305 - [x] Create `hhf` piece. (hhf.mjs) 1306 - [x] Onboard @ttarigh to the repo. 1307 - [x] Set on the client a global variable that determines what 1308 hand we are "on". 1309 - [x] Limit the count to 1024 or something like that. 1310 - [x] Fail if no param. 1311 - [x] Find good name for this process... 1312 - [x] Creating `happy-hands-factory` with an alias `hhf`. 1313 1314*** Adding Notifications *** 1315 - [x] Run on a device and send the first test notification. 1316 - [x] https://designcode.io/swiftui-advanced-handbook-push-notifications-part-2 (Halfway down page.) 1317 + Done 1318 - [x] Set up `FCM` (Firebase Cloud Messaging) 1319 - [x] Add integration to iOS app. 1320 - [x] https://github.com/firebase/quickstart-ios/tree/master/messaging 1321 1322*** lyrical melody finder / selector *** 1323 - [x] Fork `tone`. 1324 1325*** `whistle` *** 1326 + Done 1327 - [x] Get working on mobile. 1328 - [x] Whistle into the aesthetic.computer and get sine wave notes back. 1329 - [x] Proper oscillator phase shifting / tone updates. 1330 - [x] Add sine wave to speaker. 1331 - [x] Add boilerplate `whistle` code from `microphone`. 1332 - [x] Integrate pitch recognition with: 1333 - [x] https://github.com/bojan88/WASM-vs-JS-Pitch-detector 1334 - [x] Integrate pitch recognition processor into Microphone / Disk API. 1335 - [x] Get JS audioWorklet version working. 1336 // Cancelled 1337 - [n] https://tfhub.dev/google/tfjs-model/spice/2/default/1 1338 - [n] Match the samples / check the accuracy of the example. 1339 - [x] Example in : `spice-tensorflow.html` 1340 - [x] Why does this crash the tab? (Seems to crash on linux.) 1341 - [x] Make the example async / frame-skipping. 1342 - [n] https://editor.p5js.org/ml5/sketches/PitchDetection 1343 - [n] See if this works better than `spice`. 1344 1345 1346*** `prompt` History *** 1347 - [x] Move global keyboard shortcuts outside of `act` (to kill pieces mid-load / while swapping) 1348 - [x] Don't add `tone` / ahistorical jumps to prompt history list. 1349 1350*** whistle & tone *** 1351 + Done 1352 - [x] `tone` loop should not break on iOS / it eventually halts with a yellow spinner. 1353 - [x] Update `whistle` to not trigger sound in beat. 1354 - [x] Update `tone` to not trigger sound in beat. 1355 - [x] Refactor `beat` so that sounds can be triggered from `paint`, `act`, and `sim`. 1356 1357*** Whistle *** 1358 - [x] Get whistle working on iOS. 1359 1360*** encode/decode *** 1361 + Done 1362 - [x] Fix word wrap on response issue. 1363 - [x] Test with a motd or default response? 1364 - [x] Figure out how to handle pasting text on iOS. 1365 - [x] Add a shortcut to paste on mobile. 1366 - [x] Design the text + url that gets copied and sent. 1367 - [x] Add a "copied" hook to the `prompt-system`. 1368 - [x] Fix clipboard for iOS. 1369 - [no] add flag so that copy is only on some of the buttons 1370 - [x] print current text to console when copy button is pressed 1371 - [x] copy text to user's clipboard on every platform 1372 - [x] once copied, button reads 'copied' and is visibly deactivated for 3 seconds 1373 - [x] add the copy button to copy text 1374 - [x] Fix the empty params error. 1375 - [x] line break while editing 1376 - [x] make the decode bot 1377 - [x] colors for decode bot 1378 - [x] reset the interface so when text changes you have to hit reply again 1379 - [x] color changing 1380 - [x] when you press enter with mouse both times, it doesn't bring you to new entry blinking cursor 1381 - [x] bug: going to encode from prompt freezes the screen but works upon pressing enter 1382 - [x] decide on command names 1383 - [x] make the encode bot 1384 - [x] add gpt3-tokenizer library 1385 1386*** VS Code Extension *** 1387 + Done 1388 - [x] Finish and publish the first version. 1389 - [x] Add `monolith` backup service. 1390 1391*** Drag + Drop Coding *** 1392 + Done 1393 - [x] Open and edit this file to get live updates whenever the window 1394 regains focus. (Or automatically, via an export flag.) 1395 📗 Research: 1396 - This is not possible unless I publish an Electron app. 1397 - Or I could map it to the existing VSCode plugin. 1398 - [x] Look at this code again. 1399 - Or I could try to embed VSCode or another similar editor somehow. 1400 - [x] Drag and drop a `*.mjs` file onto aesthetic.computer to 1401 replace or add a piece with your version. 1402 - [x] Type `code piece-name` to get a template 1403 piece downloaded, or get the current version of an existing piece. 1404 1405 // Flow... (How to expose this to users?) 1406 // 1. A Template file will be downloaded. 1407 // 2. You can drag it into `aesthetic.computer` to route the 1408 // piece name to your file. 1409 // 3. Edit the code in your file and `aesthetic.computer` will update with 1410 // the changes automatically. 1411 // 4. Upload your command to your account using the `upload piece-name` 1412 // command. 1413 // 5. This makes it easy to test on any device by typing 1414 // `@handle/piece-name` into `aesthetic.computer` on any device. 1415 // 6. Publish your command to the world by submitting it with the 1416 // `submit piece-name` command. 1417 1418*** sfx *** 1419 + Done 1420 - [x] Test this sound playback on Firefox. 1421 - [x] Add startup sound to first enter button press. 1422 - [x] And add keyboard sounds to prompt system. 1423 - [x] Make sure `sfx` clears any remotely loaded sounds? 1424 - [x] Just whitelist sounds for now. 1425 - [x] Fix and test `sfx` in Safari. 1426 (Was production related?) 1427 1428*** Camera *** 1429 - [x] Simply get the camera working again, with a chooser. 1430 1431*** Corner Word *** 1432 - [x] Tapping the word in the corner should bring up the keyboard by default. 1433 1434*** Login + Sign-up Buttons *** 1435 + Done 1436 - [x] Get /@handle working. (Jeffrey) 1437 - [x] Tapping the text at the top of the prompt should activate it. 1438 - [x] CTRL & + should not make sign-up buttons go away. 1439 - [x] Show user handle on profile page if it exists. 1440 - [x] If the user is logged in, then add a `profile` button. 1441 - [x] New homepage with login / sign-up buttons. 1442 - [x] Add buttons to login / sign-up if the user is logged out. 1443 1444*** Text Editing *** 1445 - [x] Pasting text at the beginning of a \n is broken. 1446 1447*** `Prompt Editing` *** 1448 - [x️‍] Scrubbable cursor. 1449 1450*** `paint` / `ask` *** 1451 - [x] Why did `ask` stop working on local? Is it a `vercel dev` issue? 1452 - [x] Put behind reverse proxy. 1453 - [x] What other options are there, should I run a node service again? 1454 1455*** Ordinals Collection *** 1456 + Now 1457 - 📓 This collection should be fully analog. 1458 I should keep a list of sats somewhere in a notebook, 1459 then sign drawings and upload them. 1460 + Done 1461 - [x] Inscribe a test ordinal. 1462 1463*** (w)ordfish *** 1464+ Cancelled 1465- [] Create the last 50 ordfish once fees go down. 1466 - [] Use `paste` to bring in old ones. 1467- [] Re-automate the process, including upload to spaces... Perhaps 1468 putting it in the a.c api with some edge functions. 1469+ Done 1470- [x] Sign an `ordfish` for Casey. 1471- [x] Make an `ordfish` slideshow page and route the codes to 1472 `ordfish~CODE` for url sharing with a button link to ordinals.com. 1473- [x] Get collection page online. 1474- [x] Make bw drawings and inscribe them. 1475- [x] get `word` working again 1476- [x] make it so exporting of resized paintings works 1477 1478 1479*** `paint` *** 1480 - [x] Paint anything by routing prompt to a model. (OpenAI) 1481 1482(Regressions) 1483- [x] Firefox: Fix blank screen on boot. 1484- [x] Painting doesn't fully reset when resizing. 1485- [x] Just using `box(x, y w, h, "*center")` does not work. 1486- [x] `n` and `p` keyboard shortcut do not ignore history / break navigation 1487- [x] Fix Freaky Flowers opensea regression. 1488- [x] Chained paint functions do not respect inkrn. 1489- [x] Check `wg` and `ff` and other disks including the prompt in the Instagram in-app browser! 1490 1491* 23.04.29.23.42 and ^ 1492 1493*** Ranged Parameter Support *** 1494 - [x] Generalize ranged parameters. 1495 - [x] Extract the current implementation from `oval` into a general 1496 params parser that detects type and returns a filtered list. 1497 1498* 23.02.10.14.42 and Earlier 1499 1500*** `rect` *** 1501 - [x] Add thickness to the rectangle outlines. 1502 - [x] Write the ideal "rect" brush code. 1503 - [x] Analyze how dragBox + drawing commands are working, reduce even more. 1504 - [x] Add "center" rectangles. 1505 - [x] Add unfilled rectangles. 1506 - [x] Re-read brush code, squashing down the api bit by bit. 1507 - [x] Starting a pan while mid stroke 1508 cancels the stroke but still stamps 1509 a rectangle when the pan ends and the mouse lifts. 1510 - [x] Abstract "needsBake" into nopaint. 1511 - [x] I need an abstraction to know whether we are making a brush 1512 stroke or not, in order to manage panning and drawing logic 1513 across platforms. 1514 1515*** N and P Shortcut *** 1516 - [x] Shouldn't these shortcuts just return the user back to the prompt? 1517 1518*** User Uploaded Paintings *** 1519 - [x] Test download links on desktop and mobile: https://localhost:8888/download:painting~me@jas.life/painting-2023.3.12.13.02.14 1520 - [x] Modify `download` to accept a painting and offer special link. 1521 - [x] After `ul` send a message back to the user of what the code was 1522 or how to access their material... maybe via the `download` piece? 1523 - [x] Also add a `ul` progress bar. 1524 1525*** Peter Hand: HOOK Screening *** 1526 - [x] Make a phand hook screening page / menu page with the bleep option, and 1527 some drawing tools with image upload? 1528 - [😫] Choose drawing tools. 1529 - [?] Upload 1530 - [x] Basic page: `phand`. 1531 - [x] Bleep link 1532 - [] You can always view your last uploaded painting by visiting 1533 aesthetic.computer/email 1534 + Done 1535 - [x] Make a prescribed 4x1 Bleep that can be triggered by the audience 1536 and run by 4 players. 1537 1538*** Authorization Emails / Login *** (@rcrdlbl) 1539 (See `auth0` directory) 1540 - [x] Add a full screen background iframe for `https://aesthetic.computer/login-pattern` behind the html. @rcrdlbl 1541 + Done 1542 - [x] Add fuzzy backdrop (`login-pattern`). 1543 - [X] Login Screen 1544 - [x] Can we style auto-fill highlighting? 1545 - answer: no. see https://developer.mozilla.org/en-US/docs/Web/CSS/:autofill 1546 - [X] Remove bold from the button typography and the error messages. 1547 - [X] Text input and button typography must match. 1548 - [X] Match relative placement of form fields to the `prompt` text on 1549 the a.c homepage. 1550 - [X] Style the borders / padding of the text input fields to be less visible. 1551 - [X] Make sure the type lines up with the buttons. 1552 - [X] "I'm New" -> "New Account" and place the buttons vertically. 1553 (Use the `valbear` screen as a visual / aesthetic guide) 1554 - [x] Try a border on just the Log In button, or both buttons? 1555 - [X] Custom email templates... 1556 - [X] Replace `Welcome Email` and `Change Password` email templates with 1557 simple text options. 1558 auth0 Dashboard -> Branding -> Email Templates 1559 https://www.figma.com/file/2uw2Y2pAGMLFIi2XTpJy6w/login-page-notes?node-id=0%3A1&t=dmJ8wmL6IEd2CUwX-0 1560 - [x] Set up a mail service provider. @jeffrey 1561 1562*** Auth0 Integration *** 1563 + Done 1564 - [x] Custom painting filenames / listings or subdirectories for users. 1565 - [x] Offline failure red flash. 1566 - [x] Protect a server route. 1567 - [x] https://auth0.com/docs/quickstart/spa/vanillajs/02-calling-an-api 1568 - [x] Call the API 1569 - [🟡] Put user information into the `prompt` MOTD! 1570 - [x] SMS Support via Twilio. 1571 - [x] Signup on passwordless authentication via email only. 1572 - [x] https://auth0.com/docs/libraries/auth0js#webauth-crossoriginverification- 1573 - [x] Test in production and on local. 1574 - [x] Set up auth0 sign-up via https://manage.auth0.com. 1575 - [x] Add login and logout handlers. 1576 1577*** Molly Soda Moods *** 1578 - [x] Add support for camera brush. 1579 - [x] Rename sparkle -> icon 1580 - [x] Add glyphs to icon brush. 1581 - [x] Spin up icon brush prototype. 1582 "Activity" 1583 { 1584 - [x] Title Screen 1585 - [x] Camera 1586 - [x] Icon (preset palettes with preset graphics, similar to text changing words) 1587 - [x] Rename sparkle to icon. 1588 + Tonight 1589 - [x] "Sparkle" by Maya 1590 - [x] Jeffrey asks Maya about doing sparkle. 1591 + Later 1592 1593*** Pressure / Apple Pencil + Stylus Support *** 1594 - [x] Debug Apple Pencil on actual hardware. 1595 1596*** Wipe *** 1597 - [x] Make a `wipe` brush to clear the screen and encourage this over `no!` 1598 which clears the store in the local:db and eliminates the undo stack. 1599 1600*** Val *** 1601 - [x] A valentines day palette / workflow. 1602 1603*** Text Thickness ** 1604 - [x] Add basic `thickness` to word. 1605 1606*** Oval Brush *** 1607 - [x] Filled circle 1608 1609*** HUD *** 1610 - [x] Tap hud word to go back or to prompt if history is null. 1611 1612*** System *** 1613 - [x] Don't reload off the network / cache if reloading. 1614 1615*** No Paint QOL Shotcuts *** 1616 - [x] 'n' Shortcut to paint and reload the same brush. 1617 - [x] 'p' Shortcut to reload the same brush without painting. 1618 1619*** Type *** 1620 - [x] Start up a `write` / `text` brush so I can print 1621 text at various scales. 1622 1623*** Shape *** 1624 - [x] Finish prototype of filled `shape` tool. 1625 1626*** Better Logging *** 1627 - [x] Create a logs.mjs file that can enable / disable certain development log flags when working, such as disabling all "store" logs. 1628 1629* (Outdated) Bugs / Improvements 1630 - Stop sending duplicate event data for "draw" and "touch" in `pen`. 1631 - e.is("draw") && e.is("touch") should not send duplicate event {x, y} data 1632 - Explore: removing: send({ type: "update", content: { didntRender: true, loading } }); 1633 From the bottom of `disk.js`. 1634 - Add blockchain integration for identity: https://docs.moralis.io/introduction/readme 1635 - Re-work the depth buffer (in the rasterizer) before making a simple 3D environment? 1636 - Pass 'diskTime' global into the api. 1637 - Add $api.sound.beatCount counter to `beat`. 1638 - Add scriptProcessorNode fallback so audio can run within insecure contexts. (FigJam) 1639 - Stop tracks in all mediaStreams: https://stackoverflow.com/a/12436772 1640 (Video and Microphone) 1641 - Refactor (screen.width -> screen.w & screen.height -> screen.h) across the board? 1642 - To be more consistent with `graph.box`. 1643 - Workers can be wrapped in this... https://benohead.com/blog/2017/12/06/cross-domain-cross-browser-web-workers/ 1644 1645*** 🎃 DIGITPAIN *** 1646 - [] Complete DIGITPAIN 0-5. 1647 - [] Mint the work and have the contract made. 1648 - [] Make a frame capture tool for generating webp images. 1649 - [] Add the work to the JSON and release digitpain.com. 1650 - [] Write a better static exporter script includes only the disks I want, plus resources. 1651 - [] Automate DIGITPAIN (Teia) exports: 1652 1. Clone `public` directory. 1653 2. Remove any `.html` files that aren't `digitpain-ipfs-index.html`. 1654 3. Process `digitpain-ipfs-index.html`, inserting info for a new mint. 1655 4. Rename `digitpain-ipfs-index.html` to `index.html`. 1656 3. Remove all files other than `/digitpain` and `digitpain0.js` from `disks/`. 1657 4. Zip the contents so there is a zip file with one directory called `public`, 1658 and rename it to `DIGITPAIN #.zip`. 1659 1660***Routing Longtail*** 1661 - [x] Do away with hashtag routes entirely. 1662 - [x] Refactor ":" parameter encoding (see `wg`) into using classic url parameters. 1663 - [x] Or just use one of these special characters: `. _ ~ -` 1664 1665 aesthetic.computer/wg.fuzz 1666 aesthetic.computer/wg_fuzz 1667 aesthetic.computer/wg-fuzz 1668 aesthetic.computer/wg~fuzz 1669 aesthetic.computer/metronome~80~100 1670 1671 aesthetic.computer/~niki/plot~40~50 1672 aesthetic.computer/~niki/plot~40~50 1673 1674 // Maybe the special characters could be default parameters, or represent 1675 // types of some kind? 1676 1677 Available domains: 1678 - prompt.ac 1679 - wgr.ac (whistlegraph recorder) 1680 - wgl.ac (whistlegraph live) 1681 - jas.ac (my new homepage) 1682 - aesthetic.run 1683 - aesthetic.codes 1684 - aesthetic.cx 1685 1686*** (Outdated) 2D Whistlegraph Recorder *** (August 1st - Launch) 1687 - [] Only record frames that are not part of the interface. 1688 - [🟢] Make a DOM based button. 1689 - [] Attach events to it... figure out the smartest way to have it connect to `function act`? 1690 - [] Should I use a ShadowDOM for this or is it overkill... 1691 - https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM 1692 OR ... 1693 - [] Dump frames before painting the interface on top... via a pixel buffer 1694 being sent over the worker. 1695 (This might be slow) 1696 (Could be useful eventually... to selectively record video of certain pixel buffers, or render frame by frame.) 1697 - [] Record frames at a multiplied resolution over the original canvas. 1698 - [] Complete ***Upload Server*** 1699 - [] Is there a way for a local install to still use codes? How would this be 1700 proxied and tested? Maybe with an environment variable and a separate 1701 upload server that has no expiration? 1702 - [] Store the video on a camera roll in a mobile browser. 1703 - [] Explore using the TikTok API Integration : https://developers.tiktok.com/apps 1704 - This should allow users to save / post? their video directly to TikTok from the web. 1705 - [] Two finger twist and zoom while recording... use vector data. 1706 - [X] Make sure that the audio and video are synchronized across devices. 1707 (Video seems delayed on iOS right now.) 1708 - [X] Record and playback the user's voice in `microphone`. 1709 - [X] Record the content of `microphone` as a video. 1710 - [Commented Out] Add an "audio engine off" system overlay / call to action 1711 that uses the DOM? 1712 - [X] It should be removed... each program should handle this on its own... 1713 - [X] Throw up the html if the audio engine is off and the beat function 1714 has not been exported. 1715 - [X] Add all the new Typefaces to CSS. (Berkeley Mono Variable, and Proce55ing) 1716 1717*** AV *** 1718 - [x] Make sure that video encoding works on all platforms. 1719 - [x] Try implementing custom ffmpeg-core files 1720 : https://github.com/ffmpegwasm/ffmpeg.wasm/issues/299 1721 - [x] Add a "done" or "close" button to the recording UI / share sheet which 1722 re-activates the UI. 1723 - [x] Add a special UI for uploading the file / receiving a code... 1724 so it's a choice? 1725 - [x] Make the recording process re-entrant. (Don't reload ffmpeg each time?) 1726 - [x] Add a progress bar / interstitial that runs while the file is encoding, 1727 preventing the user from being able to act. 1728 - [x] Test the interaction. 1729 - [x] Gray out the screen. 1730 - [x] Make microphone recording button a bit nicer. 1731 - [x] Add ffmpeg.wasm 1732 - [x] Fix microphone record button. 1733 - [x] Try to just upload the file directly here. 1734 - [x] Write a netlify serverless function and call it from the microphone 1735 piece... so the file can be uploaded. 1736 - [x] Netlify Serverless Hello World 1737 - https://www.netlify.com/blog/2021/07/29/how-to-process-multipart-form-data-with-a-netlify-function/ 1738 1739*** Image Support *** 1740 *** Save *** 1741 - [x] Make it so that desktop uses the current "save-file" event route, 1742 but mobile pops open a UI... 1743 - Should this UI be shared on all platforms? 1744 Try web components here: https://developer.mozilla.org/en-US/docs/Web/Web_Components 1745 - What does it mean to "save" an image? 1746 - [x] Add API for system-wide saving of webp or png images (through nopaint). 1747 - [x] Test image saving on different platforms. 1748 - [x] Prototype image save function. 1749 *** Load *** 1750 - [x] From a URL into a buffer. 1751 - [x] and then be able to paste it. 1752 1753***Live Reloading*** 1754 (Outdated) 1755 - [] Fix live reloading for everyone / add some people to dev server. 1756 - [] Disable nginx cache? https://ubiq.co/tech-blog/disable-nginx-cache 1757 1758*** Harrison Idea *** 1759 - [x] NO command. 1760 - [x] no! painting reset 1761 1762*** Misc *** 1763- [x] Prototype screen-based whistlegraph recorder tool. 1764 - [x] Add it to the API and make a `wgr` disk. 1765 - [x] Set up doodads like file hosting. 1766 - [x] Write micropage for the whistlegraph album. (m2w2) 1767 - [x] Fix image download function. 1768 - [x] Get developer live reload working again. 1769 - [x] Deploy and test everything to see if it works. 1770 - [x] Add a post request edge function called "reload". 1771 - [x] Wire up plot for Amalia. 1772 - [x] Queue any sent socket messages to be sent once the socket 1773 backend connects. 1774 - [x] Turn 'sb' -> 'play'... a *tiny* recordable chat program in X turns. 1775 - [x] Retrofit `prompt` with the new abstraction in `type.mjs` 1776 - [x] Clear any prompt specifics in bios. 1777 - [x] Fix major segfault regression. 1778 - [x] Abstract the text entry logic out of 'prompt'. 1779 - [x] 🔐 Setup user system! (Ethereum) 1780 - [x] Add user feedback for web3 connect. 1781 - [x] Basic web3 integration. 1782 - [x] Research auth methods. 1783 - [x] BGM Protoype 1784 - [x] Spin up session-server in sb. 1785 - [x] Add a database / hosted DB. 1786 - [x] Digital Ocean 1787 - [x] Redis 1788 - [x] Prototype BGM 1789 - [x] Spin up session-server in sb. 1790 - [x] Add a database / hosted DB. 1791 - [x] Digital Ocean 1792 - [x] Redis 1793 1794*** Freaky Flowers Launch *** 1795 + Done 1796 - [x] Fix OpenSea mobile iframe crop. 1797 (Send OpenSea a Tweet: https://twitter.com/digitpain/status/1624129497980104704) 1798 - OpenSea Test URL: https://testnets.opensea.io/assets/goerli/0x4FEa5E2a8C3bfc742B43b48FC4F2eA9913452B99/0 1799 - Wild Test URL; https://testing--wildxyz-market-4231.netlify.app/jeffrey-scudder/freaky-flowers/0/ 1800 - [x] Overall aspect ratio fix. 1801 - [x] Redraw full progress bar on resize! 1802 - [x] Write `ff` documentation on Discord. 1803 - [x] Better optimization for mobile vertical view. 1804 - [x] Custom label offset for `ff`. 1805 - [x] Add a color param to `label` and feed wand color in with a lerp. 1806 - [x] Make progress bar on top above label. 1807 - [x] Be in spin mode until a key is pressed. 1808 - [x] Fix ` keyboard prompt typing bug. 1809 - [x] Move sculpture back a tad. 1810 - [x] Eliminate gap borders while embedded / sandboxed? (Fix OpenSea black bars.) 1811 - [x] Fix preview segment rendering when size changes. 1812 - [x] Add a button in VR (and keyboard shortcut) to reset the timelapse 1813 without refreshing. 1814 - [x] VR timelapse should default to 1x. 1815 - [x] Colored stripey progress. 1816 - [x] Wand should be hidden when a player is running. 1817 - [x] All controller buttons should be disabled when a player is running. 1818 - [x] Make wand render again / get WebVR working. 1819 - [x] Kill any errors. 1820 - [x] Zoom out a proper distance based on aspect ratio. 1821 - [x] WebGL Layer and software Layer are off by 1 or a fraction of a pixel on iPhone. (Bottom) 1822 - [x] Fix double reconstructing loading bar code. 1823 - [x] Draw the full wand preview and include size changes! 1824 - [x] Add new Discord update script. 1825 - See also: https://github.com/fieu/discord.sh 1826 - [x] Don't advance a playing demo if tabbed out. 1827 - [x] Make "preview" mesh rotate correctly (90deg on one axis?) 1828 - [x] Use `ff 2 1` as a test case. 1829 - [x] Don't cull the preview wand. 1830 - [x] Loading `instant` style should be chunked to avoid crashes 1831 on lower end hardware and also to enable "..." animation on "Reconstructing...". 1832 - [x] Show progress bar for Reconstructing. 1833 - [x] Clean out "dead" code. 1834 - [x] Prevent keyboard shortcuts and other act events from running before 1835 fully loading / while loading / reconstructing. 1836 - [x] Show capForm "preview" in demo mode. 1837 - [x] Wand should be "thicker". 1838 - [x] Get loading working much nicer both in playback mode and 1839 in "instant" mode with a visual progress indicator of some kind. 1840 - [x] Fetch progress bar. 1841 - [x] Don't show progress bar if things have already downloaded... 1842 - [x] Put yellow spinner on special little delay. 1843 - [x] Make intial boot fuzz a much lower resolution. 1844 - [x] What isn't being auto-rotated? 1845 - [x] Capform 1846 - [x] Start spinning, at a high rate, (about 30seconds max timelapse) 1847 - [x] Add ability to hide / customize hud text. 1848 - [x] Make sure iframe mockup works for `ff`: https://localhost:8888/sandboxed-iframe-mockup.html 1849 - All Pieces 1850 - [x] Every piece by default (unless it opts out) will show its name 1851 and parameters in the top left corner. 1852 - [x] Write readouts to separate "secret" buffer (see `HUD` in disk) 1853 - [x] Add "signature" / title flag feature to `dl` command. 1854 - `sign` 1855 - [x] Paste a signature with timestamp in the corner. 1856 that is NOT opaque and in the bottom left corner. 1857 - [x] Review spreadsheet metadata: https://docs.google.com/spreadsheets/d/10aeN4WyTQ1UQUT9-IUbKFdoeEfkumqM6_8mvFs5dVq8/edit#gid=1052521247 1858 1859*** Painting w/ Signature for Yeche Lange*** 1860 + Done 1861 - [x] Make two or three works for Yeche. 1862 - `line` 1863 - [x] Add line thickness... 1864 - [x] Make pppline if thickness is 1 1865 - [x] Fix color inconsistencies among screen and painting. 1866 - [x] Add ? ? ? options with ? expansion? 1867 - `no` 1868 - [x] Undo / redo a step. 1869 - [x] with multistep options 1870 1871*** Tracker *** 1872 - [x] Fix buttons. 1873 1874*** Keyboard Input *** 1875 - [x] Debug keyboard input on every device again. 1876 - [x] Android 1877 - [x] Meta (Seems good.) 22.11.03.23.34 1878 + Done 1879 - [x] Fix duplicate "Enter" event bug on desktop. 1880 1881*** Friendlier Developer Logs *** 1882 - [x] Optimize the console.log output in production to be 1883 more terse, and make common sense. 1884 1885***Android Day*** 1886 - [x] Fix keyboard controls not working (this should also fix Meta Quest 2). 1887 + Done 1888 - [x] Provision Android phone. 1889 1890*** Hex Support *** 1891 - [x] Add hex support to color inputs. 1892 1893*** Bonus *** 1894 - [x] Change `ap` -> `test`. (Rapter) 1895 - [x] Detect dark mode and modify the prompt accordingly. 1896 1897*** 3D Renderering *** 1898 + Done 1899 - [x] Only load threejs if necessary. 1900 - [x] Fix thread boundary conditions related to hot reloading. 1901 - [x] Broken on load. 1902 - [x] Fix `sim` being busted on quick reload. 1903 - [x] Fix cursor transparency in 3dline. 1904 (Make blend function take into account existing alpha.) 1905 - [x] See if this is faster than the software renderer as-is? 1906 - [x] Make sure picture ratios match up perfectly. 1907 - [x] Get lines working. 1908 - [x] Switch the / convert software rasterizer from left handed to right handed 1909 rendering. 1910 What worked on the software renderer side: 1911 - Flip X and Z position of each vertex before transform. 1912 - Flip X and Z rotation of each vertex before transform. 1913 - Flip Y rotation of the camera before transform. 1914 - Rotation matrix multiply order for camera: YXZ. 1915 - Rotation matrix multiply order for vertices: XYZ. 1916 + Future + Eventually I could look into using the exact same matrix data across both? 1917 - [x] Get textures in there. 1918 - [x] Enable all objects. 1919 - [x] Optimize pixel array sending. (Had to make an extra layer) 1920 - [x] Disable backface culling. 1921 - [x] Make it so that "form" calls that take an array, render in 3js and return the pixels back. 1922 - [x] A single "form" call should be able to send over multiple objects. 1923 1924 *** Resize (gap-density) *** 1925 - [x] Add "scale" to "paste" 1926 - [x] Cursor is janky when paint returns -> false. 1927 1928*** Prompt *** 1929- [x] Use localStorage for command history. 1930 - [x] Set up general localStorage system / API. 1931 - [x] Maybe it could be built off of store? 1932 1933*** Pieces: Prompt *** 1934 - [x] No more tildes for user paths... 1935 Instead, use an '@' for usernames. 1936 eg. sage/piece 1937 - [x] Prompt 1938 - [x] Index 1939 - [x] Up arrow for previous command. 1940 - [x] Update MOTD. 1941 1942*** Safari Day *** 1943- [-] Thin lines appearing from `gap` and no gap in mobile Safari. 1944- [x] Grey selection bubble appears in mobile Safari. 1945- [x] Loading spinner not appearing in mobile Safari. 1946- [x] Fix iOS Safari page refresh bug. (Test on MacBook Pro) 1947 (Needed `Vary: *` http header, to prevent Safari's cache from bugging out 1948 on the SharedArrayBuffer / isolatedOrigin CORS headers.) 1949 1950***Tracker, Pull*** 1951- [x] Fix interface boxes. 1952- [x] Make `boxes` test piece. 1953 1954***Meta*** 1955- [x] Add support for custom / locally generated thumbnail overrides. 1956 - [x] Test override for some specific route... maybe blank? 1957- [x] Serve a 404 page for anything else that breaks. 1958 - [x] Right now it just crashes here: https://aesthetic.computer/okok 1959 - [x] Right now it just is black here: https://aesthetic.computer/~niki/whatever 1960- [x] Do the TOML routes actually matter? No. 1961- [x] Get ~/niki/blank working again. 1962- [x] Separate out / parse the text before loading a disk serverside so that 1963 parameterized disks work again. 1964- [x] Make them work on iOS 1965- [x] Write a new netlify function that returns the proper html for every page, 1966 so that prerendering can be turned off (get imessage previews working). 1967- [x] Should og:image and twitter:image have file extensions? 1968 1969***L8 Night*** 1970- [x] Get a debugger working. 1971 1972***2D Drawing Primitives for Niki*** 1973 - [x] line from point... at angle with distance 1974 1975***Routing & Twitter Cards*** 1976 - [X] Figure out how to get open-graph info and twitter cards working for all of a.c? 1977 - [X] How should the og:images be made? Perhaps a special tool is needed or screenshots 1978 can be taken automatically? 1979 - [x] Set defaults if the info isn't there... 1980- [x] Test Netlify pre-rendering to see if it functions. 1981- [x] Use netlify's pre-rendering and (it's already turned on... and change the og:title) 1982- [X] Enable Netlify pre-rendering. 1983 - Validator: https://cards-dev.twitter.com/validator 1984 - Prototype: https://glitch.com/edit/#!/pepper-efficacious-yellowhorn?path=index.html 1985 - [X] Implement path based routing for pieces via netlify and on a local dev server. 1986 1987***User Pieces (niki.aesthetic.computer)*** 1988- [x] History breaks right now across domains, because some parsing goes through the `prompt`. 1989 - [x] Make sure loading using the `tilde` key works across hosts. 1990 - [x] Start remote routing from boot instead of only in prompt? 1991 - [x] Make a `parse.js` library file that can be used in `prompt`, then `boot`. 1992 - [x] Copy the code from prompt and replicate it in boot, then 1993 - [x] follow the logic through to check for inconsistencies. 1994 - [x] Remove `search` from `disk.js` load. (Deprecrate reading queryParams 1995 at the disk level... they should only be reserved for system settings?) 1996- [x] Also, the page can't refresh and the path gets rewritten improperly. 1997- [x] Get `niki.aesthetic.computer` running. 1998- [x] Get a prototype of Niki's piece working that she can actually edit as the first user. 1999 2000***Server Re-organization*** 2001 - [x] Should the uploader be a serverless function? Yes! 2002 (This would prevent the need for a load balancer if file uploading was a bottleneck.) 2003 (Would it run locally?) 2004 - [x] Set netlify environment variables for the digital ocean space. 2005 - [x] How to run two server processes from one npm command? 2006 - [x] Should the websocket server run as a separate process from the http api? 2007 - [x] Should it run on a separate machine as of now? 2008 2009***Editor*** 2010- [-] Get socket server running under GitHub codespaces as well. 2011 (wss:// is currently unsupported) 2012- [x] Get the project working in GitHub codespaces. 2013 2014🐛 Completed Bugs & Regressions 2015- [X] Check to see why custom thumbnails are broken for remote URL disks. 2016- [X] `wg` disks no longer work 2017- [X] Kill any microphone (or video) connection after leaving a piece it's connected to. 2018- [X] Routing: Check ~tilde~ key - don't push duplicate states in the history.