Standards2030

Home About Knowledge Base Syllabus Curriculum Assessment Documents
Foundations Elements History Tech Stack Contact
Bug/Feature Reporter View Issues

Bug Reports & Feature Requests

Total Issues Submitted: 56

Issues Log

Bug Reports & Feature Requests

This file contains all bug reports and feature requests submitted through the application.


[2025-12-12 10:30:00] Feature - Hide Unused Taxonomy Terms✅

Type: Feature Priority: Medium Status: Resolved Submitted: 2025-12-12

Description

Add a toggle to the Taxonomy Terms page that hides terms not used in the current knowledge base. This addresses taxonomy clutter when working across multiple KBs with different domains.

Design Questions

1. What does "unused" mean?

- Option A: Terms not used as a "name" in any pair assigned to entities in current KB - Option B: Terms not used as either "name" or "value" in current KB - Option C: Terms not appearing in any pair at all (globally unused)

2. Filtering scope: Should the filter apply only to the Terms page, or also affect dropdown population elsewhere (e.g., when assigning taxonomy in editors)?

3. User experience: If a term is hidden, how does the user know it exists? Should there be a count like "Showing 15 of 42 terms"?

4. New term creation: If Hide Unused is active and user creates a new term, should the filter auto-disable to show the new term?

Implementation Notes

