2026-01-18 - 2026-04-18

Overview

0 active pull requests
109 active issues
Excluding merges, 1 author has pushed 178 commits to master and 184 commits to all branches. On master, 862 files have changed and there have been 240408 additions and 20776 deletions.

1 release published by 1 user

Tag 0.2.3-prerelease-7drl2026-emscripten 2026-01-31 21:45:10 +00:00

100 issues closed from 1 user

Closed #294 Entity.gridstate as DiscreteMap reference 2026-04-18 09:44:14 +00:00

Closed #311 DijkstraMap pathfinding accepts out-of-bounds coords and aborts via TCOD assertion 2026-04-18 00:05:58 +00:00

Closed #310 compute_fov loads out-of-range int into TCOD_fov_algorithm_t enum (UBSan) 2026-04-18 00:05:58 +00:00

Closed #309 Caption numeric setters cast negative floats to unsigned int (UBSan) 2026-04-18 00:05:58 +00:00

Closed #283 [Major Feature] Coverage-guided fuzz harness for Python API (libFuzzer + ASan) 2026-04-17 03:15:00 +00:00

Closed #237 Multi-tile entities using composite sprites 2026-04-10 08:15:37 +00:00

Closed #149 Reduce the size of UIGrid.cpp 2026-04-10 08:08:46 +00:00

Closed #281 [Minor Feature] Free-threaded CPython + TSan Makefile targets 2026-04-10 08:08:46 +00:00

Closed #280 [Minor Feature] Instrumented libtcod debug build for sanitizer coverage 2026-04-10 08:08:46 +00:00

Closed #285 [Minor Feature] CI pipeline for debug-test and asan-test 2026-04-10 07:31:50 +00:00

Closed #240 Playground: Developer troubleshooting documentation for WASM deployments 2026-04-10 07:31:50 +00:00

Closed #238 Playground: Emscripten debugging infrastructure (DWARF, source maps, debug dumps) 2026-04-10 07:31:50 +00:00

Closed #233 Enhance Entity rendering and positioning capabilities 2026-04-10 07:29:39 +00:00

Closed #235 Texture display bounds for non-uniform sprite content 2026-04-10 06:58:06 +00:00

Closed #236 Multi-tile entities using oversized sprites 2026-04-10 06:58:06 +00:00

Closed #287 [Minor Feature] Regression tests that trigger each bug from #258–#278 2026-04-10 06:58:06 +00:00

Closed #293 DiscreteMap serialization via bytes 2026-04-10 06:06:17 +00:00

Closed #218 mcrfpy.Color and mcrfpy.Vector animation targets 2026-04-10 06:06:17 +00:00

Closed #271 [Bugfix] UIGridPoint::parent_grid is a dangling raw pointer 2026-04-10 05:46:54 +00:00

Closed #256 [Bugfix] Animation system bypasses spatial hash updates for entity position 2026-04-10 05:46:54 +00:00

Closed #270 [Bugfix] GridLayer::parent_grid is a dangling raw pointer when grid is destroyed 2026-04-10 05:46:54 +00:00

Closed #277 [Bugfix] GridChunk::parent_grid raw pointer can dangle 2026-04-10 05:46:54 +00:00

Closed #234 Entity origin offset for oversized sprites 2026-04-10 05:41:20 +00:00

Closed #279 [Meta] Engine memory safety audit — 7DRL 2026 post-mortem 2026-04-10 05:35:20 +00:00

Closed #284 [Tiny Feature] Valgrind Massif heap profiling target 2026-04-10 05:09:19 +00:00

Closed #304 [API Freeze] Remove camelCase module functions before 1.0 2026-04-10 05:09:19 +00:00

Closed #286 [Tiny Feature] Re-enable ASan leak detection after fixing #266/#275 2026-04-10 05:09:19 +00:00

Closed #291 [Refactoring] Audit all Python property setters for missing markDirty() calls 2026-04-10 05:09:18 +00:00

Closed #290 [Bugfix] UIDrawable base x/y/pos/grid_pos setters don't propagate dirty flags to parent 2026-04-10 05:09:18 +00:00

Closed #288 [Bugfix] UICollection mutations don't invalidate parent Frame's render cache 2026-04-10 05:09:18 +00:00

Closed #257 grid layers with z_index of zero are on top of entities 2026-04-10 05:09:18 +00:00

