MetaList 0.7.4__tar.gz → 0.7.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. {metalist-0.7.4 → metalist-0.7.6}/PKG-INFO +6 -1
  2. {metalist-0.7.4 → metalist-0.7.6}/README.md +5 -0
  3. {metalist-0.7.4 → metalist-0.7.6}/app/main.py +13 -0
  4. metalist-0.7.6/app/security/http_error_diagnostics.py +19 -0
  5. {metalist-0.7.4 → metalist-0.7.6}/app/services/content_formatting.py +5 -7
  6. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/api-client.js +2 -1
  7. metalist-0.7.6/app/static/js/modules/api-error-diagnostics.js +16 -0
  8. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/tag-syntax-service.js +59 -1
  9. {metalist-0.7.4 → metalist-0.7.6}/app/version.py +1 -1
  10. {metalist-0.7.4 → metalist-0.7.6}/metalist.egg-info/PKG-INFO +6 -1
  11. {metalist-0.7.4 → metalist-0.7.6}/metalist.egg-info/SOURCES.txt +2 -0
  12. {metalist-0.7.4 → metalist-0.7.6}/pyproject.toml +2 -0
  13. {metalist-0.7.4 → metalist-0.7.6}/MANIFEST.in +0 -0
  14. {metalist-0.7.4 → metalist-0.7.6}/app/__init__.py +0 -0
  15. {metalist-0.7.4 → metalist-0.7.6}/app/api/__init__.py +0 -0
  16. {metalist-0.7.4 → metalist-0.7.6}/app/api/deps.py +0 -0
  17. {metalist-0.7.4 → metalist-0.7.6}/app/api/dev.py +0 -0
  18. {metalist-0.7.4 → metalist-0.7.6}/app/api/middleware/auth.py +0 -0
  19. {metalist-0.7.4 → metalist-0.7.6}/app/api/note_requests.py +0 -0
  20. {metalist-0.7.4 → metalist-0.7.6}/app/api/request_auth.py +0 -0
  21. {metalist-0.7.4 → metalist-0.7.6}/app/api/routes/ai.py +0 -0
  22. {metalist-0.7.4 → metalist-0.7.6}/app/api/routes/app_updates.py +0 -0
  23. {metalist-0.7.4 → metalist-0.7.6}/app/api/routes/auth.py +0 -0
  24. {metalist-0.7.4 → metalist-0.7.6}/app/api/routes/backups.py +0 -0
  25. {metalist-0.7.4 → metalist-0.7.6}/app/api/routes/files.py +0 -0
  26. {metalist-0.7.4 → metalist-0.7.6}/app/api/routes/notes.py +0 -0
  27. {metalist-0.7.4 → metalist-0.7.6}/app/api/routes/ontology.py +0 -0
  28. {metalist-0.7.4 → metalist-0.7.6}/app/api/routes/reminders.py +0 -0
  29. {metalist-0.7.4 → metalist-0.7.6}/app/api/routes/remote_images.py +0 -0
  30. {metalist-0.7.4 → metalist-0.7.6}/app/api/routes/test.py +0 -0
  31. {metalist-0.7.4 → metalist-0.7.6}/app/api/transactions.py +0 -0
  32. {metalist-0.7.4 → metalist-0.7.6}/app/api/upload_limits.py +0 -0
  33. {metalist-0.7.4 → metalist-0.7.6}/app/config.py +0 -0
  34. {metalist-0.7.4 → metalist-0.7.6}/app/data_directory.py +0 -0
  35. {metalist-0.7.4 → metalist-0.7.6}/app/db/__init__.py +0 -0
  36. {metalist-0.7.4 → metalist-0.7.6}/app/db/backup_settings_sql.py +0 -0
  37. {metalist-0.7.4 → metalist-0.7.6}/app/db/engine.py +0 -0
  38. {metalist-0.7.4 → metalist-0.7.6}/app/db/file_schema.py +0 -0
  39. {metalist-0.7.4 → metalist-0.7.6}/app/db/file_session.py +0 -0
  40. {metalist-0.7.4 → metalist-0.7.6}/app/db/files_sql.py +0 -0
  41. {metalist-0.7.4 → metalist-0.7.6}/app/db/link_titles_sql.py +0 -0
  42. {metalist-0.7.4 → metalist-0.7.6}/app/db/live_recovery.py +0 -0
  43. {metalist-0.7.4 → metalist-0.7.6}/app/db/migrations.py +0 -0
  44. {metalist-0.7.4 → metalist-0.7.6}/app/db/notes_sql.py +0 -0
  45. {metalist-0.7.4 → metalist-0.7.6}/app/db/ontology_rules_sql.py +0 -0
  46. {metalist-0.7.4 → metalist-0.7.6}/app/db/reminders_sql.py +0 -0
  47. {metalist-0.7.4 → metalist-0.7.6}/app/db/retire_sounds.py +0 -0
  48. {metalist-0.7.4 → metalist-0.7.6}/app/db/schema.py +0 -0
  49. {metalist-0.7.4 → metalist-0.7.6}/app/db/search_history_sql.py +0 -0
  50. {metalist-0.7.4 → metalist-0.7.6}/app/db/session.py +0 -0
  51. {metalist-0.7.4 → metalist-0.7.6}/app/db/settings_sql.py +0 -0
  52. {metalist-0.7.4 → metalist-0.7.6}/app/db/tab_state_sql.py +0 -0
  53. {metalist-0.7.4 → metalist-0.7.6}/app/db/version.py +0 -0
  54. {metalist-0.7.4 → metalist-0.7.6}/app/encryption_audit.py +0 -0
  55. {metalist-0.7.4 → metalist-0.7.6}/app/exception_boundaries.py +0 -0
  56. {metalist-0.7.4 → metalist-0.7.6}/app/https_proxy.py +0 -0
  57. {metalist-0.7.4 → metalist-0.7.6}/app/models/commands.py +0 -0
  58. {metalist-0.7.4 → metalist-0.7.6}/app/models/database.py +0 -0
  59. {metalist-0.7.4 → metalist-0.7.6}/app/models/entities.py +0 -0
  60. {metalist-0.7.4 → metalist-0.7.6}/app/models/enums.py +0 -0
  61. {metalist-0.7.4 → metalist-0.7.6}/app/models/linked_list.py +0 -0
  62. {metalist-0.7.4 → metalist-0.7.6}/app/models/list_operations.py +0 -0
  63. {metalist-0.7.4 → metalist-0.7.6}/app/models/list_traversal.py +0 -0
  64. {metalist-0.7.4 → metalist-0.7.6}/app/models/note_crud.py +0 -0
  65. {metalist-0.7.4 → metalist-0.7.6}/app/models/utils.py +0 -0
  66. {metalist-0.7.4 → metalist-0.7.6}/app/network_settings.py +0 -0
  67. {metalist-0.7.4 → metalist-0.7.6}/app/presentation/__init__.py +0 -0
  68. {metalist-0.7.4 → metalist-0.7.6}/app/presentation/render/__init__.py +0 -0
  69. {metalist-0.7.4 → metalist-0.7.6}/app/presentation/render/note_renderer.py +0 -0
  70. {metalist-0.7.4 → metalist-0.7.6}/app/presentation/templates.py +0 -0
  71. {metalist-0.7.4 → metalist-0.7.6}/app/security/authenticated_logging.py +0 -0
  72. {metalist-0.7.4 → metalist-0.7.6}/app/security/encryption.py +0 -0
  73. {metalist-0.7.4 → metalist-0.7.6}/app/security/http_headers.py +0 -0
  74. {metalist-0.7.4 → metalist-0.7.6}/app/security/note_html.py +0 -0
  75. {metalist-0.7.4 → metalist-0.7.6}/app/security/request_boundary.py +0 -0
  76. {metalist-0.7.4 → metalist-0.7.6}/app/security/request_hosts.py +0 -0
  77. {metalist-0.7.4 → metalist-0.7.6}/app/security/sensitive_cache.py +0 -0
  78. {metalist-0.7.4 → metalist-0.7.6}/app/security/sensitive_logging.py +0 -0
  79. {metalist-0.7.4 → metalist-0.7.6}/app/security/shell_execution.py +0 -0
  80. {metalist-0.7.4 → metalist-0.7.6}/app/security/validation_errors.py +0 -0
  81. {metalist-0.7.4 → metalist-0.7.6}/app/server_runtime.py +0 -0
  82. {metalist-0.7.4 → metalist-0.7.6}/app/services/__init__.py +0 -0
  83. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/__init__.py +0 -0
  84. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/actions.py +0 -0
  85. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/cloud_privacy.py +0 -0
  86. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/context.py +0 -0
  87. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/evidence_serialization.py +0 -0
  88. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/help_catalog.py +0 -0
  89. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/history.py +0 -0
  90. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/inference.py +0 -0
  91. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/investigation.py +0 -0
  92. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/judging.py +0 -0
  93. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/menu_actions.py +0 -0
  94. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/model_policy.py +0 -0
  95. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/openai_cost_tracking.py +0 -0
  96. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/openai_inference.py +0 -0
  97. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/permissions.py +0 -0
  98. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/prompt_settings.py +0 -0
  99. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/prompts/__init__.py +0 -0
  100. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/prompts/final-response.md +0 -0
  101. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/prompts/help-response.md +0 -0
  102. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/prompts/system.md +0 -0
  103. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/prompts/tool-result.md +0 -0
  104. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/retrieval_settings.py +0 -0
  105. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/runtime.py +0 -0
  106. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/scope.py +0 -0
  107. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/skill_settings.py +0 -0
  108. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/skills/__init__.py +0 -0
  109. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/skills/help-ai.md +0 -0
  110. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/skills/help-data.md +0 -0
  111. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/skills/help-formatting.md +0 -0
  112. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/skills/help-menus.md +0 -0
  113. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/skills/help-notes.md +0 -0
  114. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/skills/help-privacy.md +0 -0
  115. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/skills/help-references.md +0 -0
  116. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/skills/help-reminders.md +0 -0
  117. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/skills/help-search.md +0 -0
  118. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/skills/help-tags.md +0 -0
  119. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/skills/scoped-investigation.md +0 -0
  120. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/structured_inference.py +0 -0
  121. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/tagging.py +0 -0
  122. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/tagging_run.py +0 -0
  123. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/token_estimation.py +0 -0
  124. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/tools.py +0 -0
  125. {metalist-0.7.4 → metalist-0.7.6}/app/services/agent/trace.py +0 -0
  126. {metalist-0.7.4 → metalist-0.7.6}/app/services/ai_chat.py +0 -0
  127. {metalist-0.7.4 → metalist-0.7.6}/app/services/ai_chat_rendering.py +0 -0
  128. {metalist-0.7.4 → metalist-0.7.6}/app/services/ai_chat_stream.py +0 -0
  129. {metalist-0.7.4 → metalist-0.7.6}/app/services/app_update_worker.py +0 -0
  130. {metalist-0.7.4 → metalist-0.7.6}/app/services/app_updates.py +0 -0
  131. {metalist-0.7.4 → metalist-0.7.6}/app/services/auth.py +0 -0
  132. {metalist-0.7.4 → metalist-0.7.6}/app/services/auth_cache_state.py +0 -0
  133. {metalist-0.7.4 → metalist-0.7.6}/app/services/auth_service.py +0 -0
  134. {metalist-0.7.4 → metalist-0.7.6}/app/services/backlink_index.py +0 -0
  135. {metalist-0.7.4 → metalist-0.7.6}/app/services/backlinks.py +0 -0
  136. {metalist-0.7.4 → metalist-0.7.6}/app/services/backup_service.py +0 -0
  137. {metalist-0.7.4 → metalist-0.7.6}/app/services/backup_settings_service.py +0 -0
  138. {metalist-0.7.4 → metalist-0.7.6}/app/services/bulk_operation.py +0 -0
  139. {metalist-0.7.4 → metalist-0.7.6}/app/services/client_state_service.py +0 -0
  140. {metalist-0.7.4 → metalist-0.7.6}/app/services/content_cache.py +0 -0
  141. {metalist-0.7.4 → metalist-0.7.6}/app/services/diagnostics.py +0 -0
  142. {metalist-0.7.4 → metalist-0.7.6}/app/services/embedded_references.py +0 -0
  143. {metalist-0.7.4 → metalist-0.7.6}/app/services/encryption.py +0 -0
  144. {metalist-0.7.4 → metalist-0.7.6}/app/services/exception_capture.py +0 -0
  145. {metalist-0.7.4 → metalist-0.7.6}/app/services/file_registry.py +0 -0
  146. {metalist-0.7.4 → metalist-0.7.6}/app/services/file_storage.py +0 -0
  147. {metalist-0.7.4 → metalist-0.7.6}/app/services/footnote_layout.py +0 -0
  148. {metalist-0.7.4 → metalist-0.7.6}/app/services/footnote_rendering.py +0 -0
  149. {metalist-0.7.4 → metalist-0.7.6}/app/services/hierarchy.py +0 -0
  150. {metalist-0.7.4 → metalist-0.7.6}/app/services/html_export.py +0 -0
  151. {metalist-0.7.4 → metalist-0.7.6}/app/services/html_unformatting.py +0 -0
  152. {metalist-0.7.4 → metalist-0.7.6}/app/services/hydration_state.py +0 -0
  153. {metalist-0.7.4 → metalist-0.7.6}/app/services/image_size_formatting.py +0 -0
  154. {metalist-0.7.4 → metalist-0.7.6}/app/services/inline_image_occurrences.py +0 -0
  155. {metalist-0.7.4 → metalist-0.7.6}/app/services/input_errors.py +0 -0
  156. {metalist-0.7.4 → metalist-0.7.6}/app/services/integrity.py +0 -0
  157. {metalist-0.7.4 → metalist-0.7.6}/app/services/latex_rendering.py +0 -0
  158. {metalist-0.7.4 → metalist-0.7.6}/app/services/link_titles.py +0 -0
  159. {metalist-0.7.4 → metalist-0.7.6}/app/services/login_rate_limit.py +0 -0
  160. {metalist-0.7.4 → metalist-0.7.6}/app/services/maintenance_mode.py +0 -0
  161. {metalist-0.7.4 → metalist-0.7.6}/app/services/markdown_rendering.py +0 -0
  162. {metalist-0.7.4 → metalist-0.7.6}/app/services/namespace_deletion_jobs.py +0 -0
  163. {metalist-0.7.4 → metalist-0.7.6}/app/services/namespace_deletion_worker.py +0 -0
  164. {metalist-0.7.4 → metalist-0.7.6}/app/services/namespace_rename_jobs.py +0 -0
  165. {metalist-0.7.4 → metalist-0.7.6}/app/services/namespace_rename_worker.py +0 -0
  166. {metalist-0.7.4 → metalist-0.7.6}/app/services/namespace_runtime_guard.py +0 -0
  167. {metalist-0.7.4 → metalist-0.7.6}/app/services/namespace_switcher.py +0 -0
  168. {metalist-0.7.4 → metalist-0.7.6}/app/services/note_fullscreen.py +0 -0
  169. {metalist-0.7.4 → metalist-0.7.6}/app/services/note_image_tags.py +0 -0
  170. {metalist-0.7.4 → metalist-0.7.6}/app/services/note_ordering.py +0 -0
  171. {metalist-0.7.4 → metalist-0.7.6}/app/services/note_store.py +0 -0
  172. {metalist-0.7.4 → metalist-0.7.6}/app/services/ontology_rules_store.py +0 -0
  173. {metalist-0.7.4 → metalist-0.7.6}/app/services/openai_credentials.py +0 -0
  174. {metalist-0.7.4 → metalist-0.7.6}/app/services/password_note_fields.py +0 -0
  175. {metalist-0.7.4 → metalist-0.7.6}/app/services/reference_presentation.py +0 -0
  176. {metalist-0.7.4 → metalist-0.7.6}/app/services/reminders.py +0 -0
  177. {metalist-0.7.4 → metalist-0.7.6}/app/services/remote_image_proxy.py +0 -0
  178. {metalist-0.7.4 → metalist-0.7.6}/app/services/request_recovery.py +0 -0
  179. {metalist-0.7.4 → metalist-0.7.6}/app/services/resource_limits.py +0 -0
  180. {metalist-0.7.4 → metalist-0.7.6}/app/services/root_sorting.py +0 -0
  181. {metalist-0.7.4 → metalist-0.7.6}/app/services/runtime_generation.py +0 -0
  182. {metalist-0.7.4 → metalist-0.7.6}/app/services/runtime_hardening.py +0 -0
  183. {metalist-0.7.4 → metalist-0.7.6}/app/services/runtime_lock.py +0 -0
  184. {metalist-0.7.4 → metalist-0.7.6}/app/services/search_history.py +0 -0
  185. {metalist-0.7.4 → metalist-0.7.6}/app/services/search_history_storage.py +0 -0
  186. {metalist-0.7.4 → metalist-0.7.6}/app/services/search_index.py +0 -0
  187. {metalist-0.7.4 → metalist-0.7.6}/app/services/search_query.py +0 -0
  188. {metalist-0.7.4 → metalist-0.7.6}/app/services/search_text.py +0 -0
  189. {metalist-0.7.4 → metalist-0.7.6}/app/services/selected_text_tag.py +0 -0
  190. {metalist-0.7.4 → metalist-0.7.6}/app/services/self_update.py +0 -0
  191. {metalist-0.7.4 → metalist-0.7.6}/app/services/session_timeout_service.py +0 -0
  192. {metalist-0.7.4 → metalist-0.7.6}/app/services/shell_session_service.py +0 -0
  193. {metalist-0.7.4 → metalist-0.7.6}/app/services/snapshot.py +0 -0
  194. {metalist-0.7.4 → metalist-0.7.6}/app/services/store.py +0 -0
  195. {metalist-0.7.4 → metalist-0.7.6}/app/services/structured_note_renderers.py +0 -0
  196. {metalist-0.7.4 → metalist-0.7.6}/app/services/sync.py +0 -0
  197. {metalist-0.7.4 → metalist-0.7.6}/app/services/sync_state.py +0 -0
  198. {metalist-0.7.4 → metalist-0.7.6}/app/services/tab_state.py +0 -0
  199. {metalist-0.7.4 → metalist-0.7.6}/app/services/tag_case.py +0 -0
  200. {metalist-0.7.4 → metalist-0.7.6}/app/services/tag_ontology.py +0 -0
  201. {metalist-0.7.4 → metalist-0.7.6}/app/services/tag_rename.py +0 -0
  202. {metalist-0.7.4 → metalist-0.7.6}/app/services/tag_suggestions.py +0 -0
  203. {metalist-0.7.4 → metalist-0.7.6}/app/services/tag_term_matching.py +0 -0
  204. {metalist-0.7.4 → metalist-0.7.6}/app/services/test_reset.py +0 -0
  205. {metalist-0.7.4 → metalist-0.7.6}/app/services/tokens.py +0 -0
  206. {metalist-0.7.4 → metalist-0.7.6}/app/services/undo_state.py +0 -0
  207. {metalist-0.7.4 → metalist-0.7.6}/app/services/update_backups.py +0 -0
  208. {metalist-0.7.4 → metalist-0.7.6}/app/services/update_installer.py +0 -0
  209. {metalist-0.7.4 → metalist-0.7.6}/app/services/update_preflight.py +0 -0
  210. {metalist-0.7.4 → metalist-0.7.6}/app/services/view_cache.py +0 -0
  211. {metalist-0.7.4 → metalist-0.7.6}/app/services/view_diff.py +0 -0
  212. {metalist-0.7.4 → metalist-0.7.6}/app/services/view_state.py +0 -0
  213. {metalist-0.7.4 → metalist-0.7.6}/app/services/windows_process_control.py +0 -0
  214. {metalist-0.7.4 → metalist-0.7.6}/app/startup_environment.py +0 -0
  215. {metalist-0.7.4 → metalist-0.7.6}/app/startup_js_sanity.py +0 -0
  216. {metalist-0.7.4 → metalist-0.7.6}/app/startup_sanity.py +0 -0
  217. {metalist-0.7.4 → metalist-0.7.6}/app/startup_sanity_config.py +0 -0
  218. {metalist-0.7.4 → metalist-0.7.6}/app/static/config/agent-menu-actions.json +0 -0
  219. {metalist-0.7.4 → metalist-0.7.6}/app/static/config/command_palette_tags.json +0 -0
  220. {metalist-0.7.4 → metalist-0.7.6}/app/static/css/floating-notes.css +0 -0
  221. {metalist-0.7.4 → metalist-0.7.6}/app/static/css/forms.css +0 -0
  222. {metalist-0.7.4 → metalist-0.7.6}/app/static/css/main.css +0 -0
  223. {metalist-0.7.4 → metalist-0.7.6}/app/static/img/favicon.ico +0 -0
  224. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/locked.js +0 -0
  225. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/main.js +0 -0
  226. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/activity-tracker.js +0 -0
  227. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/ai-chat/agent-menu-actions.js +0 -0
  228. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/ai-chat/agent-prompt-service.js +0 -0
  229. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/ai-chat/agent-retrieval-settings.js +0 -0
  230. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/ai-chat/ai-agent-debug-view.js +0 -0
  231. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/ai-chat/ai-chat-api.js +0 -0
  232. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/ai-chat/ai-chat-panel-controller.js +0 -0
  233. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/ai-chat/ai-chat-panel-service.js +0 -0
  234. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/ai-chat/ai-thinking-level-service.js +0 -0
  235. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/ai-chat/bulk-elapsed-clock.js +0 -0
  236. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/ai-chat/bulk-proposal-ui.js +0 -0
  237. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/ai-chat/cloud-privacy-policy.js +0 -0
  238. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/ai-chat/proposal-menu.js +0 -0
  239. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/api-failure-classification-service.js +0 -0
  240. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/app-update-service.js +0 -0
  241. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/application-state.js +0 -0
  242. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/async-result.js +0 -0
  243. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/auth.js +0 -0
  244. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/client-state-api.js +0 -0
  245. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/client-state-migration.js +0 -0
  246. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/command-palette/activation-auth-policy.js +0 -0
  247. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/command-palette/backup-command-availability.js +0 -0
  248. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/command-palette/click-activation-service.js +0 -0
  249. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/command-palette/command-palette-controller.js +0 -0
  250. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/command-palette/endpoint-registry.js +0 -0
  251. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/command-palette/note-layout-preferences.js +0 -0
  252. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/command-palette/preferences-store.js +0 -0
  253. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/command-palette/tag-config-loader.js +0 -0
  254. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/command-palette/usage-store.js +0 -0
  255. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/config.js +0 -0
  256. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/connectivity-monitor.js +0 -0
  257. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/context-menu/context-menu-registry.js +0 -0
  258. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/context-menu/context-menu-service.js +0 -0
  259. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/context-menu/context-menu-target-service.js +0 -0
  260. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/context-menu/input-caret-service.js +0 -0
  261. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/disconnect-editing-state-service.js +0 -0
  262. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/dom-utils-fixed.js +0 -0
  263. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/dom-utils.js +0 -0
  264. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/editor-commands.js +0 -0
  265. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/editor-selection.js +0 -0
  266. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/editor-toolbar.js +0 -0
  267. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/elapsed-time.js +0 -0
  268. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/error-handler.js +0 -0
  269. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/error-overlay.js +0 -0
  270. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/expected-errors.js +0 -0
  271. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/location-flags.js +0 -0
  272. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/login-namespace-picker.js +0 -0
  273. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/maintenance.js +0 -0
  274. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/agent-prompt-editor-modal.js +0 -0
  275. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/ai-agent-settings-modal.js +0 -0
  276. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/alphabetize-root-notes-modal.js +0 -0
  277. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/backup-restore-modal.js +0 -0
  278. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/backup-result-modal.js +0 -0
  279. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/backup-retention-modal.js +0 -0
  280. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/backup-settings-modal.js +0 -0
  281. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/base-modal.js +0 -0
  282. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/confirmation-modal.js +0 -0
  283. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/delete-namespace-modal.js +0 -0
  284. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/delete-namespace-validation.js +0 -0
  285. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/help-modal.js +0 -0
  286. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/namespace-loading-page.js +0 -0
  287. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/namespace-modals.js +0 -0
  288. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/namespace-ports-profile.js +0 -0
  289. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/namespace-rename-validation.js +0 -0
  290. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/note-layout-appearance-modal.js +0 -0
  291. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/ontology-modal.js +0 -0
  292. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/password-modal.js +0 -0
  293. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/prioritize-modal.js +0 -0
  294. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/random-password-modal.js +0 -0
  295. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/reminder-modal.js +0 -0
  296. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/reset-updated-at-modal.js +0 -0
  297. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/search-suggestion-statistics-modal.js +0 -0
  298. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/session-timeout-modal.js +0 -0
  299. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/modals/version-info-modal.js +0 -0
  300. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/actions/content-actions.js +0 -0
  301. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/actions/history-actions.js +0 -0
  302. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/actions/note-actions.js +0 -0
  303. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/actions/search-actions.js +0 -0
  304. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/actions/selection-actions.js +0 -0
  305. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/actions/ui-actions.js +0 -0
  306. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/events/context-menu-events.js +0 -0
  307. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/events/focus-events.js +0 -0
  308. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/events/inactivity-events.js +0 -0
  309. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/events/input-events.js +0 -0
  310. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/events/keyboard-events.js +0 -0
  311. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/events/mouse-events.js +0 -0
  312. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/events/search-events.js +0 -0
  313. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/mode-context.js +0 -0
  314. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/mode-logger.js +0 -0
  315. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/mode-manager-controller.js +0 -0
  316. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/add-style-service.js +0 -0
  317. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/animated-scroll-service.js +0 -0
  318. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/backlinks-navigation-service.js +0 -0
  319. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/backlinks-panel-service.js +0 -0
  320. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/clipboard-shortcut-policy-service.js +0 -0
  321. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/collapse-affordance-service.js +0 -0
  322. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/collapse-editing-policy-service.js +0 -0
  323. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/command-gate-service.js +0 -0
  324. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/context-menu-target-service.js +0 -0
  325. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/deselect-selection-state-service.js +0 -0
  326. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/differential-view-service.js +0 -0
  327. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/edit-session-collapse-policy-service.js +0 -0
  328. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/edit-session-collapse-service.js +0 -0
  329. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/embedded-image-service.js +0 -0
  330. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/file-drop-policy-service.js +0 -0
  331. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/file-image-preview-service.js +0 -0
  332. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/file-reference-service.js +0 -0
  333. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/filtered-refresh-selection-service.js +0 -0
  334. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/floating-note-dom.js +0 -0
  335. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/floating-note-layout.js +0 -0
  336. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/floating-note-service.js +0 -0
  337. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/footnote-navigation-service.js +0 -0
  338. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/history-selection-policy-service.js +0 -0
  339. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/history-shortcut-policy-service.js +0 -0
  340. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/html-paste-sanitizer-service.js +0 -0
  341. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/image-context-menu-action-service.js +0 -0
  342. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/image-file-insert-choice-modal-service.js +0 -0
  343. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/infinite-scroll-service.js +0 -0
  344. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/link-context-menu-action-service.js +0 -0
  345. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/link-title-prefetch-service.js +0 -0
  346. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/markdown-render-service.js +0 -0
  347. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/mermaid-render-service.js +0 -0
  348. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/note-click-target-service.js +0 -0
  349. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/note-clipboard-write-service.js +0 -0
  350. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/note-collapse-animation-service.js +0 -0
  351. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/note-context-menu-action-service.js +0 -0
  352. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/note-delete-shortcut-policy-service.js +0 -0
  353. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/note-drag-service.js +0 -0
  354. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/note-fullscreen-service.js +0 -0
  355. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/note-reposition-animation-service.js +0 -0
  356. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/note-split-service.js +0 -0
  357. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/note-timestamp-hover-service.js +0 -0
  358. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/password-clipboard-service.js +0 -0
  359. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/polling-service.js +0 -0
  360. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/reference-source-navigation-service.js +0 -0
  361. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/remote-image-proxy-service.js +0 -0
  362. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/remove-formatting-service.js +0 -0
  363. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/root-date-separator-service.js +0 -0
  364. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/root-sort-indicator-service.js +0 -0
  365. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/root-sort-service.js +0 -0
  366. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/scroll-anchor-service.js +0 -0
  367. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/scroll-restoration-service.js +0 -0
  368. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/scroll-to-top-service.js +0 -0
  369. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/search-contexts-overlay-service.js +0 -0
  370. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/search-debounce-service.js +0 -0
  371. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/search-input-service.js +0 -0
  372. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/search-interaction-service.js +0 -0
  373. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/search-redaction-reveal-service.js +0 -0
  374. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/search-suggestion-statistics-service.js +0 -0
  375. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/search-suggestion-window-labels-service.js +0 -0
  376. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/search-suggestion-windows-service.js +0 -0
  377. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/search-suggestions-service.js +0 -0
  378. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/search-syntax-service.js +0 -0
  379. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/selected-formatting-removal-service.js +0 -0
  380. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/selected-text-tag-service.js +0 -0
  381. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/shell-output-service.js +0 -0
  382. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/tab-dom-cache-service.js +0 -0
  383. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/tab-drag-service.js +0 -0
  384. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/tab-duplication-service.js +0 -0
  385. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/tab-state-service.js +0 -0
  386. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/tag-bar-service.js +0 -0
  387. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/tag-input-selection-service.js +0 -0
  388. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/tag-proposal-service.js +0 -0
  389. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/tag-suggestions-service.js +0 -0
  390. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/todo-toggle-editing-service.js +0 -0
  391. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/untagged-view-indicator-service.js +0 -0
  392. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/mode-manager/services/view-mode-search-shortcut-service.js +0 -0
  393. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/note-html-sanitizer.js +0 -0
  394. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/password-generator.js +0 -0
  395. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/password-operation-response.js +0 -0
  396. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/password-policy.js +0 -0
  397. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/password-strength.js +0 -0
  398. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/reminder-store.js +0 -0
  399. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/reminder-surface-service.js +0 -0
  400. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/selection-markers.js +0 -0
  401. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/session-auth.js +0 -0
  402. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/tag-token.js +0 -0
  403. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/modules/uuid.js +0 -0
  404. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/namespace-deleted.js +0 -0
  405. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/namespace-renamed.js +0 -0
  406. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/vendor/dompurify-3.4.13.LICENSE.txt +0 -0
  407. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/vendor/dompurify-3.4.13.min.js +0 -0
  408. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/vendor/markdown-it-14.3.2.LICENSE.txt +0 -0
  409. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/vendor/markdown-it-14.3.2.min.js +0 -0
  410. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/vendor/mermaid-11.16.1.LICENSE.txt +0 -0
  411. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/vendor/mermaid-11.16.1.min.js +0 -0
  412. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/vendor/zxcvbn-4.4.2.LICENSE.txt +0 -0
  413. {metalist-0.7.4 → metalist-0.7.6}/app/static/js/vendor/zxcvbn-4.4.2.js +0 -0
  414. {metalist-0.7.4 → metalist-0.7.6}/app/static/note-html-policy.json +0 -0
  415. {metalist-0.7.4 → metalist-0.7.6}/app/static/video/login-startup.mp4 +0 -0
  416. {metalist-0.7.4 → metalist-0.7.6}/app/templates/base.html +0 -0
  417. {metalist-0.7.4 → metalist-0.7.6}/app/templates/index.html +0 -0
  418. {metalist-0.7.4 → metalist-0.7.6}/app/templates/locked.html +0 -0
  419. {metalist-0.7.4 → metalist-0.7.6}/app/templates/maintenance.html +0 -0
  420. {metalist-0.7.4 → metalist-0.7.6}/app/templates/namespace_deleted.html +0 -0
  421. {metalist-0.7.4 → metalist-0.7.6}/app/templates/namespace_renamed.html +0 -0
  422. {metalist-0.7.4 → metalist-0.7.6}/app/templates/notes_list.html +0 -0
  423. {metalist-0.7.4 → metalist-0.7.6}/app/upload_limits.py +0 -0
  424. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/__init__.py +0 -0
  425. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/add_selected_text_tag.py +0 -0
  426. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/alphabetize_root_notes.py +0 -0
  427. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/base.py +0 -0
  428. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/bulk_tag_proposals.py +0 -0
  429. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/collapse.py +0 -0
  430. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/copy_note.py +0 -0
  431. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/create_child.py +0 -0
  432. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/create_note.py +0 -0
  433. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/create_sibling.py +0 -0
  434. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/delete_subtree.py +0 -0
  435. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/delete_tag.py +0 -0
  436. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/expand.py +0 -0
  437. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/indent.py +0 -0
  438. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/lock.py +0 -0
  439. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/move.py +0 -0
  440. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/move_to_top.py +0 -0
  441. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/outdent.py +0 -0
  442. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/paste_child.py +0 -0
  443. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/paste_sibling.py +0 -0
  444. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/prefetch_link_titles.py +0 -0
  445. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/prioritize.py +0 -0
  446. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/redo.py +0 -0
  447. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/rename_tag.py +0 -0
  448. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/reset_updated_at.py +0 -0
  449. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/resize_image.py +0 -0
  450. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/run_shell.py +0 -0
  451. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/search_comment_autofill.py +0 -0
  452. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/search_context_tags.py +0 -0
  453. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/set_collapse_bulk.py +0 -0
  454. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/set_collapse_in_context.py +0 -0
  455. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/split_note.py +0 -0
  456. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/tag_proposals.py +0 -0
  457. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/toggle_reference_mode.py +0 -0
  458. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/toggle_todo_done.py +0 -0
  459. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/undo.py +0 -0
  460. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/unformat_content.py +0 -0
  461. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/update_content.py +0 -0
  462. {metalist-0.7.4 → metalist-0.7.6}/app/usecases/view.py +0 -0
  463. {metalist-0.7.4 → metalist-0.7.6}/app/utils/__init__.py +0 -0
  464. {metalist-0.7.4 → metalist-0.7.6}/app/utils/encryption.py +0 -0
  465. {metalist-0.7.4 → metalist-0.7.6}/app/utils/text_utils.py +0 -0
  466. {metalist-0.7.4 → metalist-0.7.6}/convert-from-legacy.py +0 -0
  467. {metalist-0.7.4 → metalist-0.7.6}/main.py +0 -0
  468. {metalist-0.7.4 → metalist-0.7.6}/metalist.egg-info/dependency_links.txt +0 -0
  469. {metalist-0.7.4 → metalist-0.7.6}/metalist.egg-info/entry_points.txt +0 -0
  470. {metalist-0.7.4 → metalist-0.7.6}/metalist.egg-info/requires.txt +0 -0
  471. {metalist-0.7.4 → metalist-0.7.6}/metalist.egg-info/top_level.txt +0 -0
  472. {metalist-0.7.4 → metalist-0.7.6}/scripts/generate-lan-cert.sh +0 -0
  473. {metalist-0.7.4 → metalist-0.7.6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metalist
3
- Version: 0.7.4
3
+ Version: 0.7.6
4
4
  Summary: A minimalist single-user note-taking app with SSR, fast in-memory tree operations, and efficient sync.
5
5
  Project-URL: Homepage, https://github.com/evolvingstuff/metalist
6
6
  Project-URL: Repository, https://github.com/evolvingstuff/metalist
@@ -48,6 +48,11 @@ A minimalist single-user note-taking app focused on server-side rendering (SSR),
48
48
  - Multi-tab search contexts with server-persisted scroll/search state (survives browser restarts)
49
49
  - Manual namespace backups/restores to a user-selected backup folder with retention controls
50
50
 
51
+ ## Changes in 0.7.5
52
+
53
+ - Unexpected API 500 errors now show the exception class and MetaList source line in the browser, without exposing note contents, exception messages, or local filesystem paths.
54
+ - A local release command validates the exact cross-platform CI matrix, publishes only its tested artifacts, then verifies the public PyPI package in a clean installation.
55
+
51
56
  ## Changes in 0.7.4
52
57
 
53
58
  - Updates use a private, checksum-verified uv release on Windows, macOS, and Linux. The updater does not execute a user-installed uv, and it revalidates both the cached official archive and extracted executable before each use.
@@ -12,6 +12,11 @@ A minimalist single-user note-taking app focused on server-side rendering (SSR),
12
12
  - Multi-tab search contexts with server-persisted scroll/search state (survives browser restarts)
13
13
  - Manual namespace backups/restores to a user-selected backup folder with retention controls
14
14
 
15
+ ## Changes in 0.7.5
16
+
17
+ - Unexpected API 500 errors now show the exception class and MetaList source line in the browser, without exposing note contents, exception messages, or local filesystem paths.
18
+ - A local release command validates the exact cross-platform CI matrix, publishes only its tested artifacts, then verifies the public PyPI package in a clean installation.
19
+
15
20
  ## Changes in 0.7.4
16
21
 
17
22
  - Updates use a private, checksum-verified uv release on Windows, macOS, and Linux. The updater does not execute a user-installed uv, and it revalidates both the cached official archive and extracted executable before each use.
@@ -38,6 +38,7 @@ from app.services.search_history import search_history_store
38
38
  from app.services.runtime_hardening import apply_runtime_hardening
39
39
  from app.security.encryption import set_encryption_required
40
40
  from app.security.http_headers import apply_security_headers
41
+ from app.security.http_error_diagnostics import describe_server_exception
41
42
  from app.security.request_boundary import RequestBoundaryMiddleware
42
43
  from app.security.request_boundary import resolve_allowed_request_hosts
43
44
  from app.security.validation_errors import summarize_validation_errors
@@ -149,6 +150,18 @@ async def request_validation_error(request: Request, exc: RequestValidationError
149
150
  async def handle_ontology_parse_error(request: Request, exc: OntologyParseError):
150
151
  return JSONResponse(status_code=400, content={"detail": str(exc)})
151
152
 
153
+
154
+ @app.exception_handler(Exception)
155
+ async def handle_unexpected_server_error(request: Request, exc: Exception):
156
+ return JSONResponse(
157
+ status_code=500,
158
+ content={
159
+ "detail": "Internal server error",
160
+ "diagnostic": describe_server_exception(exc),
161
+ },
162
+ headers={"Cache-Control": "no-store, private", "X-Content-Type-Options": "nosniff"},
163
+ )
164
+
152
165
  _startup_timing_enabled = True
153
166
 
154
167
 
@@ -0,0 +1,19 @@
1
+ """Small, data-free diagnostics for unexpected HTTP failures."""
2
+
3
+ from pathlib import Path
4
+ import traceback
5
+
6
+
7
+ _APP_DIRECTORY = Path(__file__).resolve().parents[1]
8
+ _REPOSITORY_DIRECTORY = _APP_DIRECTORY.parent
9
+
10
+
11
+ def describe_server_exception(error: Exception) -> dict[str, str]:
12
+ """Expose the exception class and last application frame, never its message."""
13
+ location = "external"
14
+ for frame in reversed(traceback.extract_tb(error.__traceback__)):
15
+ path = Path(frame.filename).resolve()
16
+ if path.is_relative_to(_APP_DIRECTORY):
17
+ location = f"{path.relative_to(_REPOSITORY_DIRECTORY).as_posix()}:{frame.lineno}"
18
+ break
19
+ return {"errorType": type(error).__name__, "codeLocation": location}
@@ -328,7 +328,7 @@ def remove_formatting_scope_delimiters(
328
328
  def _is_removable_formatting_tag(token: str) -> bool:
329
329
  if not isinstance(token, str):
330
330
  raise TypeError(f"token must be a string, got {type(token)}")
331
- if not token.startswith("@"):
331
+ if not token.startswith("@") or token == "@":
332
332
  return False
333
333
  tag_name = _canonical_meta_tag_name(token[1:].casefold())
334
334
  if tag_name in _REMOVABLE_FORMATTING_TAGS:
@@ -822,7 +822,7 @@ def _add_implied_meta_tags(*, tags: str, config: MetaTagConfig) -> MetaTagConfig
822
822
  implied_terms = ontology.infer_implication_only(base_tags=source_terms)
823
823
  implied_meta_tags: Set[str] = set()
824
824
  for term in implied_terms:
825
- if not term.startswith("@"):
825
+ if not term.startswith("@") or term == "@":
826
826
  continue
827
827
  tag_name = _canonical_meta_tag_name(term[1:].casefold())
828
828
  if _is_formatting_meta_tag_name(tag_name):
@@ -1230,7 +1230,7 @@ def _parse_meta_tags(tags: str) -> MetaTagConfig:
1230
1230
  for token in tokens:
1231
1231
  base, wrapper = _unwrap_tag_token(token)
1232
1232
  if wrapper is None:
1233
- if not base.startswith("@"):
1233
+ if not base.startswith("@") or base == "@":
1234
1234
  continue
1235
1235
  tag_name = _canonical_meta_tag_name(base[1:].casefold())
1236
1236
  if not _is_formatting_meta_tag_name(tag_name):
@@ -1248,7 +1248,7 @@ def _parse_meta_tags(tags: str) -> MetaTagConfig:
1248
1248
  key = (opener, depth)
1249
1249
  wrappers_to_consume.add(key)
1250
1250
  for inner in inner_tokens:
1251
- if not inner.startswith("@"):
1251
+ if not inner.startswith("@") or inner == "@":
1252
1252
  continue
1253
1253
  tag_name = _canonical_meta_tag_name(inner[1:].casefold())
1254
1254
  if not _is_formatting_meta_tag_name(tag_name):
@@ -1257,9 +1257,7 @@ def _parse_meta_tags(tags: str) -> MetaTagConfig:
1257
1257
  if key in scoped_renderers:
1258
1258
  existing = scoped_renderers[key]
1259
1259
  if existing is not None and existing != tag_name:
1260
- raise ValueError(
1261
- f"Wrapper {key} has conflicting scoped renderers: {existing} vs {tag_name}"
1262
- )
1260
+ continue
1263
1261
  scoped_renderers[key] = tag_name
1264
1262
  continue
1265
1263
  if key not in scoped:
@@ -7,6 +7,7 @@ import { computeScrollAnchor } from './mode-manager/services/scroll-anchor-servi
7
7
  import { CommandGate } from './mode-manager/services/command-gate-service.js';
8
8
  import { buildSessionHeaders } from './session-auth.js';
9
9
  import { sanitizeNoteHtmlForStorage } from './note-html-sanitizer.js';
10
+ import { describeApiFailure } from './api-error-diagnostics.js';
10
11
 
11
12
  function buildAuthHeaders(includeContentType) {
12
13
  return buildSessionHeaders(includeContentType);
@@ -125,7 +126,7 @@ export const NotesAPI = {
125
126
  if (!response.ok) {
126
127
  // Use centralized error handling
127
128
  ErrorHandler.handleApiError(null, response);
128
- throw new HttpRequestError(`API call failed: ${response.status} ${response.statusText}`);
129
+ throw new HttpRequestError(await describeApiFailure(response));
129
130
  }
130
131
 
131
132
  const data = await response.json();
@@ -0,0 +1,16 @@
1
+ const ERROR_TYPE = /^[A-Za-z_][A-Za-z0-9_]*$/;
2
+ const CODE_LOCATION = /^(?:app(?:\/[A-Za-z_][A-Za-z0-9_]*)+\.py:\d+|external)$/;
3
+
4
+ export async function describeApiFailure(response) {
5
+ const base = `API call failed: ${response.status} ${response.statusText}`;
6
+ if (response.status < 500 || !response.headers.get('content-type')?.includes('application/json')) {
7
+ return base;
8
+ }
9
+
10
+ const body = await response.json();
11
+ const diagnostic = body?.diagnostic;
12
+ if (!ERROR_TYPE.test(diagnostic?.errorType) || !CODE_LOCATION.test(diagnostic?.codeLocation)) {
13
+ return base;
14
+ }
15
+ return `${base} (${diagnostic.errorType} at ${diagnostic.codeLocation})`;
16
+ }
@@ -28,6 +28,28 @@ const TAG_WRAPPER_PAIRS = new Map([
28
28
  ['(', ')'],
29
29
  ]);
30
30
  const TAG_WRAPPER_CHARS = new Set(['[', ']', '{', '}', '(', ')']);
31
+ const SCOPED_RENDERER_TAGS = new Set(['@markdown', '@latex', '@json', '@csv', '@shell']);
32
+ const KNOWN_META_TAGS = new Set([
33
+ '@footnote', '@monospace', '@heading', '@red', '@green', '@blue', '@grey',
34
+ '@highlighter', '@bold', '@italic', '@strikethrough', '@serif', '@copyable',
35
+ '@list-bulleted', '@list-numbered', '@username', '@password', '@email',
36
+ '@todo', '@done', '@markdown', '@llm', '@latex', '@shell', '@json', '@csv',
37
+ ]);
38
+
39
+ function isSupportedMetaTag(term) {
40
+ if (typeof term !== 'string') {
41
+ throw new Error('isSupportedMetaTag requires string');
42
+ }
43
+ if (!term.startsWith('@')) {
44
+ return true;
45
+ }
46
+ const folded = term.toLowerCase();
47
+ if (KNOWN_META_TAGS.has(folded)) {
48
+ return true;
49
+ }
50
+ return /^@size=(?:\d+(?:\.\d*)?|\.\d+)$/.test(folded)
51
+ && /[1-9]/.test(folded.slice('@size='.length));
52
+ }
31
53
 
32
54
  function isAsciiPrintable(char) {
33
55
  if (typeof char !== 'string' || char.length === 0) {
@@ -515,8 +537,10 @@ export function analyzeTagBarInput(rawInput) {
515
537
 
516
538
  const sanitizedSegments = [];
517
539
  const normalizedSegments = [];
540
+ let globalRenderer = null;
518
541
  for (const segment of segments) {
519
542
  normalizedSegments.push(segment.text);
543
+ let sanitizedToken = segment.text;
520
544
  if (segment.type === 'token') {
521
545
  const wrapperInfo = analyzeUnclosedWrapperTokenInfo(segment.text);
522
546
  if (wrapperInfo) {
@@ -530,8 +554,42 @@ export function analyzeTagBarInput(rawInput) {
530
554
  hasReservedOrTag = true;
531
555
  continue;
532
556
  }
557
+ if (closedWrapperInfo) {
558
+ let scopedRenderer = null;
559
+ const retainedTerms = tagTerms.filter((term) => {
560
+ if (!isSupportedMetaTag(term)) {
561
+ return false;
562
+ }
563
+ const renderer = term.toLowerCase();
564
+ if (!SCOPED_RENDERER_TAGS.has(renderer)) {
565
+ return true;
566
+ }
567
+ if (scopedRenderer !== null && scopedRenderer !== renderer) {
568
+ return false;
569
+ }
570
+ scopedRenderer = renderer;
571
+ return true;
572
+ });
573
+ if (retainedTerms.length === 0) {
574
+ continue;
575
+ }
576
+ const opener = segment.text[0];
577
+ const prefix = opener.repeat(closedWrapperInfo.depth);
578
+ const suffix = TAG_WRAPPER_PAIRS.get(opener).repeat(closedWrapperInfo.depth);
579
+ sanitizedToken = `${prefix}${retainedTerms.join(' ')}${suffix}`;
580
+ } else if (!isSupportedMetaTag(segment.text)) {
581
+ continue;
582
+ } else {
583
+ const renderer = segment.text.toLowerCase();
584
+ if (SCOPED_RENDERER_TAGS.has(renderer)) {
585
+ if (globalRenderer !== null && globalRenderer !== renderer) {
586
+ continue;
587
+ }
588
+ globalRenderer = renderer;
589
+ }
590
+ }
533
591
  }
534
- sanitizedSegments.push(segment.text);
592
+ sanitizedSegments.push(sanitizedToken);
535
593
  }
536
594
 
537
595
  const sanitizedText = sanitizedSegments.join(' ').trim();
@@ -1,3 +1,3 @@
1
1
  """Single authoritative MetaList application version."""
2
2
 
3
- __version__ = "0.7.4"
3
+ __version__ = "0.7.6"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metalist
3
- Version: 0.7.4
3
+ Version: 0.7.6
4
4
  Summary: A minimalist single-user note-taking app with SSR, fast in-memory tree operations, and efficient sync.
5
5
  Project-URL: Homepage, https://github.com/evolvingstuff/metalist
6
6
  Project-URL: Repository, https://github.com/evolvingstuff/metalist
@@ -48,6 +48,11 @@ A minimalist single-user note-taking app focused on server-side rendering (SSR),
48
48
  - Multi-tab search contexts with server-persisted scroll/search state (survives browser restarts)
49
49
  - Manual namespace backups/restores to a user-selected backup folder with retention controls
50
50
 
51
+ ## Changes in 0.7.5
52
+
53
+ - Unexpected API 500 errors now show the exception class and MetaList source line in the browser, without exposing note contents, exception messages, or local filesystem paths.
54
+ - A local release command validates the exact cross-platform CI matrix, publishes only its tested artifacts, then verifies the public PyPI package in a clean installation.
55
+
51
56
  ## Changes in 0.7.4
52
57
 
53
58
  - Updates use a private, checksum-verified uv release on Windows, macOS, and Linux. The updater does not execute a user-installed uv, and it revalidates both the cached official archive and extracted executable before each use.
@@ -70,6 +70,7 @@ app/presentation/render/__init__.py
70
70
  app/presentation/render/note_renderer.py
71
71
  app/security/authenticated_logging.py
72
72
  app/security/encryption.py
73
+ app/security/http_error_diagnostics.py
73
74
  app/security/http_headers.py
74
75
  app/security/note_html.py
75
76
  app/security/request_boundary.py
@@ -224,6 +225,7 @@ app/static/js/namespace-deleted.js
224
225
  app/static/js/namespace-renamed.js
225
226
  app/static/js/modules/activity-tracker.js
226
227
  app/static/js/modules/api-client.js
228
+ app/static/js/modules/api-error-diagnostics.js
227
229
  app/static/js/modules/api-failure-classification-service.js
228
230
  app/static/js/modules/app-update-service.js
229
231
  app/static/js/modules/application-state.js
@@ -77,6 +77,8 @@ app = [
77
77
  release = [
78
78
  "build==1.6.1",
79
79
  "pip-audit==2.10.1",
80
+ "requests==2.34.2",
81
+ "rich==14.3.4",
80
82
  "setuptools==83.0.0",
81
83
  "uv==0.11.23",
82
84
  "wheel==0.48.0",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes