Issue Tracker
exampleShow/hide issues by keyword
Issue!StatusCreated
Kireji ASTBto-doJun 7, 2026 Full Child Part InheritenceBdoneJun 6, 2026 Kireji Issue SearchingBdoingJun 5, 2026 Object Highlighting in OrbitalBto-doJun 3, 2026 Migrate Issue Tracker to Database FormatCto-doJun 3, 2026 Add Desktop WallpaperCto-doJun 3, 2026 Improve About ScreenBdoingJun 3, 2026 Present Methods and Getters As ComponentsBdoingJun 3, 2026 Filter Popup and Issue Modal Should be Mutually ExclusiveBdoneJun 3, 2026 Add Debug Refresh to Service Worker-rendered Error PagesBto-doJun 3, 2026 Merge Part ManifestsBto-doJun 3, 2026 Ship With the Landing HashCto-doJun 3, 2026 Add Ladders in OrbitalBdoingJun 3, 2026 Z-Axis Dynamics in OrbitalBto-doJun 3, 2026 Instancing and Shared Resource Handling in OrbitalBto-doJun 3, 2026 Sanitize HTML for EJ's NotebookCto-doJun 3, 2026 Add Loading Screen to OrbitalCto-doJun 3, 2026 Add Mobile Controls for OrbitalAto-doJun 3, 2026 Add Crouching in OrbitalBto-doJun 3, 2026 Name Minoes in MinosBto-doJun 3, 2026 Fix Issue Tracker Status Sort OrderBdoneApr 16, 2026 Add Glowstick NarrativeBto-doApr 16, 2026 Add Glowstick World EditingBto-doApr 16, 2026 Add Glowstick NPCs and Dialog OptionsBto-doApr 16, 2026 Kireji Part Editor (IDE)Bto-doApr 16, 2026 Show Part Issues in Kireji AppCto-doApr 16, 2026 Improve FPS MeterCto-doApr 16, 2026 Add Projects to Issue TrackerBto-doApr 16, 2026 Canonical Link Shortcuts on the DesktopCto-doApr 16, 2026 Improve NotebookAto-doApr 16, 2026 Inconsistent Vintage Checker BackgroundCto-doApr 16, 2026 Balance Minos TrophiesCto-doApr 16, 2026 Balance Minos ProbabilitiesCto-doApr 16, 2026 Minos FanfareCto-doApr 16, 2026 Improve Minos Trophies ModalCto-doApr 16, 2026 Improve Minos Shop ModalBto-doApr 16, 2026 Add Early ImagesAdoingApr 16, 2026 TARDIS Blocks for GlowstickBto-doApr 15, 2026 Improve Issue ModalBdoingApr 15, 2026 Issue FilteringAdoneApr 15, 2026 Improve Mobile UsabilityAdoingApr 15, 2026 Complete Operating SystemBdoingApr 15, 2026 CLI InitalizationBto-doApr 14, 2026 Context MenuCto-doApr 14, 2026 Part ExplorerBto-doApr 14, 2026 User-Managed Desktop IconsCto-doApr 14, 2026 Properties AppBdoneApr 14, 2026 Welcome AppBto-doApr 14, 2026 Full Desktop Window SupportBdoingApr 14, 2026 Feature Support FallbacksBto-doApr 14, 2026 Mobile-Friendly Task MenuAto-doApr 14, 2026 Improve AccessabilityAto-doApr 14, 2026 Search Engine OptimizationAdoingApr 14, 2026 Console SupportCto-doApr 14, 2026 Cross-Origin PWABdoingApr 14, 2026 Dynamic Task Bar Tray IconsAdoingApr 14, 2026 Secure Against Cross-Site ScriptingAdoingApr 14, 2026 Seamless Forward/Back NavigationAdoingApr 14, 2026 Post-Build ValidationBdoneApr 14, 2026 Optimize Outliner SnapshotBdoneApr 14, 2026 Validate ModelToRID InputsCto-doApr 14, 2026 Refine Walkable Ray CastingCto-doApr 14, 2026 Rework the Kireji URL FormatAto-doApr 14, 2026 Add Dynamic PartsCdoingApr 14, 2026 Split Kireji App Drag-and-Drop HandlersCto-doApr 14, 2026 Dynamic Desktop CSSCdoingApr 14, 2026 Source MappingBdoingApr 14, 2026 Tree ShakingCto-doApr 14, 2026 Dynamic Landing ModelCto-doApr 14, 2026 Implement Markdown SupportCto-doApr 14, 2026 Create Issue Tracker AppAdoneApr 14, 2026

Add Dynamic Parts

Created: 1776205152 Priority: C Status: doing Description: Implement dynamic part instancing. The final implementation should be able to act as the prototype for both a combination abstract and a permutation abstract. It should be possible to nest these abstracts. These new abstracts will then replace the kireji app tab group and the redundant functionality for the existing permutation abstract (and, by extension, windows.desktop.parts). Window stacking will then be implemented as a nested permutation inside of the outer open windows (open task list) permutation. During this process, investigate the most performant method of scanning and updating individual instances when comparing the rendered state to the newly set state. The current approach (seen in tab group and legacvy permutation parts) is a dead-simple approach and more performant approaches likely exist. Consider whether this should occur in the parent of a dynamic part during distribute view update or just view update. Suggestions and considerations: 1. Instantiate a concrete instance of an abstract part per collection item. Offload all per-item logic there. - Such a part will have optional subparts 'instance' and 'meta' - "instance" corresponds to each instance part's statically-sized data model - which also receives its specific subject assignment from the outside (not part of it's RID) - "meta" (name pending) corresponds to a non-instance-specific part whose cardinality is dependant upon the number of instances. - get its implementation details by generalizing the active and preview tab data in the tab group. - At build time, the parent permutation will need to be able to query this part to get its cardinality once for every instance up to the max count. - This part can support mixes, matches, etc. and might even be the ideal place to place a sub-permutation. 2. Convert the tab group to use this abstract type. - How do we inspect the states of existing tab instances in `kireji.app`? - Files will be easy: they are part of the abstract. - Perhaps the state space box depicts an array of instance space states instead of the single state? Perhaps that is all that is needed? - Then, how do we depict the states of subparts of the parent part? Do we simply have an array for the entire instance part's tree? - We might need "push", "pop", "insert", "splice" and/or similar array actions to make it easier to modify the instance set on the fly. - What is the arithmetic of the taskbar and the windows? + Outside of the per-window state, we have the following permutation data: 1. The data of which tasks are open, without considering order (this is a simple subset of the available public hosts). 2. The data of the order of the given subset on the task bar 3. The data of the stacking order of the given subset on the desktop - Special considerations need to be taken with regards to stacking of windows which are considered full-screened and those considered maximized. How can (and why should) full-screened parts have a window order when they always hide one another? Is it merely to keep their place when they depart from full screen? - The equation generation (mathML() action) will need to factor in all aspects when deciding how to expand to different depths. Affected Parts: tab-group.editor.kireji.app, permutation.abstract.parts Linked Issues: None