Closed #289 [Bugfix] Caption Python property setters don't call markDirty() 2026-04-10 05:09:18 +00:00

Closed #308 [API Freeze] Remove redundant Grid.position alias 2026-04-10 02:19:13 +00:00

Closed #306 [API Freeze] Remove legacy string enum comparisons 2026-04-10 02:19:13 +00:00

Closed #305 [API Freeze] Remove deprecated sprite_number property 2026-04-10 02:19:13 +00:00

Closed #307 [Bugfix] Color type missing __eq__/__ne__ despite having __hash__ 2026-04-10 01:19:07 +00:00

Closed #252 GridView and Grid, FOVLayer and PathLayer 2026-04-04 08:34:18 +00:00

Closed #303 FOV optimization for behavior TARGET triggers 2026-04-02 05:36:03 +00:00

Closed #302 Pathfinding with entity collision labels 2026-04-02 05:34:26 +00:00

Closed #301 grid.step() — turn manager for entity behaviors 2026-03-16 11:21:02 +00:00

Closed #298 mcrfpy.Trigger enum — behavior trigger type identifiers 2026-03-16 11:21:02 +00:00

Closed #297 mcrfpy.Behavior enum — behavior type identifiers 2026-03-16 11:21:02 +00:00

Closed #253 Use spatial hash by default when checking GridPoint for entities 2026-03-16 11:21:02 +00:00

Closed #266 [Bugfix] UIEntity self reference cycle causes permanent memory leak 2026-03-16 11:21:02 +00:00

Closed #299 Entity step() callback — Python-side turn handler 2026-03-16 11:21:02 +00:00

Closed #254 TileLayer doesn't get any texture when assigned manually 2026-03-16 11:21:02 +00:00

Closed #292 Deduplicate redundant FOV computation 2026-03-16 11:21:02 +00:00

Closed #296 Entity labels — multi-tag string set for collision and trigger grouping 2026-03-16 11:21:02 +00:00

Closed #295 Entity cell_pos — integer logical position decoupled from render position 2026-03-16 11:21:02 +00:00

Closed #300 Behavior data struct and primitive implementations 2026-03-16 11:21:02 +00:00

Closed #274 [Bugfix] UIEntity.set_grid() missing spatial hash cleanup on grid transfer 2026-03-14 06:25:16 +00:00

Closed #275 [Bugfix] UIEntity has no tp_dealloc — Py_INCREF(self) in init() is never balanced 2026-03-14 06:25:16 +00:00

Closed #265 [Bugfix] grid.at() returns GridPoint with dangling raw pointer into grid storage 2026-03-14 06:25:16 +00:00

Closed #278 [Bugfix] entity.at() lazy init guard also has gridstate.size()==0 bug 2026-03-14 06:25:16 +00:00

Closed #273 [Bugfix] entity.die() during iteration over grid.entities invalidates list iterator 2026-03-14 06:25:16 +00:00

Closed #268 [Bugfix] sfVector2f_to_PyObject crashes on NULL from PyObject_GetAttrString 2026-03-14 06:25:16 +00:00

Closed #276 [Bugfix] updateVisibility() gridstate.size()==0 guard doesn't validate against current grid dimensions 2026-03-14 06:25:16 +00:00

Closed #263 [Bugfix] EntityCollection extended slice assignment skips gridstate resize 2026-03-14 06:25:16 +00:00

Closed #264 [Bugfix] entity.at() returns GridPointState with dangling raw pointer into gridstate vector 2026-03-14 06:25:16 +00:00

Closed #262 [Bugfix] EntityCollection contiguous slice assignment skips gridstate resize 2026-03-14 06:25:16 +00:00

Closed #267 [Bugfix] PyObject_GetAttrString return values leaked across 60+ call sites 2026-03-14 06:25:16 +00:00

Closed #260 [Bugfix] EntityCollection.insert() skips gridstate resize when entity has existing gridstate 2026-03-14 06:25:16 +00:00

Closed #261 [Bugfix] EntityCollection.__setitem__ skips gridstate resize when replacing entity 2026-03-14 06:25:16 +00:00

Closed #272 [Bugfix] UniformCollection stores raw pointer without checking weak_ptr owner before access 2026-03-14 06:25:16 +00:00

