PageSourceSearch

https://pupwife.com/scripts/dependencies/changelogData.js

js pupwife.com collected 2026-09-30 15:05:12 UTC 39,385 bytes, 1,690 lines download raw bytes

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.