- Model method `Taxonomy::getTermsUsedInKB()` already exists - UI toggle was implemented but commented out pending design decisions - See [list_taxonomy_terms.php:82-100](../../atomic/list_taxonomy_terms.php#L82-L100) for commented code

Related

- Part of broader KB-scoping discussion in [taxonomy_enhancement_considerations.md](../taxonomy_enhancement_considerations.md)

- Dec 12, Resolved by scoping Taxonomy Terms and Pairs to KB


[2025-12-08 23:01:52] Feature - Taxonomy Viewer and Cleanup for LG

Type: Feature
Priority: Medium
Status: Open
Submitted: 2025-12-08 23:01:52

Description

Now that LG are inheriting taxonomy assignments from statements and actions, we want to consider Hierarchy Viewer, List by Taxonomy, and Taxonomy Cleanup features for LG. It may be messier than for the statements and actions.


[2025-12-08 22:44:45] Feature - Copy Entities ✅

Type: Feature Priority: Medium Status: Resolved Submitted: 2025-12-08 22:44:45 Resolved: 2025-12-09

Description

It would be helpful to be able to copy statements, actions, and learning goals. Not only as a time-saver, but also to maintain consistency of language.

Resolution

Implemented copy functionality for all three entity types:

Files created:

- `atomic/copy_statement.php` - Copies statements via StatementController - `atomic/copy_action.php` - Copies actions via ActionController - `atomic/copy_learning_goal.php` - Copies learning goals with statement/action associations

Files modified:

- `app/Controllers/AtomicEntityController.php` - Added `copy()`, `copyTaxonomyAssociations()`, and `copySourceAssociations()` methods - `atomic/statement_editor_v2.php` - Added blue "Copy" button - `atomic/action_editor_v2.php` - Added blue "Copy" button - `atomic/learning_goal_editor.php` - Added blue "Copy" button

What gets copied:

- Label (with " (Copy)" suffix) - Description, teaching days, comment - Taxonomy associations (for statements/actions) - Source associations (for statements/actions) - Statement/action associations (for learning goals) - Status is always set to Draft

What does NOT get copied:

- Prerequisites (user can add after copying) - Taxonomy terms themselves are not copied (they're shared)

Related

- Supersedes: [2025-11-23 13:10:50] Feature - Copy entity


[2025-12-08 22:39:08] Feature - Warn Upon deleting entity used in a course

Type: Feature
Priority: High
Status: Open
Submitted: 2025-12-08 22:39:08

Description

If this is not already implemented, if a learning goal is being used in a course, and in the Knowledge base module the user attempts to delete the LG, there should be at least a warning. Or, the user should be required to go to Syllabus to remove the LG from the course. Similar reasoning could be applied to statements and actions. We'll have to think about that.


[2025-12-08 14:37:45] Feature - Taxonomy observation ✅

Type: Feature
Priority: Medium
Status: Resolved Submitted: 2025-12-08 14:37:45

Description

This is neither a bug nor a feature request at the moment. Entities are assigned, not to taxonomy values, but to name/value pairs. This complicates editing multilevel hierarchies because you can't simply break the association of name and value, carrying the assignments along with the value, when re-assigning the value to a different name. You have to un-assign and re-assign everything. We have to think about whether there are cases where " is a member of Kinematics" means something different from " is a member of PhysicsDomains>Kinematics".


- Dec 12 resolved by retaining association to name-value pairs but adding a reassignment utility

[2025-12-08 14:33:27] Feature - Taxonomy CreatePair separate S and A ✅

Type: Feature
Priority: Medium
Status: Resolved Submitted: 2025-12-08 14:33:27

Description

On the create pair taxonomy page, in the pair occupation list, show not just "3" but "2S/1A" referring to statements and actions.


[2025-12-08 14:30:01] Feature - Rethink taxonomy Create Pairs ✅

Type: Feature
Priority: Medium
Status: Resolved Submitted: 2025-12-08 14:30:01

Description

The taxonomy create pairs page is doing too much--pair creation, pair viewing, pair deletion. I think it's the only place that a pair can be deleted. We need to improve this.


- Dec 12 resolved by taxonomy page refactoring

[2025-12-08 14:24:56] Feature - Source Comment field

Type: Feature
Priority: Low
Status: Open
Submitted: 2025-12-08 14:24:56

Description

Add an extended-text Comment field for sources


[2025-12-06] Proposal - Learning Goal Filtering & Status Management ✅

Type: Feature Priority: High Status: Resolved Submitted: 2025-12-06 Resolved: 2025-12-09 Branch: `feature/lg-filtering`

Summary

Add filtering, pagination, and status management to Learning Goals, bringing them to feature parity with Statements and Actions list pages.

Key Design Decisions

1. Status is independent - LGs have their own status field (Draft/Ready/Deprecated/Needs Review), stored directly on the LG record 2. Taxonomy is inherited - LGs inherit taxonomy from their statements and actions (computed via joins, no `learning_goal_taxonomy` table needed) 3. Ready validation - LG can only be set to Ready if ALL its statements AND actions are Ready

Sub-tasks

| Task | Description | Status | | ---- | ------------------------------------------------------------------ | ------ | | 11a | Add `status` column to `learning_goals` table (tinyint, default 0) | Done | | 11b | Add `getByStatus()` method to LearningGoal model | Done | | 11c | Add `getInheritedTaxonomy()` method to LearningGoal model | Done | | 11d | Add Ready status validation in LearningGoal update | Done | | 11e | Create LearningGoalController with getListData() | Done | | 11f | Update list_learning_goals.php with filter UI and pagination | Done | | 11g | Update learning_goal_editor.php with status dropdown | Done |

Acceptance Criteria

- [x] LGs can be filtered by status (Draft/Ready/Deprecated/Needs Review) - [x] LGs can be filtered by inherited taxonomy (from statements/actions) - [x] LGs can be searched by label/description - [x] LG list is paginated (50 per page) - [x] LG editor shows status dropdown - [x] Cannot set LG to Ready unless all components are Ready - [x] LG editor shows inherited taxonomy (read-only display)

Resolution

All features implemented:

- `learning_goals.status` column added to database - `LearningGoal::getByStatus()` and `LearningGoal::getInheritedTaxonomy()` methods in model - Ready status validation prevents setting LG to Ready unless all components are Ready - `LearningGoalController` provides `getListData()` for filtering and pagination - `list_learning_goals.php` has full filter UI (status, taxonomy name/value, search) and pagination - `learning_goal_editor.php` has status dropdown and displays inherited taxonomy

Related

- Addresses: [2025-11-25 14:26:05] Feature - Learning Goal Status?


[2025-12-06] Proposal - Navigation Reorganization: Home, About, Knowledge Base ✅

Type: Feature Priority: High Status: Resolved Submitted: 2025-12-06 Resolved: 2025-12-06

Description

Comprehensive navigation reorganization to address architectural issues revealed by Issue #3 (404 errors from utilities pages) and consolidate several related proposals.

Current Problems

1. Utilities sidebar confusion: The Utilities folder uses `sidebar_atomic.php`, but relative links break when navigating from utilities pages 2. Inconsistent Home/Info structure: Home has a sidebar that serves no clear purpose 3. Scattered rename requests: Multiple open issues about renaming "Atomic" to "Knowledge Base"

Proposed Structure

#### 1. Home (Full-Width, No Sidebar)

- Home button on top toolbar links to `index.php` - Full-width landing page (no sidebar) - Uses `home_layout.php` with sidebar disabled - Module cards for Atomic, Syllabus, Curriculum, Assessment, Standards

#### 2. About (New Top Toolbar Section)

- New "About" button added to top toolbar (between Home and Knowledge Base) - Contains all pages currently in `/info/` folder: - Foundations - Elements - History - Tech Stack - Contact - Bug/Feature Reporter moved here (lowest sidebar link) - Uses `sidebar_about.php` (renamed from `sidebar_home.php`)

#### 3. Knowledge Base (Renamed from Atomic)

- Top toolbar button renamed from "Atomic" to "Knowledge Base" - Display text changed throughout UI - Directory remains `/atomic/` (no folder rename needed) - Cleanup utilities moved to KB sidebar bottom (no more Utilities accordion): - Prerequisite Cleanup - Taxonomy Cleanup

#### 4. Utilities Folder Deprecation

- Move `bug_feature_reporter.php` and `list_issues.php` to `/info/` - Update references to point to new locations - Deprecate `/utilities/` folder contents

Files to Create/Modify

Create:

- `app/Views/includes/sidebars/sidebar_about.php` (rename from sidebar_home.php)

Modify:

- `app/Views/layouts/home_layout.php` - Conditional sidebar (none for index.php) - `app/Views/includes/header_base.php` - Add "About" button, rename "Atomic" to "Knowledge Base" - `app/Views/includes/sidebars/sidebar_atomic.php` - Remove Utilities accordion, add cleanup tools as regular links - `info/*.php` pages - Use sidebar_about.php, move Bug Reporter here - `index.php` - Ensure uses no-sidebar layout

Deprecate:

- `utilities/bug_feature_reporter.php` (move to info/) - `utilities/list_issues.php` (move to info/)

Related Issues

This proposal supersedes/incorporates:

- [2025-12-02] Feature - Rename Atomic to Knowledge Base - [2025-11-27] Feature - Rename Atomic and Syllabus - [2025-12-06] Bug - Can't return from Bug Report form (root cause addressed)

Implementation Notes

- No folder renaming required (keeps URLs stable) - Sidebar detection can check `$_SERVER['REQUEST_URI']` for `/info/` path - About section inherits Home's "silent module" pattern (user sees "About" highlight, no module badge)

Resolution

Implemented all proposed changes:

Files Created:

- `app/Views/includes/sidebars/sidebar_about.php` - New sidebar for About section with Foundations, Elements, History, Tech Stack, Contact, and Bug/Feature Reporter links - `info/bug_feature_reporter.php` - Bug reporter moved from utilities/ - `info/list_issues.php` - Issues list moved from utilities/ - `info/save_issue.php` - Issue save handler moved from utilities/

Files Modified:

- `app/Views/layouts/home_layout.php` - Added conditional sidebar (shows sidebar when `$show_sidebar = true`, otherwise full-width) - `app/Views/includes/header_base.php` - Added "About" button to top toolbar, renamed "Atomic" to "Knowledge Base" - `app/Views/includes/sidebars/sidebar_atomic.php` - Removed Utilities accordion, added Prerequisite Cleanup and Taxonomy Cleanup as direct links - `info/foundations.php`, `info/elements.php`, `info/history.php`, `info/tech_stack.php`, `info/contact.php` - Added `$show_sidebar = true` - `index.php` - Updated module card from "Atomic" to "Knowledge Base" - `atomic/index.php` - Changed page title and heading from "Atomic Module" to "Knowledge Base"

Navigation Structure:

- Home: Full-width landing page (no sidebar) - About: New top toolbar section with sidebar for info pages + Bug Reporter - Knowledge Base: Renamed from Atomic, cleanup tools at sidebar bottom (no accordion)

Old utilities files remain in place but are no longer linked from any sidebar. They can be manually deprecated later.


[2025-12-06 14:17:28] Feature - Add room for Descriptions ✅

Type: Feature Priority: Medium Status: Resolved Submitted: 2025-12-06 14:17:28

Description

On list_statements and list_actions (or is it action_list and statement_list?) use up to three lines of text to display the Description.

Resolution

Updated both `list_statements.php` and `list_actions.php` to display up to 3 lines of description text using CSS line-clamping (`-webkit-line-clamp: 3`). Changed from character truncation (`truncateWithLatex(100)`) to full text with CSS overflow handling, which adapts better to different screen sizes while preserving LaTeX rendering.


[2025-12-06 14:13:01] Feature - String Search on Prereq graph

Type: Feature
Priority: Medium
Status: Open
Submitted: 2025-12-06 14:13:01

Description

Perform a string search on the labels on the prereq graph. All the nodes containing the string would highlight, and using an arrow key, or something, would successively center them in the view.


[2025-12-06 13:53:56] Bug - Can't return from Bug Report form ✅

Type: Bug Priority: High Status: Resolved Submitted: 2025-12-06 13:53:56

Description

http://localhost/kms-viewer/utilities/list_actions.php 404 not found

Resolution

Fixed `sidebar_atomic.php` to use absolute paths with `$base_url` instead of relative paths. Relative links like `list_actions.php` were resolving incorrectly when viewing pages outside the `/atomic/` directory (e.g., `/utilities/list_issues.php`). All sidebar links now use absolute paths like `atomic/list_actions.php`.


[2025-12-06 13:51:25] Feature - Edge info on hover

Type: Feature
Priority: Low
Status: Open
Submitted: 2025-12-06 13:51:25

Description

On hovering on an edge in a prereq graph, a little info box appears that gives the labels of the two nodes. This is useful if the nodes are far apart or otherwise can't be easily distinguished. It might read "Label A --> Label B".


[2025-12-03 14:18:25] Feature - Stack/Codebase Description page ✅

Type: Feature Priority: Low Status: Resolved Submitted: 2025-12-03 14:18:25

Description

In the /info section, create a page that describes our dev stack (XAMPP, php, JS, mariadb, sql) and our code structure. This might be helpful during development if we ever bring on additional humans, to orient them, and it would be interesting for me to read.

Resolution

Created `info/tech_stack.php` with comprehensive documentation of the technology stack (XAMPP, PHP 8.2+, MySQL/MariaDB, W3.CSS, GoJS) and codebase structure. Page includes module descriptions, MVC-lite architecture explanation, key files reference, and database overview. Added link to sidebar_home.php navigation.


[2025-12-02 14:08:03] Bug - Failing to Pick Up Transitive Redundacy ✅

Type: Bug Priority: High Status: Resolved Submitted: 2025-12-02 14:08:03

Description

The Prereq utility is failing to pick up some transitive redundancies. For example, TimeIntervalDef-->VelMagUnit-->VelDef and TimeIntervalDef-->InstantChangeDef-->VelDef.

Resolution

Not a bug. The example describes a "diamond" pattern (two paths from TimeIntervalDef to VelDef), which is not transitive redundancy. Transitive redundancy occurs when a direct edge exists that is already implied through an indirect path. In the example, there is no direct edge from TimeIntervalDef to VelDef, so no redundancy exists.


[2025-12-02 13:10:29] Feature - Rename Atomic to Knowledge Base ✅

Type: Feature Priority: Low Status: Resolved Submitted: 2025-12-02 13:10:29

Description

At least for the menu links and any displayed text, rename "Atomic" (module) to "Knowledge Base" (module). I'm leaning against changing the actual directory name (and references to the directory in files).

Resolution

Implemented as part of [2025-12-06] Proposal - Navigation Reorganization. The top toolbar button, module card on home page, and module index page now all say "Knowledge Base" instead of "Atomic". The directory `/atomic/` remains unchanged as planned.


[2025-12-02 13:07:45] Feature - Add support for data sets

Type: Feature
Priority: Low
Status: Open
Submitted: 2025-12-02 13:07:45

Description

We have to support data sets because they are used in science instruction. Here's some famous data as an example: https://gml.noaa.gov/ccgg/trends/. We also have to support data that is not famous. A data set would be classified as a statement, because it's something that's true about the natural world. The label for the statement consisting of the data at the link might be "MaunaLoaCO2" and its description might be "Monthly mean atmospheric carbon dioxide concentration measured at Mauna Loa Observatory, Hawaii, from 1958 through the present." This would be a departure from our usual statement style, which prominently features the word "is," we can think of it as shorthand for the following (very many) statements: "The mean atmospheric carbon dioxide concentration at Mauna Loa Observatory in July 1961 was #### ppm. The mean atmospheric carbon dioxide concentration at Mauna Loa Observatory in August 1961 was #### ppm. The mean atmospheric carbon dioxide concentration at...." Voluminous and/or famous data perhaps could merely be linked to, but we also need the capability to store data directly. Maybe it will be in its own table that is referenced by the statement. We need to be able to store metadata about the data--say, the number of points. So, we may need more fields to our statements. We need to be able to display data in the app.


[2025-12-02 01:40:39] Feature - DoubleClick View to open Statement/Action editor ✅

Type: Feature Priority: Medium Status: Resolved Submitted: 2025-12-02 01:40:39 Resolved: 2025-12-09

Description

We should be able to double-click on a statement or action in a prerequisite view or hierarchy view to open that entity in a new browser window for editing.

Resolution

Implemented in GoJS graph viewers. Both `statement_graph_viewer_gojs.php` and `action_graph_viewer_gojs.php` have `doubleClick` handlers on nodes that open the corresponding editor in a new window.


[2025-12-02 01:39:29] Bug - Sidebar Failure when Bug Report opened ✅

Type: Bug Priority: High Status: Resolved Submitted: 2025-12-02 01:39:29

Description

Warning: include(C:\xampp\htdocs\kms-viewer/app/Views/includes/sidebars/sidebar_atomic.html): Failed to open stream: No such file or directory in C:\xampp\htdocs\kms-viewer\app\Views\includes\sidebar_wrapper.php on line 3

Warning: include(): Failed opening 'C:\xampp\htdocs\kms-viewer/app/Views/includes/sidebars/sidebar_atomic.html' for inclusion (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\kms-viewer\app\Views\includes\sidebar_wrapper.php on line 3

Resolution

Updated `utilities/bug_feature_reporter.php` and `utilities/list_issues.php` to reference `sidebar_atomic.php` instead of the obsolete `sidebar_atomic.html`. The sidebar was converted from HTML to PHP during the Atomic Module Navigation Reorganization, but these utility files were not updated at that time.


[2025-11-27 12:51:54] Bug - Info Sidebar too wide ✅

Type: Bug Priority: Low Status: Resolved Submitted: 2025-11-27 12:51:54

Description

The sidebar menu for the "silent module" Info is too wide. It should be the same width as sidebars for the other modules.

Resolution

Updated `app/Views/layouts/home_layout.php` to use `width:15%` and `margin-left:15%` to match the module layout. Also changed the sidebar container from `

Issues are stored in: docs/issues/issues_log.md

Tip: You can manually edit this file to mark issues as resolved, add comments, or reorganize entries.