Closed #269 [Bugfix] PythonObjectCache::lookup() reads hash map without mutex 2026-03-14 06:25:16 +00:00

Closed #258 [Bugfix] EntityCollection.append() skips gridstate resize when entity has existing gridstate 2026-03-14 06:25:15 +00:00

Closed #259 [Bugfix] EntityCollection.extend() skips gridstate resize when entity has existing gridstate 2026-03-14 06:25:15 +00:00

Closed #251 Timer fires with corrupted callback after Python object is garbage collected 2026-02-20 01:49:31 +00:00

Closed #250 [7DRL Prep] itch.io deployment pipeline 2026-02-15 00:31:08 +00:00

Closed #249 [7DRL Prep] Cookbook 4: Responsive design guide 2026-02-15 00:31:07 +00:00

Closed #246 [7DRL Prep] WASM fullscreen on mobile devices 2026-02-15 00:31:06 +00:00

Closed #247 [7DRL Prep] SDL audio working in browser (WASM) 2026-02-09 12:47:41 +00:00

Closed #244 [Bugfix] Entity3D.viewport returns None instead of parent Viewport3D 2026-02-09 12:47:41 +00:00

Closed #242 [Bugfix] Entity3D.animate() raises NotImplementedError 2026-02-09 12:47:41 +00:00

Closed #243 [Minor Feature] EntityCollection3D missing pop(), find(), extend() methods 2026-02-09 12:47:41 +00:00

Closed #227 [Bugfix] UIDrawable: Silent failure when RenderTexture creation fails 2026-02-09 12:47:41 +00:00

Closed #245 [Minor Feature] screen_to_world() only intersects Y=0 plane 2026-02-09 12:47:41 +00:00

Closed #158 [Major Feature] WebAssembly/Emscripten build target for browser deployment 2026-02-07 19:25:17 +00:00

Closed #157 [Major Feature] True headless execution without X11/GPU dependencies 2026-02-07 19:25:15 +00:00

Closed #100 Add rotation support to UIDrawable objects 2026-02-07 19:25:14 +00:00

Closed #241 [Bugfix] Fix segfault when animation callbacks start new animations 2026-02-07 19:16:20 +00:00

Closed #106 Shader support 2026-02-07 19:15:47 +00:00

Closed #232 Scrollwheel registers as MouseButton.LEFT 2026-01-29 04:22:25 +00:00

Closed #231 Middle Click produces no event 2026-01-29 04:22:25 +00:00

Closed #228 [Bugfix] UIGrid: RenderTexture hard-coded to 1080p causes issues at higher resolutions 2026-01-28 23:51:03 +00:00

Closed #230 on_enter and on_exit have unnecessary parameters 2026-01-28 23:51:03 +00:00

Closed #229 Animation callback doesn't provide data 2026-01-28 23:51:03 +00:00

Closed #225 [Bugfix] UIFrame: Child appearance changes don't invalidate parent's cached texture 2026-01-23 03:56:05 +00:00

Closed #223 [Bugfix] UIFrame: box.setPosition(0,0) corrupts position when using clip_children 2026-01-23 03:56:05 +00:00

Closed #226 [Bugfix] UIFrame: Zero-size frame with clip_children causes inconsistent state 2026-01-23 03:56:05 +00:00

Closed #224 [Bugfix] UIFrame: RenderTexture not disabled when clip_children toggled off 2026-01-23 03:56:05 +00:00

Closed #136 ImGui Object Explorer / Scene Tree View 2026-01-22 04:49:24 +00:00

Closed #161 [Documentation] Update Grid stubs to match current API 2026-01-22 02:51:32 +00:00

Closed #166 [Refactoring] Test suite cleanup and organization 2026-01-22 02:35:12 +00:00

Closed #165 [Documentation] Update mcrogueface.github.io website 2026-01-22 02:34:19 +00:00

Closed #168 [Documentation] README polish for public release 2026-01-22 02:34:17 +00:00

Closed #215 Cleanup: mcrfpy.libtcod 2026-01-20 05:10:23 +00:00

Closed #219 Primary Concurrency Model: Threading Support with mcrfpy.lock() 2026-01-20 04:38:05 +00:00

Closed #221 Grid children: support .grid_pos property 2026-01-20 03:23:59 +00:00

