1/** Generated by bun run build:changelog. Do not edit by hand. */ 2(function (global) { 3 'use strict'; 4 global.PUPWIFE_CHANGELOG = { 5 "generatedAt": "2026-09-28T02:36:18.857Z", 6 "revision": "20694c9e66792d5c", 7 "latestDate": "2026-09-27", 8 "entries": [ 9 { 10 "date": "2026-09-27", 11 "pages": [ 12 { 13 "name": "Pupocalypse", 14 "href": "pupocalypse.html", 15 "icon": "fa-dog", 16 "groups": [ 17 { 18 "type": "updated", 19 "items": [ 20 { 21 "text": "Pupocalypse was updated today. Open the game for the full notes." 22 } 23 ] 24 } 25 ] 26 } 27 ] 28 }, 29 { 30 "date": "2026-09-25", 31 "pages": [ 32 { 33 "name": "CitrusOS", 34 "href": "index.html", 35 "icon": "fa-desktop", 36 "groups": [ 37 { 38 "type": "new", 39 "items": [ 40 { 41 "text": "Customize your desktop: add or remove app shortcuts, rename icons, and drag apps out of folders onto the wallpaper." 42 }, 43 { 44 "text": "Create your own folders on the desktop or inside Arcade, Silly Things, and other hubs." 45 }, 46 { 47 "text": "Reorganize folder contents by dragging apps between folders. Hold Shift when dropping a desktop icon into a folder to copy it instead of moving." 48 }, 49 { 50 "text": "Right-click the desktop for Add app, New folder, and reset options for icons and folder layout." 51 }, 52 { 53 "text": "New Changelog desktop widget shows recent updates; expand it for the full log with S / M / L text sizing." 54 } 55 ] 56 }, 57 { 58 "type": "fixed", 59 "items": [ 60 { 61 "text": "Folder windows keep a proper footer bar so empty folders are easier to drop apps into." 62 }, 63 { 64 "text": "Desktop icon drag no longer shows ghost duplicates or crashes the layout." 65 } 66 ] 67 }, 68 { 69 "type": "polished", 70 "items": [ 71 { 72 "text": "Folder, Blog, and Chat windows are fixed-size to match the rest of CitrusOS." 73 }, 74 { 75 "text": "Desktop drag uses themed prompts instead of browser popups; icons dropped from folders land near your pointer." 76 } 77 ] 78 } 79 ] 80 } 81 ] 82 }, 83 { 84 "date": "2026-09-24", 85 "pages": [ 86 { 87 "name": "CitrusOS", 88 "href": "index.html", 89 "icon": "fa-desktop", 90 "groups": [ 91 { 92 "type": "updated", 93 "items": [ 94 { 95 "text": "Music library preload is off by default for faster boot (changeable in Settings)." 96 } 97 ] 98 }, 99 { 100 "type": "fixed", 101 "items": [ 102 { 103 "text": "Jellypuff follower shader error no longer spams WebGL errors and lags the homepage." 104 }, 105 { 106 "text": "Show Desktop no longer leaves windows invisible until you focus an app again." 107 } 108 ] 109 }, 110 { 111 "type": "polished", 112 "items": [ 113 { 114 "text": "BIOS boot progress bar and status text now track real loading steps." 115 } 116 ] 117 } 118 ] 119 } 120 ] 121 }, 122 { 123 "date": "2026-09-22", 124 "pages": [ 125 { 126 "name": "CitrusOS", 127 "href": "index.html", 128 "icon": "fa-desktop", 129 "groups": [ 130 { 131 "type": "fixed", 132 "items": [ 133 { 134 "text": "Right-click context menu works again after zooming in or out." 135 } 136 ] 137 }, 138 { 139 "type": "polished", 140 "items": [ 141 { 142 "text": "Desktop icons, windows, context menus, and background shaders stay consistent when you change browser zoom." 143 }, 144 { 145 "text": "Win9x-style scrollbars across CitrusOS apps, folders, widgets, and in-window scroll areas." 146 } 147 ] 148 } 149 ] 150 } 151 ] 152 }, 153 { 154 "date": "2026-09-21", 155 "pages": [ 156 { 157 "name": "CitrusOS", 158 "href": "index.html", 159 "icon": "fa-desktop", 160 "groups": [ 161 { 162 "type": "updated", 163 "items": [ 164 { 165 "text": "About, Privacy, Terms, Contact, and related pages now open as CitrusOS desktop apps in fixed-size windows." 166 }, 167 { 168 "text": "Site Info folder defaults to the bottom-right corner (one-time migration for existing layouts)." 169 } 170 ] 171 }, 172 { 173 "type": "fixed", 174 "items": [ 175 { 176 "text": "Folder icon selection highlight clears correctly after opening or closing a Site Info app." 177 } 178 ] 179 } 180 ] 181 }, 182 { 183 "name": "Chat", 184 "href": "chatroom.html", 185 "icon": "fa-comments", 186 "groups": [ 187 { 188 "type": "fixed", 189 "items": [ 190 { 191 "text": "Chat login prompt only appears inside the Chat window when you are logged out, not on other open apps." 192 } 193 ] 194 } 195 ] 196 } 197 ] 198 }, 199 { 200 "date": "2026-09-18", 201 "pages": [ 202 { 203 "name": "Music", 204 "href": "music.html", 205 "icon": "fa-music", 206 "groups": [ 207 { 208 "type": "new", 209 "items": [ 210 { 211 "text": "Resizable playlist, track, and queue columns (widths saved per browser)." 212 } 213 ] 214 }, 215 { 216 "type": "updated", 217 "items": [ 218 { 219 "text": "Music opens as a redesigned CitrusOS window with pinned playback bar and scrollable track list." 220 }, 221 { 222 "text": "Up Next queue is a compact panel with track count instead of a permanent third column." 223 }, 224 { 225 "text": "Playback and volume sliders match other CitrusOS retro controls." 226 } 227 ] 228 }, 229 { 230 "type": "fixed", 231 "items": [ 232 { 233 "text": "Closing Music clears song/album query params so refresh does not reopen it." 234 }, 235 { 236 "text": "Music typography no longer mashes playlist and song titles together inside CitrusOS windows." 237 } 238 ] 239 } 240 ] 241 } 242 ] 243 }, 244 { 245 "date": "2026-09-16", 246 "pages": [ 247 { 248 "name": "Settings", 249 "href": "index.html", 250 "icon": "fa-sliders", 251 "groups": [ 252 { 253 "type": "new", 254 "items": [ 255 { 256 "text": "Jellypuff: new procedural jellyfish cursor follower with pulse swimming, wavy tentacles, and deep-sea physics on the CitrusOS homepage." 257 }, 258 { 259 "text": "Jellypuff settings panel: size, pulse rate, tentacle density, glow, and bell/tentacle colors." 260 } 261 ] 262 } 263 ] 264 } 265 ] 266 }, 267 { 268 "date": "2026-09-15", 269 "pages": [ 270 { 271 "name": "Pupocalypse", 272 "href": "pupocalypse.html", 273 "icon": "fa-dog", 274 "groups": [ 275 { 276 "type": "updated", 277 "items": [ 278 { 279 "text": "Pupocalypse was updated today. Open the game for the full notes." 280 } 281 ] 282 } 283 ] 284 } 285 ] 286 }, 287 { 288 "date": "2026-09-14", 289 "pages": [ 290 { 291 "name": "Study Hall", 292 "href": "studyhall.html", 293 "icon": "fa-graduation-cap", 294 "groups": [ 295 { 296 "type": "updated", 297 "items": [ 298 { 299 "text": "Study Hall now opens as a retro CitrusOS desktop app with a fixed study window." 300 }, 301 {
302 "text": "New home bar shows combined due counts and study streaks." 303 }, 304 { 305 "text": "Quiz now fills the app window, with quick Quiz now, Study all due, session stats, and Retry missed." 306 } 307 ] 308 }, 309 { 310 "type": "fixed", 311 "items": [ 312 { 313 "text": "Study Hall no longer redraws the whole window on every button click." 314 } 315 ] 316 }, 317 { 318 "type": "polished", 319 "items": [ 320 { 321 "text": "Study Hall views center short content instead of hugging the top; lesson lists scroll without stretching empty space below." 322 } 323 ] 324 } 325 ] 326 }, 327 { 328 "name": "Pupocalypse", 329 "href": "pupocalypse.html", 330 "icon": "fa-dog", 331 "groups": [ 332 { 333 "type": "updated", 334 "items": [ 335 { 336 "text": "Pupocalypse was updated today. Open the game for the full notes." 337 } 338 ] 339 } 340 ] 341 } 342 ] 343 }, 344 { 345 "date": "2026-09-13", 346 "pages": [ 347 { 348 "name": "Pupocalypse", 349 "href": "pupocalypse.html", 350 "icon": "fa-dog", 351 "groups": [ 352 { 353 "type": "updated", 354 "items": [ 355 { 356 "text": "Pupocalypse was updated today. Open the game for the full notes." 357 } 358 ] 359 } 360 ] 361 } 362 ] 363 }, 364 { 365 "date": "2026-09-07", 366 "pages": [ 367 { 368 "name": "Settings", 369 "href": "index.html", 370 "icon": "fa-sliders", 371 "groups": [ 372 { 373 "type": "new", 374 "items": [ 375 { 376 "text": "Two new color palettes sitewide: Banana (pastel yellow with soft orange highlights) and Sakura (soft pink with lavender accents)." 377 }, 378 { 379 "text": "Banana and Sakura work in light and dark mode across CitrusOS, the chatroom, and the rest of the site." 380 } 381 ] 382 } 383 ] 384 } 385 ] 386 }, 387 { 388 "date": "2026-08-29", 389 "pages": [ 390 { 391 "name": "Pupocalypse", 392 "href": "pupocalypse.html", 393 "icon": "fa-dog", 394 "groups": [ 395 { 396 "type": "updated", 397 "items": [ 398 { 399 "text": "Pupocalypse was updated today. Open the game for the full notes." 400 } 401 ] 402 } 403 ] 404 } 405 ] 406 }, 407 { 408 "date": "2026-08-27", 409 "pages": [ 410 { 411 "name": "Pupocalypse", 412 "href": "pupocalypse.html", 413 "icon": "fa-dog", 414 "groups": [ 415 { 416 "type": "updated", 417 "items": [ 418 { 419 "text": "Pupocalypse was updated today. Open the game for the full notes." 420 } 421 ] 422 } 423 ] 424 } 425 ] 426 }, 427 { 428 "date": "2026-08-26", 429 "pages": [ 430 { 431 "name": "Pupocalypse", 432 "href": "pupocalypse.html", 433 "icon": "fa-dog", 434 "groups": [ 435 { 436 "type": "updated", 437 "items": [ 438 { 439 "text": "Pupocalypse was updated today. Open the game for the full notes." 440 } 441 ] 442 } 443 ] 444 } 445 ] 446 }, 447 { 448 "date": "2026-08-25", 449 "pages": [ 450 { 451 "name": "Pupocalypse Wiki", 452 "href": "pupocalypsewiki.html", 453 "icon": "fa-book-open", 454 "groups": [ 455 { 456 "type": "polished", 457 "items": [ 458 { 459 "text": "Basics controls now use card rows with keyboard and gamepad glyph chips instead of a squished table." 460 }, 461 { 462 "text": "Switch Xbox, PlayStation, or Switch gamepad labels in the controls section." 463 }, 464 { 465 "text": "Menu bindings and inline key glyphs in the Basics overview were added." 466 }, 467 { 468 "text": "Catalog cards with art now show a hero preview and a small palette badge. Spoiler entries use silhouettes." 469 } 470 ] 471 } 472 ] 473 }, 474 { 475 "name": "Pupocalypse", 476 "href": "pupocalypse.html", 477 "icon": "fa-dog", 478 "groups": [ 479 { 480 "type": "updated", 481 "items": [ 482 { 483 "text": "Pupocalypse was updated today. Open the game for the full notes." 484 } 485 ] 486 } 487 ] 488 } 489 ] 490 }, 491 { 492 "date": "2026-08-23", 493 "pages": [ 494 { 495 "name": "Inspo Board", 496 "href": "inspo.html", 497 "icon": "fa-wand-magic-sparkles", 498 "groups": [ 499 { 500 "type": "new", 501 "items": [ 502 { 503 "text": "Hold the scroll wheel to pan the board, even over photos, in edit and view-only." 504 }, 505 { 506 "text": "Tools panel on PC: collapsible Add, Board, and Photo sections with opacity, rotation, lock, and look sliders." 507 } 508 ] 509 }, 510 { 511 "type": "updated", 512 "items": [ 513 { 514 "text": "Inspo board editor now opens as a fullscreen workspace with more canvas room, like PuppyPaint." 515 } 516 ] 517 }, 518 { 519 "type": "fixed", 520 "items": [ 521 { 522 "text": "Stretchy paw cursor keeps following the mouse while you drag p
522hotos on a board." 523 }, 524 { 525 "text": "Ctrl+scroll and pinch zoom now stay anchored under your cursor instead of drifting to the corner." 526 } 527 ] 528 } 529 ] 530 } 531 ] 532 }, 533 { 534 "date": "2026-08-22", 535 "pages": [ 536 { 537 "name": "Settings", 538 "href": "index.html", 539 "icon": "fa-sliders", 540 "groups": [ 541 { 542 "type": "new", 543 "items": [ 544 { 545 "text": "New Stretchy paw custom cursor: a cat or dog paw on a stretchy arm from the edge of the screen, with paw-print stamps on click." 546 }, 547 { 548 "text": "Stretchy paw options panel: tweak anchor position, arm thickness, colors, motion, prints, and more." 549 } 550 ] 551 } 552 ] 553 }, 554 { 555 "name": "Pupocalypse", 556 "href": "pupocalypse.html", 557 "icon": "fa-dog", 558 "groups": [ 559 { 560 "type": "updated", 561 "items": [ 562 { 563 "text": "Pupocalypse was updated today. Open the game for the full notes." 564 } 565 ] 566 } 567 ] 568 } 569 ] 570 }, 571 { 572 "date": "2026-08-21", 573 "pages": [ 574 { 575 "name": "Pupocalypse", 576 "href": "pupocalypse.html", 577 "icon": "fa-dog", 578 "groups": [ 579 { 580 "type": "updated", 581 "items": [ 582 { 583 "text": "Pupocalypse was updated today. Open the game for the full notes." 584 } 585 ] 586 } 587 ] 588 } 589 ] 590 }, 591 { 592 "date": "2026-08-20", 593 "pages": [ 594 { 595 "name": "Pupocalypse", 596 "href": "pupocalypse.html", 597 "icon": "fa-dog", 598 "groups": [ 599 { 600 "type": "updated", 601 "items": [ 602 { 603 "text": "Pupocalypse was updated today. Open the game for the full notes." 604 } 605 ] 606 } 607 ] 608 } 609 ] 610 }, 611 { 612 "date": "2026-08-19", 613 "pages": [ 614 { 615 "name": "Pupocalypse", 616 "href": "pupocalypse.html", 617 "icon": "fa-dog", 618 "groups": [ 619 { 620 "type": "updated", 621 "items": [ 622 { 623 "text": "Pupocalypse was updated today. Open the game for the full notes." 624 } 625 ] 626 } 627 ] 628 } 629 ] 630 }, 631 { 632 "date": "2026-08-18", 633 "pages": [ 634 { 635 "name": "Pupocalypse", 636 "href": "pupocalypse.html", 637 "icon": "fa-dog", 638 "groups": [ 639 { 640 "type": "updated", 641 "items": [ 642 { 643 "text": "Pupocalypse was updated today. Open the game for the full notes." 644 } 645 ] 646 } 647 ] 648 } 649 ] 650 }, 651 { 652 "date": "2026-08-17", 653 "pages": [ 654 { 655 "name": "Pupocalypse", 656 "href": "pupocalypse.html", 657 "icon": "fa-dog", 658 "groups": [ 659 { 660 "type": "updated", 661 "items": [ 662 { 663 "text": "Pupocalypse was updated today. Open the game for the full notes." 664 } 665 ] 666 } 667 ] 668 } 669 ] 670 }, 671 { 672 "date": "2026-08-16", 673 "pages": [ 674 { 675 "name": "Pupocalypse", 676 "href": "pupocalypse.html", 677 "icon": "fa-dog", 678 "groups": [ 679 { 680 "type": "updated", 681 "items": [ 682 { 683 "text": "Pupocalypse was updated today. Open the game for the full notes." 684 } 685 ] 686 } 687 ] 688 } 689 ] 690 }, 691 { 692 "date": "2026-08-15", 693 "pages": [ 694 { 695 "name": "Pupocalypse", 696 "href": "pupocalypse.html", 697 "icon": "fa-dog", 698 "groups": [ 699 { 700 "type": "updated", 701 "items": [ 702 { 703 "text": "Pupocalypse was updated today. Open the game for the full notes." 704 } 705 ] 706 } 707 ] 708 } 709 ] 710 }, 711 { 712 "date": "2026-08-14", 713 "pages": [ 714 { 715 "name": "Pupocalypse Wiki", 716 "href": "pupocalypsewiki.html", 717 "icon": "fa-book-open", 718 "groups": [ 719 { 720 "type": "polished", 721 "items": [ 722 { 723 "text": "Wiki layout now matches the Pupocalypse menu: yard backdrop, green mega-panels, and sharp menu buttons." 724 } 725 ] 726 } 727 ] 728 }, 729 { 730 "name": "Pupocalypse", 731 "href": "pupocalypse.html", 732 "icon": "fa-dog", 733 "groups": [ 734 { 735 "type": "updated", 736 "items": [ 737 { 738 "text": "Pupocalypse was updated today. Open the game for the full notes." 739 } 740 ] 741 } 742 ] 743 } 744 ] 745 }, 746 { 747 "date": "2026-08-13", 748 "pages": [ 749 { 750 "name": "Pupocalypse", 751 "href": "pupocalypse.html", 752 "icon": "fa-dog", 753 "groups": [ 754 { 755 "type": "updated", 756 "items": [ 757 { 758 "text": "Pupocalypse was updated today. Open the game for the full notes." 759 } 760 ] 761 } 762 ] 763 } 764 ] 765 }, 766 { 767 "date": "2026-08-12", 768 "pages": [ 769 { 770 "name": "Pupocalypse", 771 "href": "pupocalypse.html", 772 "icon": "fa-dog", 773 "groups": [ 774 { 775 "type": "updated", 776 "items": [ 777 { 778 "text": "Pupocalypse was updated today. Open the game for the full notes." 779 } 780 ] 781 } 782 ] 783 } 784 ] 785 }, 786 { 787 "date": "2026-08-11", 788 "pages": [ 789 { 790 "name": "Pupocalypse", 791 "href": "pupocalypse.html", 792 "icon": "fa-dog", 793 "groups": [ 794 { 795 "type": "updated", 796 "items": [ 797 { 798 "text": "Pupocalypse was updated today. Open the game for the full notes." 799 } 800 ] 801 } 802 ] 803 } 804 ] 805 }, 806 { 807 "date": "2026-08-10", 808 "pages": [ 809 { 810 "name": "Pupocalypse", 811 "href": "pupocalypse.html", 812 "icon": "fa-dog", 813 "groups": [ 814 { 815 "type": "updated", 816 "items": [ 817 { 818 "text": "Pupocalypse was updated today. Open the game for the full notes." 819 } 820 ] 821 } 822 ] 823 } 824 ] 825 }, 826 { 827 "date": "2026-08-09", 828 "pages": [ 829 { 830 "name": "Pupocalypse", 831 "href": "pupocalypse.html", 832 "icon": "fa-dog", 833 "groups": [ 834 { 835 "type": "updated", 836 "items": [ 837 { 838 "text": "Pupocalypse was updated today. Open the game for the full notes." 839 } 840 ] 841 } 842 ] 843 } 844 ] 845 }, 846 { 847 "date": "2026-08-08", 848 "pages": [ 849 { 850 "name": "Pupocalypse", 851 "href": "pupocalypse.html", 852 "icon": "fa-dog", 853 "groups": [ 854 { 855 "type": "updated", 856 "items": [ 857 { 858 "text": "Pupocalypse was updated today. Open the game for the full notes." 859 } 860 ] 861 } 862 ] 863 } 864 ] 865 }, 866 { 867 "date": "2026-08-07", 868 "pages": [ 869 { 870 "name": "Pupocalypse", 871 "href": "pupocalypse.html", 872 "icon": "fa-dog", 873 "groups": [ 874 { 875 "type": "updated", 876 "items": [ 877 { 878 "text": "Pupocalypse was updated today. Open the game for the full notes." 879 } 880 ] 881 } 882 ] 883 } 884 ] 885 }, 886 { 887 "date": "2026-08-06", 888 "pages": [ 889 { 890 "name": "Pupocalypse", 891 "href": "pupocalypse.html", 892 "icon": "fa-dog", 893 "groups": [ 894 { 895 "type": "updated", 896 "items": [ 897 { 898 "text": "Pupocalypse was updated today. Open the game for the full notes." 899 } 900 ] 901 } 902 ] 903 } 904 ] 905 }, 906 { 907 "date": "2026-08-05", 908 "pages": [ 909 { 910 "name": "Pupocalypse", 911 "href": "pupocalypse.html", 912 "icon": "fa-dog", 913 "groups": [ 914 { 915 "type": "updated", 916 "items": [ 917 { 918 "text": "Pupocalypse was updated today. Open the game for the full notes." 919 } 920 ] 921 } 922 ] 923 } 924 ] 925 }, 926 { 927 "date": "2026-08-04", 928 "pages": [ 929 { 930 "name": "Pupocalypse", 931 "href": "pupocalypse.html", 932 "icon": "fa-dog", 933 "groups": [ 934 { 935 "type": "updated", 936 "items": [ 937 { 938 "text": "Pupocalypse was updated today. Open the game for the full notes." 939 } 940 ] 941 } 942 ] 943 } 944 ] 945 }, 946 { 947 "date": "2026-08-03", 948 "pages": [ 949 { 950 "name": "Pupocalypse", 951 "href": "pupocalypse.html", 952 "icon": "fa-dog", 953 "groups": [ 954 { 955 "type": "updated", 956 "items": [ 957 { 958 "text": "Pupocalypse was updated today. Open the game for the full notes." 959 } 960 ] 961 } 962 ] 963 } 964 ] 965 }, 966 { 967 "date": "2026-08-02", 968 "pages": [ 969 { 970 "name": "Pupocalypse", 971 "href": "pupocalypse.html", 972 "icon": "fa-dog", 973 "groups": [ 974 { 975 "type": "updated", 976 "items": [ 977 { 978 "text": "Pupocalypse was updated today. Open the game for the full notes." 979 } 980 ] 981 } 982 ] 983 } 984 ] 985 }, 986 { 987 "date": "2026-08-01", 988 "pages": [ 989 { 990 "name": "Pupocalypse", 991 "href": "pupocalypse.html", 992 "icon": "fa-dog", 993 "groups": [ 994 { 995 "type": "updated", 996 "items": [ 997 { 998 "text": "Pupocalypse was updated today. Open the game for the full notes." 999 } 1000 ] 1001 } 1002 ] 1003 } 1004 ] 1005 }, 1006 { 1007 "date": "2026-07-31", 1008 "pages": [ 1009 { 1010 "name": "Pupocalypse", 1011 "href": "pupocalypse.html", 1012 "icon": "fa-dog", 1013 "groups": [ 1014 { 1015 "type": "updated", 1016 "items": [ 1017 { 1018 "text": "Pupocalypse was updated today. Open the game for the full notes." 1019 } 1020 ] 1021 } 1022 ] 1023 } 1024 ] 1025 }, 1026 { 1027 "date": "2026-07-30", 1028 "pages": [ 1029 { 1030 "name": "To-Do", 1031 "href": "todo.html", 1032 "icon": "fa-list-check", 1033 "groups": [ 1034 { 1035 "type": "updated", 1036 "items": [ 1037 { 1038 "text": "Each column header now shows priority counts in one compact color-coded bubble." 1039 } 1040 ] 1041 } 1042 ] 1043 }, 1044 { 1045 "name": "Pupocalypse", 1046 "href": "pupocalypse.html", 1047 "icon": "fa-dog", 1048 "groups": [ 1049 { 1050 "type": "updated", 1051 "items": [ 1052 { 1053 "text": "Pupocalypse was updated today. Open the game for the full notes." 1054 } 1055 ] 1056 } 1057 ] 1058 } 1059 ] 1060 }, 1061 { 1062 "date": "2026-07-22", 1063 "pages": [ 1064 { 1065 "name": "Casino", 1066 "href": "casino.html", 1067 "icon": "fa-dice", 1068 "groups": [ 1069 { 1070 "type": "new", 1071 "items": [ 1072 { 1073 "text": "Rock Paper Scissors: best-of-one matches vs a random bot or a friend in a room, with Free or coin bets." 1074 }, 1075 {
1076 "text": "Multiplayer rooms support invites, hidden picks until both lock in, and rematch requests the other player can accept or decline." 1077 } 1078 ] 1079 }, 1080 { 1081 "type": "fixed", 1082 "items": [ 1083 { 1084 "text": "Rock Paper Scissors rematch Accept and Decline only show for the player who received the request, and only after someone asks for a rematch." 1085 }, 1086 { 1087 "text": "Rematch buttons no longer show after a bot match (casino button styles were overriding the hidden state)." 1088 }, 1089 { 1090 "text": "Accepting a Rock Paper Scissors or War invite now joins the room instead of only opening the setup screen." 1091 } 1092 ] 1093 }, 1094 { 1095 "type": "polished", 1096 "items": [ 1097 { 1098 "text": "Work jobs (dishes, trash, sweep) now have scene stages, progress bars, floating +1 feedback, particle bursts, and a little celebrate beat when you finish." 1099 } 1100 ] 1101 } 1102 ] 1103 } 1104 ] 1105 }, 1106 { 1107 "date": "2026-07-21", 1108 "pages": [ 1109 { 1110 "name": "Currency Exchange", 1111 "href": "currencies.html", 1112 "icon": "fa-coins", 1113 "groups": [ 1114 { 1115 "type": "polished", 1116 "items": [ 1117 { 1118 "text": "Fresh converter layout with a clearer base amount panel, currency symbol badges, and Font Awesome controls." 1119 }, 1120 { 1121 "text": "Favorites and popular currencies stay up top; the full catalog is available through search instead of one long list." 1122 } 1123 ] 1124 } 1125 ] 1126 }, 1127 { 1128 "name": "Workout", 1129 "href": "workout.html", 1130 "icon": "fa-heart-pulse", 1131 "groups": [ 1132 { 1133 "type": "new", 1134 "items": [ 1135 { 1136 "text": "Bodyweight exercise browser with a clickable front and back body map." 1137 }, 1138 { 1139 "text": "My Plan lets you save sets or timed holds locally and check them off as you go." 1140 }, 1141 { 1142 "text": "Favorites, Surprise Me circuits, and demo GIFs that load from GitHub only when you open a move." 1143 } 1144 ] 1145 }, 1146 { 1147 "type": "polished", 1148 "items": [ 1149 { 1150 "text": "The body map now uses a feminine front and back model in a full-screen layout, with stronger light and dark mode contrast." 1151 }, 1152 { 1153 "text": "Choosing a body part now opens its exercises in a roomy slide-out panel." 1154 }, 1155 { 1156 "text": "Redrew the clickable muscle regions so they line up with the body, and the body map now shifts beside the panel instead of getting squished." 1157 }, 1158 { 1159 "text": "Moves with an animated demo are marked and listed first. Text-only moves now have fuller setup, form, and safety instructions without an empty media box." 1160 }, 1161 { 1162 "text": "The front body map now uses the detailed feminine MuscleWiki illustration." 1163 }, 1164 { 1165 "text": "The back body map now uses the matching detailed feminine MuscleWiki illustration." 1166 } 1167 ] 1168 } 1169 ] 1170 }, 1171 { 1172 "name": "To-Do", 1173 "href": "todo.html", 1174 "icon": "fa-list-check", 1175 "groups": [ 1176 { 1177 "type": "updated", 1178 "items": [ 1179 { 1180 "text": "Tasks are now grouped automatically by the category at the start of their names, with the most urgent categories and tasks shown first." 1181 }, 1182 { 1183 "text": "Category sections can be folded up, and the board remembers those choices in this browser." 1184 }, 1185 { 1186 "text": "Each board column now has a pill for expanding or collapsing all of its categories at once." 1187 }, 1188 { 1189 "text": "Board owners can now manage editors from a compact button beside search and a focused pop-up panel." 1190 }, 1191 { 1192 "text": "Moving a task now opens its destination category automatically so it stays in view." 1193 } 1194 ] 1195 } 1196 ] 1197 }, 1198 { 1199 "name": "Settings", 1200 "href": "", 1201 "icon": "fa-gear", 1202 "groups": [ 1203 { 1204 "type": "new", 1205 "items": [ 1206 { 1207 "text": "Recursive custom cursor: a matching arrow leads a short delayed chain of shrinking copies that settle into a diagonal cascade." 1208 }, 1209 { 1210 "text": "The recursive cursor now switches to an I-beam over text fields and a hand over links and buttons, and the whole chain matches." 1211 } 1212 ] 1213 }, 1214 { 1215 "type": "fixed", 1216 "items": [ 1217 {
1218 "text": "Custom cursors no longer show the normal pointer on top after moving to another page." 1219 }, 1220 { 1221 "text": "The recursive cursor now points exactly at the spot you click instead of sitting slightly off." 1222 } 1223 ] 1224 } 1225 ] 1226 }, 1227 { 1228 "name": "Pupocalypse Wiki", 1229 "href": "pupocalypsewiki.html", 1230 "icon": "fa-book-open", 1231 "groups": [ 1232 { 1233 "type": "new", 1234 "items": [ 1235 { 1236 "text": "Pups section with starter weapons and level-scaling passives." 1237 }, 1238 { 1239 "text": "Bonk Shop guide for permanent upgrades and how coins are earned." 1240 }, 1241 { 1242 "text": "Unlocks browser with category filters and discovery requirements." 1243 }, 1244 { 1245 "text": "World coverage for weather, field treats, XP gems, hazards, shrines, and props." 1246 }, 1247 { 1248 "text": "Owner boss pattern guide under Enemies." 1249 } 1250 ] 1251 }, 1252 { 1253 "type": "updated", 1254 "items": [ 1255 { 1256 "text": "Basics now includes default controls and a clearer run overview." 1257 }, 1258 { 1259 "text": "Weapon, ability, and charm modals list level-up tracks. Slot Crank symbols open detail popups with notes." 1260 }, 1261 { 1262 "text": "Tips and Glossary cover more run terms and strategies." 1263 }, 1264 { 1265 "text": "Multiplayer leads with a WIP warning: co-op is very buggy and solo is the supported way to play." 1266 } 1267 ] 1268 } 1269 ] 1270 }, 1271 { 1272 "name": "Pupocalypse", 1273 "href": "pupocalypse.html", 1274 "icon": "fa-dog", 1275 "groups": [ 1276 { 1277 "type": "updated", 1278 "items": [ 1279 { 1280 "text": "Pupocalypse was updated today. Open the game for the full notes." 1281 } 1282 ] 1283 } 1284 ] 1285 } 1286 ] 1287 }, 1288 { 1289 "date": "2026-07-20", 1290 "pages": [ 1291 { 1292 "name": "Comparing", 1293 "href": "comparing.html", 1294 "icon": "fa-scale-balanced", 1295 "groups": [ 1296 { 1297 "type": "new", 1298 "items": [ 1299 { 1300 "text": "Area and Power dimensions with Wikipedia units like barns, brunos, donkey power, and pirate-ninjas." 1301 }, 1302 { 1303 "text": "A searchable Unit definitions modal with categories, Wikipedia links, and Use as From/To shortcuts." 1304 } 1305 ] 1306 }, 1307 { 1308 "type": "updated", 1309 "items": [ 1310 { 1311 "text": "Length, mass, time, and volume now include Wikipedia and FFF units alongside pupwife reference units." 1312 }, 1313 { 1314 "text": "From and To use searchable custom dropdowns grouped by Standard, FFF, Wikipedia, and pupwife." 1315 } 1316 ] 1317 } 1318 ] 1319 }, 1320 { 1321 "name": "Fuck Off", 1322 "href": "fuckoff.html", 1323 "icon": "fa-hand", 1324 "groups": [ 1325 { 1326 "type": "new", 1327 "items": [ 1328 { 1329 "text": "A blunt deny page for peeks that aren't yours, with randomized snark and a home button." 1330 } 1331 ] 1332 }, 1333 { 1334 "type": "polished", 1335 "items": [ 1336 { 1337 "text": "The bozo meter is now a shared global count that updates live for everyone." 1338 }, 1339 { 1340 "text": "The home button keeps dodging every time you hover it." 1341 } 1342 ] 1343 } 1344 ] 1345 }, 1346 { 1347 "name": "Jeemie Control", 1348 "href": "", 1349 "icon": "fa-sliders", 1350 "groups": [ 1351 { 1352 "type": "new", 1353 "items": [ 1354 { 1355 "text": "Scene presets let friends save, load, overwrite, and delete full overlay layouts." 1356 }, 1357 { 1358 "text": "Counters can be nudged up or down on stream, with optional prefix and suffix text." 1359 }, 1360 { 1361 "text": "Panic parks everything on the live frame off-stream, with Restore to bring it back." 1362 }, 1363 { 1364 "text": "Bit macros can show scene items, optionally play a sound, then hide them after a set time." 1365 }, 1366 { 1367 "text": "Text can use a Star Wars style perspective crawl with start, pause, and reset controls." 1368 } 1369 ] 1370 }, 1371 { 1372 "type": "updated", 1373 "items": [ 1374 { 1375 "text": "The off-stream workbench now wraps all four sides of the live frame, so you can stage sources above, below, and beside the stream." 1376 }, 1377 { 1378 "text": "Hold Ctrl and scroll in the preview to zoom and pan around the full canvas." 1379 }, 1380 { 1381 "text": "The preview fills the workspace, and any empty space around the canvas uses the same off-stream workbench look." 1382 }, 1383 { 1384 "text": "Add source and Properties are floating panels you can drag, resize, and place over the scene. Your layout is remembered on this device." 1385 }, 1386 { 1387 "text": "Sources can be dragged far off-stream into the full staging area. Scroll pans vertically, Shift+scroll pans horizontally, middle-drag also pans, and Ctrl+scroll zooms." 1388 }, 1389 { 1390 "text": "Both floating panels can be resized from any edge or corner." 1391 }, 1392 { 1393 "text": "The workbench now has its own grid and a visible border marking the staging edge." 1394 }, 1395 { 1396 "text": "Panel titles stay pinned at the top while you scroll, so you can always drag them." 1397 }, 1398 { 1399 "text": "Light and dark mode now retheme the whole editor chrome and workbench. The live stream frame stays dark either way." 1400 }, 1401 { 1402 "text": "Unauthorized visits now land on Fuck Off instead of a silent bounce home." 1403 }, 1404 { 1405 "text": "Countdowns can hide, park, play a sound, or show another item when they hit zero." 1406 }, 1407 { 1408 "text": "Sources can fade, slide, or pop in when they become visible." 1409 } 1410 ] 1411 }, 1412 { 1413 "type": "fixed", 1414 "items": [ 1415 { 1416 "text": "Sources in the workbench no longer render underneath the off-stream overlay." 1417 }, 1418 { 1419 "text": "Properties fields no longer overlap or spill past the right edge of the panel." 1420 }, 1421 { 1422 "text": "Removed the empty margin border around the editor so the workbench fills the screen." 1423 }, 1424 { 1425 "text": "Star Wars crawl text now scrolls smoothly every frame instead of stepping." 1426 }, 1427 { 1428 "text": "Crawl text now keeps the color you set in Properties instead of forcing a fixed yellow." 1429 }, 1430 { 1431 "text": "Crawl perspective is milder, text stays closer to its normal size, and Start shows text right away at the bottom of the box." 1432 }, 1433 { 1434 "text": "Crawl now starts just under the text box, and OBS uses smoothed transform motion so it stays as smooth as the control page." 1435 }, 1436 { 1437 "text": "Crawl speed is a slider in Properties, from slow to fast, and changing it mid-crawl keeps your place." 1438 }, 1439 { 1440 "text": "When a crawl finishes off the top of the box, it resets on its own so you can start it again." 1441 }, 1442 { 1443 "text": "Finished crawls no longer flash the full text on screen when they reset." 1444 }, 1445 { 1446 "text": "Crawls no longer auto-reset early before the text has fully left the box." 1447 } 1448 ] 1449 } 1450 ] 1451 }, 1452 { 1453 "name": "Pupocalypse", 1454 "href": "pupocalypse.html", 1455 "icon": "fa-dog", 1456 "groups": [ 1457 { 1458 "type": "updated", 1459 "items": [ 1460 { 1461 "text": "Pupocalypse was updated today. Open the game for the full notes." 1462 } 1463 ] 1464 } 1465 ] 1466 } 1467 ] 1468 }, 1469 { 1470 "date": "2026-07-19", 1471 "pages": [ 1472 { 1473 "name": "Homepage", 1474 "href": "index.html", 1475 "icon": "fa-house", 1476 "groups": [ 1477 { 1478 "type": "updated", 1479 "items": [ 1480 { 1481 "text": "Changelog days can be collapsed, and your choices are remembered between visits." 1482 }, 1483 { 1484 "text": "The newest day opens automatically when there is an unread update." 1485 }, 1486 { 1487 "text": "Individual page sections in the Changelog can also be c
1487ollapsed." 1488 } 1489 ] 1490 }, 1491 { 1492 "type": "fixed", 1493 "items": [ 1494 { 1495 "text": "Refreshing the homepage no longer randomly leaves only the water background with the dashboard stuck invisible." 1496 }, 1497 { 1498 "text": "Homepage widgets wait briefly for the water background again, without getting stuck if WebGL is slow." 1499 } 1500 ] 1501 }, 1502 { 1503 "type": "polished", 1504 "items": [ 1505 { 1506 "text": "The Changelog now matches Pupocalypse's compact purple update viewer." 1507 } 1508 ] 1509 }, 1510 { 1511 "type": "removed", 1512 "items": [ 1513 { 1514 "text": "Unused Shery.js and ControlKit scripts (magnetic buttons use the site's own pull effect)." 1515 } 1516 ] 1517 } 1518 ] 1519 }, 1520 { 1521 "name": "Attributions", 1522 "href": "attributions.html", 1523 "icon": "fa-heart", 1524 "groups": [ 1525 { 1526 "type": "updated", 1527 "items": [ 1528 { 1529 "text": "Library credits no longer list unused Shery.js or ScrollTrigger." 1530 } 1531 ] 1532 } 1533 ] 1534 }, 1535 { 1536 "name": "Jeemie Control", 1537 "href": "", 1538 "icon": "fa-sliders", 1539 "groups": [ 1540 { 1541 "type": "fixed", 1542 "items": [ 1543 { 1544 "text": "Linked images and GIFs now get transform controls that match their real proportions." 1545 } 1546 ] 1547 }, 1548 { 1549 "type": "polished", 1550 "items": [ 1551 { 1552 "text": "Jeemie Control now has its own favicon." 1553 } 1554 ] 1555 } 1556 ] 1557 }, 1558 { 1559 "name": "Pupocalypse", 1560 "href": "pupocalypse.html", 1561 "icon": "fa-dog", 1562 "groups": [ 1563 { 1564 "type": "updated", 1565 "items": [ 1566 { 1567 "text": "Pupocalypse was updated today. Open the game for the full notes." 1568 } 1569 ] 1570 } 1571 ] 1572 } 1573 ] 1574 }, 1575 { 1576 "date": "2026-07-18", 1577 "pages": [ 1578 { 1579 "name": "Homepage", 1580 "href": "index.html", 1581 "icon": "fa-house", 1582 "groups": [ 1583 { 1584 "type": "new", 1585 "items": [ 1586 { 1587 "text": "Added a Changelog so you can see what I've been working on around the site." 1588 } 1589 ] 1590 }, 1591 { 1592 "type": "polished", 1593 "items": [ 1594 { 1595 "text": "Matched the Changelog preview to the rest of the dashboard widgets." 1596 }, 1597 { 1598 "text": "Kept the TO-DO shortcut on one line." 1599 } 1600 ] 1601 } 1602 ] 1603 }, 1604 { 1605 "name": "TO-DO", 1606 "href": "todo.html", 1607 "icon": "fa-list-check", 1608 "groups": [ 1609 { 1610 "type": "new", 1611 "items": [ 1612 { 1613 "text": "Added a public task board with live To do, Doing, and Completed sections." 1614 }, 1615 { 1616 "text": "Approved site usernames can add, update, complete, and restore tasks." 1617 }, 1618 { 1619 "text": "Completed tasks also appear in the homepage Changelog." 1620 }, 1621 { 1622 "text": "Completed tasks can be restored to either To do or Doing." 1623 }, 1624 { 1625 "text": "Added fuzzy search across task titles, notes, priorities, statuses, and contributor names." 1626 }, 1627 { 1628 "text": "Tasks can be opened in a larger details view for easier reading." 1629 }, 1630 { 1631 "text": "The owner can mark Doing tasks as Testing, which pins them to the top with a live testing badge." 1632 } 1633 ] 1634 }, 1635 { 1636 "type": "fixed", 1637 "items": [ 1638 { 1639 "text": "Stopped the task notes field from growing past the task editor." 1640 }, 1641 { 1642 "text": "Kept every board heading pinned to the top when its section has only a few tasks." 1643 }, 1644 { 1645 "text": "Urgent tasks now sort above High, Normal, and Low tasks after every board update." 1646 } 1647 ] 1648 }, 1649 { 1650 "type": "polished", 1651 "items": [ 1652 { 1653 "text": "Task details now open from a small plus button instead of taking up space above the board." 1654 }, 1655 { 1656 "text": "Centered the task board and removed the empty page scrollbar." 1657 }, 1658 { 1659 "text": "Each board section now scrolls through its own tasks while the page stays compact." 1660 }, 1661 { 1662 "text": "Unfinished new-task details are remembered when the task editor closes." 1663 }, 1664 { 1665 "text": "Cards now show who added each task without an extra assignee label." 1666 } 1667 ] 1668 } 1669 ] 1670 }, 1671 { 1672 "name": "Pupocalypse", 1673 "href": "pupocalypse.html", 1674 "icon": "fa-dog", 1675 "groups": [ 1676 { 1677 "type": "updated", 1678 "items": [ 1679 { 1680 "text": "Pupocalypse was updated today. Open the game for the full notes." 1681 } 1682 ] 1683 } 1684 ] 1685 } 1686 ] 1687 } 1688 ] 1689}; 1690})(typeof window !== 'undefined' ? window : this);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.