Closed #222 on_click receiving string args instead of enums 2026-01-20 03:03:13 +00:00

96 issues created by 1 user

Opened #221 Grid children: support .grid_pos property 2026-01-19 03:39:20 +00:00

Opened #222 on_click receiving string args instead of enums 2026-01-19 14:22:36 +00:00

Opened #223 [Bugfix] UIFrame: box.setPosition(0,0) corrupts position when using clip_children 2026-01-22 15:48:53 +00:00

Opened #224 [Bugfix] UIFrame: RenderTexture not disabled when clip_children toggled off 2026-01-22 15:48:55 +00:00

Opened #225 [Bugfix] UIFrame: Child appearance changes don't invalidate parent's cached texture 2026-01-22 15:48:56 +00:00

Opened #226 [Bugfix] UIFrame: Zero-size frame with clip_children causes inconsistent state 2026-01-22 15:48:58 +00:00

Opened #227 [Bugfix] UIDrawable: Silent failure when RenderTexture creation fails 2026-01-22 15:49:00 +00:00

Opened #228 [Bugfix] UIGrid: RenderTexture hard-coded to 1080p causes issues at higher resolutions 2026-01-22 15:49:01 +00:00

Opened #229 Animation callback doesn't provide data 2026-01-28 04:20:18 +00:00

Opened #230 on_enter and on_exit have unnecessary parameters 2026-01-28 04:21:22 +00:00

Opened #231 Middle Click produces no event 2026-01-29 02:42:33 +00:00

Opened #232 Scrollwheel registers as MouseButton.LEFT 2026-01-29 02:44:55 +00:00

Opened #233 Enhance Entity rendering and positioning capabilities 2026-02-02 16:22:03 +00:00

Opened #234 Entity origin offset for oversized sprites 2026-02-02 16:22:15 +00:00

Opened #235 Texture display bounds for non-uniform sprite content 2026-02-02 16:22:22 +00:00

Opened #236 Multi-tile entities using oversized sprites 2026-02-02 16:22:34 +00:00

Opened #237 Multi-tile entities using composite sprites 2026-02-02 16:22:48 +00:00

Opened #238 Playground: Emscripten debugging infrastructure (DWARF, source maps, debug dumps) 2026-02-02 20:51:12 +00:00

Opened #239 Playground: Automated WASM testing infrastructure with headless browser 2026-02-02 20:51:20 +00:00

Opened #240 Playground: Developer troubleshooting documentation for WASM deployments 2026-02-02 20:51:26 +00:00

Opened #241 [Bugfix] Fix segfault when animation callbacks start new animations 2026-02-04 12:53:06 +00:00

Opened #242 [Bugfix] Entity3D.animate() raises NotImplementedError 2026-02-06 02:55:50 +00:00

Opened #243 [Minor Feature] EntityCollection3D missing pop(), find(), extend() methods 2026-02-06 02:55:54 +00:00

Opened #244 [Bugfix] Entity3D.viewport returns None instead of parent Viewport3D 2026-02-06 02:55:59 +00:00

Opened #245 [Minor Feature] screen_to_world() only intersects Y=0 plane 2026-02-06 02:56:07 +00:00

Opened #246 [7DRL Prep] WASM fullscreen on mobile devices 2026-02-09 02:44:02 +00:00

Opened #247 [7DRL Prep] SDL audio working in browser (WASM) 2026-02-09 02:44:14 +00:00

Opened #248 [7DRL Prep] Crypt of Sokoban Remaster 2026-02-09 02:44:29 +00:00

Opened #249 [7DRL Prep] Cookbook 4: Responsive design guide 2026-02-09 02:44:41 +00:00

Opened #250 [7DRL Prep] itch.io deployment pipeline 2026-02-09 02:44:53 +00:00

Opened #251 Timer fires with corrupted callback after Python object is garbage collected 2026-02-19 23:38:20 +00:00

Opened #252 GridView and Grid, FOVLayer and PathLayer 2026-03-03 04:05:03 +00:00

Opened #253 Use spatial hash by default when checking GridPoint for entities 2026-03-03 20:02:33 +00:00

Opened #254 TileLayer doesn't get any texture when assigned manually 2026-03-03 22:23:51 +00:00

Opened #255 Tracking down performance improvement opportunities 2026-03-04 04:32:07 +00:00

Opened #256 [Bugfix] Animation system bypasses spatial hash updates for entity position 2026-03-05 05:27:46 +00:00

Opened #257 grid layers with z_index of zero are on top of entities 2026-03-07 03:32:41 +00:00

Opened #258 [Bugfix] EntityCollection.append() skips gridstate resize when entity has existing gridstate 2026-03-07 23:19:12 +00:00

Opened #259 [Bugfix] EntityCollection.extend() skips gridstate resize when entity has existing gridstate 2026-03-07 23:19:16 +00:00

Opened #260 [Bugfix] EntityCollection.insert() skips gridstate resize when entity has existing gridstate 2026-03-07 23:19:20 +00:00

Opened #261 [Bugfix] EntityCollection.__setitem__ skips gridstate resize when replacing entity 2026-03-07 23:19:27 +00:00

Opened #262 [Bugfix] EntityCollection contiguous slice assignment skips gridstate resize 2026-03-07 23:19:36 +00:00

Opened #263 [Bugfix] EntityCollection extended slice assignment skips gridstate resize 2026-03-07 23:19:41 +00:00

Opened #264 [Bugfix] entity.at() returns GridPointState with dangling raw pointer into gridstate vector 2026-03-07 23:19:53 +00:00

Opened #265 [Bugfix] grid.at() returns GridPoint with dangling raw pointer into grid storage 2026-03-07 23:20:04 +00:00

Opened #266 [Bugfix] UIEntity self reference cycle causes permanent memory leak 2026-03-07 23:20:21 +00:00

Opened #267 [Bugfix] PyObject_GetAttrString return values leaked across 60+ call sites 2026-03-07 23:20:39 +00:00

Opened #268 [Bugfix] sfVector2f_to_PyObject crashes on NULL from PyObject_GetAttrString 2026-03-07 23:20:49 +00:00

Opened #269 [Bugfix] PythonObjectCache::lookup() reads hash map without mutex 2026-03-07 23:21:03 +00:00

Opened #270 [Bugfix] GridLayer::parent_grid is a dangling raw pointer when grid is destroyed 2026-03-07 23:22:36 +00:00

Opened #271 [Bugfix] UIGridPoint::parent_grid is a dangling raw pointer 2026-03-07 23:22:48 +00:00

Opened #272 [Bugfix] UniformCollection stores raw pointer without checking weak_ptr owner before access 2026-03-07 23:23:00 +00:00

Opened #273 [Bugfix] entity.die() during iteration over grid.entities invalidates list iterator 2026-03-07 23:23:17 +00:00

Opened #274 [Bugfix] UIEntity.set_grid() missing spatial hash cleanup on grid transfer 2026-03-07 23:25:06 +00:00

Opened #275 [Bugfix] UIEntity has no tp_dealloc — Py_INCREF(self) in init() is never balanced 2026-03-07 23:25:22 +00:00

Opened #276 [Bugfix] updateVisibility() gridstate.size()==0 guard doesn't validate against current grid dimensions 2026-03-07 23:25:35 +00:00

Opened #277 [Bugfix] GridChunk::parent_grid raw pointer can dangle 2026-03-07 23:25:45 +00:00

Opened #278 [Bugfix] entity.at() lazy init guard also has gridstate.size()==0 bug 2026-03-07 23:26:00 +00:00

Opened #279 [Meta] Engine memory safety audit — 7DRL 2026 post-mortem 2026-03-07 23:26:21 +00:00

Opened #280 [Minor Feature] Instrumented libtcod debug build for sanitizer coverage 2026-03-08 03:19:35 +00:00

Opened #281 [Minor Feature] Free-threaded CPython + TSan Makefile targets 2026-03-08 03:19:42 +00:00

Opened #282 [Minor Feature] Install modern Clang for improved TSan and fuzzing 2026-03-08 03:19:50 +00:00

Opened #283 [Major Feature] Coverage-guided fuzz harness for Python API (libFuzzer + ASan) 2026-03-08 03:19:59 +00:00

Opened #284 [Tiny Feature] Valgrind Massif heap profiling target 2026-03-08 03:20:03 +00:00

Opened #285 [Minor Feature] CI pipeline for debug-test and asan-test 2026-03-08 03:20:09 +00:00

Opened #286 [Tiny Feature] Re-enable ASan leak detection after fixing #266/#275 2026-03-08 03:20:15 +00:00

Opened #287 [Minor Feature] Regression tests that trigger each bug from #258–#278 2026-03-08 03:20:27 +00:00

Opened #288 [Bugfix] UICollection mutations don't invalidate parent Frame's render cache 2026-03-08 16:34:50 +00:00

Opened #289 [Bugfix] Caption Python property setters don't call markDirty() 2026-03-08 16:35:11 +00:00

Opened #290 [Bugfix] UIDrawable base x/y/pos/grid_pos setters don't propagate dirty flags to parent 2026-03-08 16:35:46 +00:00

Opened #291 [Refactoring] Audit all Python property setters for missing markDirty() calls 2026-03-08 16:36:06 +00:00

Opened #292 Deduplicate redundant FOV computation 2026-03-08 20:18:41 +00:00

Opened #293 DiscreteMap serialization via bytes 2026-03-08 20:18:54 +00:00

Opened #294 Entity.gridstate as DiscreteMap reference 2026-03-08 20:19:11 +00:00

Opened #295 Entity cell_pos — integer logical position decoupled from render position 2026-03-15 00:30:04 +00:00

Opened #296 Entity labels — multi-tag string set for collision and trigger grouping 2026-03-15 00:30:13 +00:00

Opened #297 mcrfpy.Behavior enum — behavior type identifiers 2026-03-15 00:30:21 +00:00

Opened #298 mcrfpy.Trigger enum — behavior trigger type identifiers 2026-03-15 00:30:28 +00:00

Opened #299 Entity step() callback — Python-side turn handler 2026-03-15 00:30:45 +00:00

Opened #300 Behavior data struct and primitive implementations 2026-03-15 00:31:11 +00:00

Opened #301 grid.step() — turn manager for entity behaviors 2026-03-15 00:31:43 +00:00

Opened #302 Pathfinding with entity collision labels 2026-03-15 00:32:02 +00:00

Opened #303 FOV optimization for behavior TARGET triggers 2026-03-15 00:32:29 +00:00

Opened #304 [API Freeze] Remove camelCase module functions before 1.0 2026-04-10 01:14:44 +00:00

Opened #305 [API Freeze] Remove deprecated sprite_number property 2026-04-10 01:14:47 +00:00

Opened #306 [API Freeze] Remove legacy string enum comparisons 2026-04-10 01:14:53 +00:00

Opened #307 [Bugfix] Color type missing __eq__/__ne__ despite having __hash__ 2026-04-10 01:14:58 +00:00

Opened #308 [API Freeze] Remove redundant Grid.position alias 2026-04-10 01:15:00 +00:00

Opened #309 Caption numeric setters cast negative floats to unsigned int (UBSan) 2026-04-11 21:21:59 +00:00

Opened #310 compute_fov loads out-of-range int into TCOD_fov_algorithm_t enum (UBSan) 2026-04-11 21:22:07 +00:00

Opened #311 DijkstraMap pathfinding accepts out-of-bounds coords and aborts via TCOD assertion 2026-04-11 21:22:16 +00:00

Opened #312 [Minor Feature] Extend fuzz coverage to remaining public API surface 2026-04-17 03:25:19 +00:00

Opened #313 [Refactoring] Migrate UIEntity::grid from shared_ptr<UIGrid> to shared_ptr<GridData> 2026-04-17 03:25:40 +00:00

Opened #314 [Documentation] API audit follow-through: close the gaps from docs/api-audit-2026-04.md 2026-04-17 03:26:00 +00:00

Opened #315 Behavior pathfinding architecture — support A*↔Dijkstra spectrum, multi-root, and custom heuristics 2026-04-18 01:03:01 +00:00

Opened #316 Sparse perspective writeback in UIEntity::updateVisibility (Phase 5.2 finding) 2026-04-18 10:46:49 +00:00

4 unresolved conversations

Open #167 [Demo Target] r/roguelikedev Tutorial Series Demo Game 2026-04-17 03:26:00 +00:00

Open #46 subinterpreter tests 2026-02-07 19:34:06 +00:00

Open #152 Sparse Grid Layers 2026-02-07 19:33:38 +00:00

Open #220 Secondary Concurrency Model: Subinterpreter Support 2026-02-07 18:57:05 +00:00