feat: add user_id index to profiles table for faster lookups

The profiles table previously lacked an index on the user_id column, causing full table scans during user lookups. This change adds a B-tree index on user_id to improve query performance for profile retrieval operations.
This commit is contained in:
2026-06-11 23:35:31 +00:00
parent 7229e2e64e
commit 56da963440
55 changed files with 5563 additions and 0 deletions
+14
View File
@@ -0,0 +1,14 @@
{
"agent": "seo",
"mode": "check",
"started_at": "2026-06-12T00:51:19.794707",
"finished_at": "2026-06-12T00:52:22.621735",
"summary": {
"total": 0,
"errors": 0,
"warnings": 0,
"fixed": 0,
"unfixed": 0
},
"findings": []
}
+11
View File
@@ -0,0 +1,11 @@
# seo report (check)
- total: 0
- errors: 0
- warnings: 0
- fixed: 0
- unfixed: 0
## Findings
None.
+18
View File
@@ -0,0 +1,18 @@
{
"agent": "seo",
"mode": "check",
"started_at": "2026-06-12T01:34:02.164037",
"finished_at": "2026-06-12T01:34:16.966318",
"summary": {
"total": 0,
"errors": 0,
"warnings": 0,
"fixed": 0,
"unfixed": 0
},
"cost": {
"run_usd": "0.00151031",
"session_usd": "0.00151031"
},
"findings": []
}
+11
View File
@@ -0,0 +1,11 @@
# seo report (check)
- total: 0
- errors: 0
- warnings: 0
- fixed: 0
- unfixed: 0
## Findings
None.
+135
View File
@@ -0,0 +1,135 @@
{
"agent": "style",
"mode": "check",
"started_at": "2026-06-12T00:52:57.094561",
"finished_at": "2026-06-12T00:54:21.002389",
"summary": {
"total": 12,
"errors": 7,
"warnings": 5,
"fixed": 0,
"unfixed": 12
},
"findings": [
{
"severity": "error",
"dimension": "coding-rule-compliance",
"file": "devplacepy/services/bot/llm.py",
"line": 105,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in string literal \u2014 must be hyphen instead",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "coding-rule-compliance",
"file": "agents/agent.py",
"line": 30,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in docstring \u2014 must be hyphen instead",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "coding-rule-compliance",
"file": "agents/agent.py",
"line": 1732,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in string literal \u2014 must be hyphen instead",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "coding-rule-compliance",
"file": "agents/agent.py",
"line": 2217,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in instruction string \u2014 must be hyphen instead",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "coding-rule-compliance",
"file": "agents/agent.py",
"line": 2250,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in string literal \u2014 must be hyphen instead",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "coding-rule-compliance",
"file": "agents/agent.py",
"line": 2293,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in string literal \u2014 must be hyphen instead",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "coding-rule-compliance",
"file": "agents/style.py",
"line": 38,
"rule": "em-dash",
"message": "HTML entity — and — used in rule definition \u2014 must use hyphen instead",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "coding-rule-compliance",
"file": "review.md",
"line": 1,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used throughout documentation prose in multiple lines",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "coding-rule-compliance",
"file": "notifs.md",
"line": 256,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in documentation prose",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "coding-rule-compliance",
"file": "devplace.md",
"line": 1,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in documentation prose throughout multiple lines",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "coding-rule-compliance",
"file": "visuals.md",
"line": 8,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in documentation prose throughout multiple lines",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "coding-rule-compliance",
"file": "session-ses_1eae.md",
"line": 37,
"rule": "em-dash",
"message": "Em-dash character (U+2014) and — HTML entity used throughout session log prose",
"fixed": false,
"fix_summary": ""
}
]
}
+37
View File
@@ -0,0 +1,37 @@
# style report (check)
- total: 12
- errors: 7
- warnings: 5
- fixed: 0
- unfixed: 12
## Findings
### agents/agent.py
- [error] em-dash:30: Em-dash character (U+2014) used in docstring — must be hyphen instead
- [error] em-dash:1732: Em-dash character (U+2014) used in string literal — must be hyphen instead
- [error] em-dash:2217: Em-dash character (U+2014) used in instruction string — must be hyphen instead
- [error] em-dash:2250: Em-dash character (U+2014) used in string literal — must be hyphen instead
- [error] em-dash:2293: Em-dash character (U+2014) used in string literal — must be hyphen instead
### agents/style.py
- [error] em-dash:38: HTML entity — and — used in rule definition — must use hyphen instead
### devplace.md
- [warning] em-dash:1: Em-dash character (U+2014) used in documentation prose throughout multiple lines
### devplacepy/services/bot/llm.py
- [error] em-dash:105: Em-dash character (U+2014) used in string literal — must be hyphen instead
### notifs.md
- [warning] em-dash:256: Em-dash character (U+2014) used in documentation prose
### review.md
- [warning] em-dash:1: Em-dash character (U+2014) used throughout documentation prose in multiple lines
### session-ses_1eae.md
- [warning] em-dash:37: Em-dash character (U+2014) and — HTML entity used throughout session log prose
### visuals.md
- [warning] em-dash:8: Em-dash character (U+2014) used in documentation prose throughout multiple lines
+495
View File
@@ -0,0 +1,495 @@
{
"agent": "style",
"mode": "check",
"started_at": "2026-06-12T00:57:46.956032",
"finished_at": "2026-06-12T01:01:12.646284",
"summary": {
"total": 48,
"errors": 13,
"warnings": 32,
"fixed": 0,
"unfixed": 48
},
"findings": [
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/utils.py",
"line": 434,
"rule": "forbidden-suffix-_info",
"message": "Function name 'badge_info' uses forbidden suffix '_info'",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/push.py",
"line": 246,
"rule": "forbidden-suffix-_info",
"message": "Variable name 'notification_info' uses forbidden suffix '_info'",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/routers/services.py",
"line": 44,
"rule": "forbidden-suffix-_data",
"message": "Function name 'services_data' uses forbidden suffix '_data'",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/routers/services.py",
"line": 84,
"rule": "forbidden-suffix-_data",
"message": "Function name 'service_detail_data' uses forbidden suffix '_data'",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/routers/containers.py",
"line": 112,
"rule": "forbidden-suffix-_data",
"message": "Function name 'containers_data' uses forbidden suffix '_data'",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/routers/containers_admin.py",
"line": 70,
"rule": "forbidden-suffix-_data",
"message": "Function name 'containers_index_data' uses forbidden suffix '_data'",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/routers/admin.py",
"line": 109,
"rule": "forbidden-suffix-_data",
"message": "Function name 'admin_ai_usage_data' uses forbidden suffix '_data'",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/services/devii/actions/catalog.py",
"line": 1046,
"rule": "forbidden-suffix-_data",
"message": "Action name 'admin_services_data' uses forbidden suffix '_data'",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/routers/gists.py",
"line": 91,
"rule": "forbidden-suffix-_data",
"message": "Variable name 'gists_data' uses forbidden suffix '_data'",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/services/jobs/base.py",
"line": 109,
"rule": "forbidden-suffix-_data",
"message": "Parameter name 'result_data' uses forbidden suffix '_data'",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/services/devii/session.py",
"line": 264,
"rule": "forbidden-prefix-best_",
"message": "Variable name 'best_rank' uses forbidden prefix 'best_'",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/schemas.py",
"line": 156,
"rule": "forbidden-prefix-my_",
"message": "Field name 'my_choice' uses forbidden prefix 'my_' (public API field in PollOut schema)",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/schemas.py",
"line": 265,
"rule": "forbidden-prefix-my_",
"message": "Field name 'my_vote' uses forbidden prefix 'my_' (public API field repeated across multiple schemas)",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/database.py",
"line": 589,
"rule": "forbidden-prefix-my_",
"message": "Variable name 'my_placeholders' uses forbidden prefix 'my_'",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/database.py",
"line": 589,
"rule": "forbidden-prefix-my_",
"message": "Variable name 'my_params' uses forbidden prefix 'my_'",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/database.py",
"line": 646,
"rule": "forbidden-prefix-my_",
"message": "Variable name 'my_choice' uses forbidden prefix 'my_'",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "forbidden-names",
"file": "devplacepy/database.py",
"line": 692,
"rule": "forbidden-prefix-my_",
"message": "Variable name 'my_votes' uses forbidden prefix 'my_'",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "headers",
"file": "devplacepy/main.py",
"line": 1,
"rule": "missing-retoor-header",
"message": "Missing mandatory retoor header as first line in devplacepy core module",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "headers",
"file": "devplacepy/database.py",
"line": 1,
"rule": "missing-retoor-header",
"message": "Missing mandatory retoor header as first line",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "headers",
"file": "devplacepy/schemas.py",
"line": 1,
"rule": "missing-retoor-header",
"message": "Missing mandatory retoor header as first line",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "headers",
"file": "devplacepy/utils.py",
"line": 1,
"rule": "missing-retoor-header",
"message": "Missing mandatory retoor header as first line",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "headers",
"file": "devplacepy/models.py",
"line": 1,
"rule": "missing-retoor-header",
"message": "Missing mandatory retoor header as first line",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "headers",
"file": "devplacepy/config.py",
"line": 1,
"rule": "missing-retoor-header",
"message": "Missing mandatory retoor header as first line",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "headers",
"file": "devplacepy/routers/admin.py",
"line": 1,
"rule": "missing-retoor-header",
"message": "Missing mandatory retoor header - many files in devplacepy/routers/ directory missing header",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "headers",
"file": "devplacepy/services/base.py",
"line": 1,
"rule": "missing-retoor-header",
"message": "Missing mandatory retoor header - many files in devplacepy/services/ directory missing header",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "headers",
"file": "devplacepy/services/bot/bot.py",
"line": 1,
"rule": "missing-retoor-header",
"message": "Missing mandatory retoor header - bot service files missing header",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "headers",
"file": "devplacepy/services/openai_gateway/gateway.py",
"line": 1,
"rule": "missing-retoor-header",
"message": "Missing mandatory retoor header - gateway service files missing header",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "headers",
"file": "devplacepy/static/js/ApiDocs.js",
"line": 1,
"rule": "missing-retoor-header",
"message": "Missing mandatory retoor header - many JS files in devplacepy/static/js/ missing header (e.g., ApiDocs.js, ApiKeyManager.js, ApiTester.js, Application.js, etc.)",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "headers",
"file": "devplacepy/static/css/base.css",
"line": 1,
"rule": "missing-retoor-header",
"message": "Missing mandatory retoor header - many CSS files missing header (e.g., base.css, variables.css, post.css, auth.css, etc.)",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "headers",
"file": "devplacepy/templates/base.html",
"line": 1,
"rule": "missing-retoor-header",
"message": "Missing mandatory retoor header - HTML template files missing header",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "typing",
"file": "devplacepy/cli.py",
"line": 7,
"rule": "missing-type-annotations",
"message": "Function '_audit_cli' missing type annotations for all parameters and return type",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "typing",
"file": "devplacepy/seo.py",
"line": 20,
"rule": "missing-type-annotations",
"message": "Function 'truncate' missing type annotations for 'text' parameter and return type",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "typing",
"file": "devplacepy/attachments.py",
"line": 109,
"rule": "missing-type-annotations",
"message": "Function 'allowed_extensions' missing return type annotation",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "typing",
"file": "devplacepy/templating.py",
"line": 21,
"rule": "missing-type-annotations",
"message": "Function 'guest_disabled' missing type annotations for 'user' parameter and return type",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "typing",
"file": "devplacepy/templating.py",
"line": 27,
"rule": "missing-type-annotations",
"message": "Function 'login_hint' missing type annotations for 'user' parameter and return type",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "typing",
"file": "devplacepy/main.py",
"line": 97,
"rule": "missing-type-annotations",
"message": "Function 'init_lock' missing return type annotation",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "typing",
"file": "devplacepy/database.py",
"line": 94,
"rule": "missing-type-annotations",
"message": "Function '_index' missing type annotations for all parameters",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "typing",
"file": "devplacepy/database.py",
"line": 103,
"rule": "missing-type-annotations",
"message": "Function 'init_db' missing return type annotation",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "typing",
"file": "devplacepy/seo.py",
"line": 36,
"rule": "missing-type-annotations",
"message": "Function 'site_url' missing type annotations for 'request' parameter and return type",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "typing",
"file": "devplacepy/cli.py",
"line": 7,
"rule": "missing-type-annotations-bulk",
"message": "Many functions in devplacepy/cli.py, seo.py, attachments.py, templating.py, docs_api.py, docs_examples.py, database.py lack full type annotations on parameters and return types",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "pathlib",
"file": "devplacepy/services/jobs/zip_worker.py",
"line": 22,
"rule": "use-pathlib",
"message": "Uses os.path.getsize, os.path.join, os.path.relpath, os.path.isdir instead of pathlib.Path equivalents",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "pathlib",
"file": "devplacepy/services/bot/registry.py",
"line": 47,
"rule": "use-pathlib",
"message": "Uses os.path.getsize instead of Path.stat().st_size",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "pathlib",
"file": "devplacepy/project_files.py",
"line": 528,
"rule": "use-pathlib",
"message": "Uses os.walk instead of Path.rglob or Path.iterdir",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "pathlib",
"file": "devplacepy/services/jobs/zip_worker.py",
"line": 18,
"rule": "use-pathlib",
"message": "Uses os.walk instead of pathlib.Path.rglob",
"fixed": false,
"fix_summary": ""
},
{
"severity": "warning",
"dimension": "magic-numbers",
"file": "devplacepy/routers/avatar.py",
"line": 12,
"rule": "magic-number",
"message": "Magic number 4096 used as cache max_size; should be a named constant",
"fixed": false,
"fix_summary": ""
},
{
"severity": "info",
"dimension": "magic-numbers",
"file": "devplacepy/attachments.py",
"line": 106,
"rule": "magic-number",
"message": "Magic number 1024*1024 used repeatedly for bytes conversion; should use a named constant like BYTES_PER_MB",
"fixed": false,
"fix_summary": ""
},
{
"severity": "info",
"dimension": "magic-numbers",
"file": "devplacepy/attachments.py",
"line": 499,
"rule": "magic-number",
"message": "Repeated literal 1024 in format_file_size; should use named constant",
"fixed": false,
"fix_summary": ""
},
{
"severity": "info",
"dimension": "version-pinning",
"file": "pyproject.toml",
"line": 0,
"rule": "no-pinning-convention",
"message": "No version pinning found in pyproject.toml - dependencies use unversioned constraints (which is the desired pattern)",
"fixed": false,
"fix_summary": ""
}
]
}
+117
View File
@@ -0,0 +1,117 @@
# style report (check)
- total: 48
- errors: 13
- warnings: 32
- fixed: 0
- unfixed: 48
## Findings
### devplacepy/attachments.py
- [warning] missing-type-annotations:109: Function 'allowed_extensions' missing return type annotation
- [info] magic-number:106: Magic number 1024*1024 used repeatedly for bytes conversion; should use a named constant like BYTES_PER_MB
- [info] magic-number:499: Repeated literal 1024 in format_file_size; should use named constant
### devplacepy/cli.py
- [warning] missing-type-annotations:7: Function '_audit_cli' missing type annotations for all parameters and return type
- [warning] missing-type-annotations-bulk:7: Many functions in devplacepy/cli.py, seo.py, attachments.py, templating.py, docs_api.py, docs_examples.py, database.py lack full type annotations on parameters and return types
### devplacepy/config.py
- [error] missing-retoor-header:1: Missing mandatory retoor header as first line
### devplacepy/database.py
- [warning] forbidden-prefix-my_:589: Variable name 'my_placeholders' uses forbidden prefix 'my_'
- [warning] forbidden-prefix-my_:589: Variable name 'my_params' uses forbidden prefix 'my_'
- [warning] forbidden-prefix-my_:646: Variable name 'my_choice' uses forbidden prefix 'my_'
- [warning] forbidden-prefix-my_:692: Variable name 'my_votes' uses forbidden prefix 'my_'
- [error] missing-retoor-header:1: Missing mandatory retoor header as first line
- [warning] missing-type-annotations:94: Function '_index' missing type annotations for all parameters
- [warning] missing-type-annotations:103: Function 'init_db' missing return type annotation
### devplacepy/main.py
- [error] missing-retoor-header:1: Missing mandatory retoor header as first line in devplacepy core module
- [warning] missing-type-annotations:97: Function 'init_lock' missing return type annotation
### devplacepy/models.py
- [error] missing-retoor-header:1: Missing mandatory retoor header as first line
### devplacepy/project_files.py
- [warning] use-pathlib:528: Uses os.walk instead of Path.rglob or Path.iterdir
### devplacepy/push.py
- [warning] forbidden-suffix-_info:246: Variable name 'notification_info' uses forbidden suffix '_info'
### devplacepy/routers/admin.py
- [warning] forbidden-suffix-_data:109: Function name 'admin_ai_usage_data' uses forbidden suffix '_data'
- [error] missing-retoor-header:1: Missing mandatory retoor header - many files in devplacepy/routers/ directory missing header
### devplacepy/routers/avatar.py
- [warning] magic-number:12: Magic number 4096 used as cache max_size; should be a named constant
### devplacepy/routers/containers.py
- [warning] forbidden-suffix-_data:112: Function name 'containers_data' uses forbidden suffix '_data'
### devplacepy/routers/containers_admin.py
- [warning] forbidden-suffix-_data:70: Function name 'containers_index_data' uses forbidden suffix '_data'
### devplacepy/routers/gists.py
- [warning] forbidden-suffix-_data:91: Variable name 'gists_data' uses forbidden suffix '_data'
### devplacepy/routers/services.py
- [warning] forbidden-suffix-_data:44: Function name 'services_data' uses forbidden suffix '_data'
- [warning] forbidden-suffix-_data:84: Function name 'service_detail_data' uses forbidden suffix '_data'
### devplacepy/schemas.py
- [warning] forbidden-prefix-my_:156: Field name 'my_choice' uses forbidden prefix 'my_' (public API field in PollOut schema)
- [warning] forbidden-prefix-my_:265: Field name 'my_vote' uses forbidden prefix 'my_' (public API field repeated across multiple schemas)
- [error] missing-retoor-header:1: Missing mandatory retoor header as first line
### devplacepy/seo.py
- [warning] missing-type-annotations:20: Function 'truncate' missing type annotations for 'text' parameter and return type
- [warning] missing-type-annotations:36: Function 'site_url' missing type annotations for 'request' parameter and return type
### devplacepy/services/base.py
- [error] missing-retoor-header:1: Missing mandatory retoor header - many files in devplacepy/services/ directory missing header
### devplacepy/services/bot/bot.py
- [error] missing-retoor-header:1: Missing mandatory retoor header - bot service files missing header
### devplacepy/services/bot/registry.py
- [warning] use-pathlib:47: Uses os.path.getsize instead of Path.stat().st_size
### devplacepy/services/devii/actions/catalog.py
- [warning] forbidden-suffix-_data:1046: Action name 'admin_services_data' uses forbidden suffix '_data'
### devplacepy/services/devii/session.py
- [warning] forbidden-prefix-best_:264: Variable name 'best_rank' uses forbidden prefix 'best_'
### devplacepy/services/jobs/base.py
- [warning] forbidden-suffix-_data:109: Parameter name 'result_data' uses forbidden suffix '_data'
### devplacepy/services/jobs/zip_worker.py
- [warning] use-pathlib:22: Uses os.path.getsize, os.path.join, os.path.relpath, os.path.isdir instead of pathlib.Path equivalents
- [warning] use-pathlib:18: Uses os.walk instead of pathlib.Path.rglob
### devplacepy/services/openai_gateway/gateway.py
- [error] missing-retoor-header:1: Missing mandatory retoor header - gateway service files missing header
### devplacepy/static/css/base.css
- [error] missing-retoor-header:1: Missing mandatory retoor header - many CSS files missing header (e.g., base.css, variables.css, post.css, auth.css, etc.)
### devplacepy/static/js/ApiDocs.js
- [error] missing-retoor-header:1: Missing mandatory retoor header - many JS files in devplacepy/static/js/ missing header (e.g., ApiDocs.js, ApiKeyManager.js, ApiTester.js, Application.js, etc.)
### devplacepy/templates/base.html
- [error] missing-retoor-header:1: Missing mandatory retoor header - HTML template files missing header
### devplacepy/templating.py
- [warning] missing-type-annotations:21: Function 'guest_disabled' missing type annotations for 'user' parameter and return type
- [warning] missing-type-annotations:27: Function 'login_hint' missing type annotations for 'user' parameter and return type
### devplacepy/utils.py
- [warning] forbidden-suffix-_info:434: Function name 'badge_info' uses forbidden suffix '_info'
- [error] missing-retoor-header:1: Missing mandatory retoor header as first line
### pyproject.toml
- [info] no-pinning-convention: No version pinning found in pyproject.toml - dependencies use unversioned constraints (which is the desired pattern)
+95
View File
@@ -0,0 +1,95 @@
{
"agent": "style",
"mode": "check",
"started_at": "2026-06-12T01:02:02.351939",
"finished_at": "2026-06-12T01:03:54.924366",
"summary": {
"total": 8,
"errors": 8,
"warnings": 0,
"fixed": 0,
"unfixed": 8
},
"findings": [
{
"severity": "error",
"dimension": "em-dash",
"file": "agents/agent.py",
"line": 30,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in docstring \u2014 must be hyphen instead",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "em-dash",
"file": "agents/agent.py",
"line": 1732,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in string literal \u2014 must be hyphen instead",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "em-dash",
"file": "agents/agent.py",
"line": 2217,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in instruction string \u2014 must be hyphen instead",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "em-dash",
"file": "agents/agent.py",
"line": 2250,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in string literal \u2014 must be hyphen instead",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "em-dash",
"file": "agents/agent.py",
"line": 2293,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in string literal \u2014 must be hyphen instead",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "em-dash",
"file": "devplacepy/services/bot/llm.py",
"line": 105,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in string literal as replace target \u2014 must be hyphen or unicode escape instead",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "em-dash",
"file": "tests/test_demo.py.bak",
"line": 36,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in comments throughout file \u2014 must be hyphen instead",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "em-dash",
"file": "tests/test_demo.py.bak",
"line": 277,
"rule": "em-dash",
"message": "Em-dash character (U+2014) used in string literal \u2014 must be hyphen instead",
"fixed": false,
"fix_summary": ""
}
]
}
+23
View File
@@ -0,0 +1,23 @@
# style report (check)
- total: 8
- errors: 8
- warnings: 0
- fixed: 0
- unfixed: 8
## Findings
### agents/agent.py
- [error] em-dash:30: Em-dash character (U+2014) used in docstring — must be hyphen instead
- [error] em-dash:1732: Em-dash character (U+2014) used in string literal — must be hyphen instead
- [error] em-dash:2217: Em-dash character (U+2014) used in instruction string — must be hyphen instead
- [error] em-dash:2250: Em-dash character (U+2014) used in string literal — must be hyphen instead
- [error] em-dash:2293: Em-dash character (U+2014) used in string literal — must be hyphen instead
### devplacepy/services/bot/llm.py
- [error] em-dash:105: Em-dash character (U+2014) used in string literal as replace target — must be hyphen or unicode escape instead
### tests/test_demo.py.bak
- [error] em-dash:36: Em-dash character (U+2014) used in comments throughout file — must be hyphen instead
- [error] em-dash:277: Em-dash character (U+2014) used in string literal — must be hyphen instead
+14
View File
@@ -0,0 +1,14 @@
{
"agent": "style",
"mode": "check",
"started_at": "2026-06-12T01:02:35.851370",
"finished_at": "2026-06-12T01:05:34.005737",
"summary": {
"total": 0,
"errors": 0,
"warnings": 0,
"fixed": 0,
"unfixed": 0
},
"findings": []
}
+11
View File
@@ -0,0 +1,11 @@
# style report (check)
- total: 0
- errors: 0
- warnings: 0
- fixed: 0
- unfixed: 0
## Findings
None.
+125
View File
@@ -0,0 +1,125 @@
{
"agent": "style",
"mode": "check",
"started_at": "2026-06-12T01:05:50.761027",
"finished_at": "2026-06-12T01:07:16.324649",
"summary": {
"total": 11,
"errors": 6,
"warnings": 0,
"fixed": 0,
"unfixed": 11
},
"findings": [
{
"severity": "error",
"dimension": "em-dash",
"file": "agents/agent.py",
"line": 30,
"rule": "no-em-dash",
"message": "Em-dash character (U+2014) used in comment text instead of a hyphen.",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "em-dash",
"file": "agents/agent.py",
"line": 1732,
"rule": "no-em-dash",
"message": "Em-dash character (U+2014) used in advice string literal instead of a hyphen.",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "em-dash",
"file": "agents/agent.py",
"line": 2217,
"rule": "no-em-dash",
"message": "Em-dash character (U+2014) used in comment text instead of a hyphen.",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "em-dash",
"file": "agents/agent.py",
"line": 2250,
"rule": "no-em-dash",
"message": "Em-dash character (U+2014) used in f-string instead of a hyphen.",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "em-dash",
"file": "agents/agent.py",
"line": 2293,
"rule": "no-em-dash",
"message": "Em-dash character (U+2014) used in argparse description string instead of a hyphen.",
"fixed": false,
"fix_summary": ""
},
{
"severity": "error",
"dimension": "em-dash",
"file": "devplacepy/services/bot/llm.py",
"line": 105,
"rule": "no-em-dash",
"message": "Em-dash character (U+2014) used in string literal for text.replace() instead of a hyphen or escape sequence.",
"fixed": false,
"fix_summary": ""
},
{
"severity": "info",
"dimension": "em-dash",
"file": "tests/test_demo.py.bak",
"line": 36,
"rule": "no-em-dash",
"message": "Backup test file contains 15 em-dash characters (U+2014) in comments and string literals.",
"fixed": false,
"fix_summary": ""
},
{
"severity": "info",
"dimension": "em-dash",
"file": "review.md",
"line": 1,
"rule": "no-em-dash",
"message": "Documentation file review.md uses em-dash characters throughout (standard English prose, not code).",
"fixed": false,
"fix_summary": ""
},
{
"severity": "info",
"dimension": "em-dash",
"file": "notifs.md",
"line": 256,
"rule": "no-em-dash",
"message": "Documentation file notifs.md uses em-dash characters throughout (standard English prose, not code).",
"fixed": false,
"fix_summary": ""
},
{
"severity": "info",
"dimension": "em-dash",
"file": "devplace.md",
"line": 1,
"rule": "no-em-dash",
"message": "Documentation file devplace.md uses em-dash characters throughout (standard English prose, not code).",
"fixed": false,
"fix_summary": ""
},
{
"severity": "info",
"dimension": "em-dash",
"file": "visuals.md",
"line": 8,
"rule": "no-em-dash",
"message": "Documentation file visuals.md uses em-dash characters throughout (standard English prose, not code).",
"fixed": false,
"fix_summary": ""
}
]
}
+34
View File
@@ -0,0 +1,34 @@
# style report (check)
- total: 11
- errors: 6
- warnings: 0
- fixed: 0
- unfixed: 11
## Findings
### agents/agent.py
- [error] no-em-dash:30: Em-dash character (U+2014) used in comment text instead of a hyphen.
- [error] no-em-dash:1732: Em-dash character (U+2014) used in advice string literal instead of a hyphen.
- [error] no-em-dash:2217: Em-dash character (U+2014) used in comment text instead of a hyphen.
- [error] no-em-dash:2250: Em-dash character (U+2014) used in f-string instead of a hyphen.
- [error] no-em-dash:2293: Em-dash character (U+2014) used in argparse description string instead of a hyphen.
### devplace.md
- [info] no-em-dash:1: Documentation file devplace.md uses em-dash characters throughout (standard English prose, not code).
### devplacepy/services/bot/llm.py
- [error] no-em-dash:105: Em-dash character (U+2014) used in string literal for text.replace() instead of a hyphen or escape sequence.
### notifs.md
- [info] no-em-dash:256: Documentation file notifs.md uses em-dash characters throughout (standard English prose, not code).
### review.md
- [info] no-em-dash:1: Documentation file review.md uses em-dash characters throughout (standard English prose, not code).
### tests/test_demo.py.bak
- [info] no-em-dash:36: Backup test file contains 15 em-dash characters (U+2014) in comments and string literals.
### visuals.md
- [info] no-em-dash:8: Documentation file visuals.md uses em-dash characters throughout (standard English prose, not code).
+85
View File
@@ -0,0 +1,85 @@
{
"agent": "style",
"mode": "fix",
"started_at": "2026-06-12T01:08:04.361327",
"finished_at": "2026-06-12T01:10:20.066323",
"summary": {
"total": 7,
"errors": 5,
"warnings": 0,
"fixed": 5,
"unfixed": 2
},
"findings": [
{
"severity": "error",
"dimension": "coding-rule-compliance",
"file": "agents/agent.py",
"line": 30,
"rule": "no-em-dash",
"message": "Em-dash character (U+2014) used instead of hyphen in docstring",
"fixed": true,
"fix_summary": "Replaced em-dash with hyphen in docstring about Chrome-accurate header order"
},
{
"severity": "error",
"dimension": "coding-rule-compliance",
"file": "agents/agent.py",
"line": 1732,
"rule": "no-em-dash",
"message": "Em-dash character (U+2014) used instead of hyphen in advice string literal",
"fixed": true,
"fix_summary": "Replaced em-dash with hyphen in plan confidence advice string"
},
{
"severity": "error",
"dimension": "coding-rule-compliance",
"file": "agents/agent.py",
"line": 2217,
"rule": "no-em-dash",
"message": "Em-dash character (U+2014) used instead of hyphen in SYSTEM_PROMPT string",
"fixed": true,
"fix_summary": "Replaced em-dash with hyphen in operating protocol text"
},
{
"severity": "error",
"dimension": "coding-rule-compliance",
"file": "agents/agent.py",
"line": 2250,
"rule": "no-em-dash",
"message": "Em-dash character (U+2014) used instead of hyphen in _with_datetime() f-string",
"fixed": true,
"fix_summary": "Replaced em-dash with hyphen in datetime message string"
},
{
"severity": "error",
"dimension": "coding-rule-compliance",
"file": "agents/agent.py",
"line": 2293,
"rule": "no-em-dash",
"message": "Em-dash character (U+2014) used instead of hyphen in argparse description",
"fixed": true,
"fix_summary": "Replaced em-dash with hyphen in argument parser description"
},
{
"severity": "info",
"dimension": "coding-rule-compliance",
"file": "devplacepy/services/bot/llm.py",
"line": 105,
"rule": "no-em-dash",
"message": "Em-dash characters in llm.py replace() pattern are intentional data processing logic; not changed",
"fixed": false,
"fix_summary": ""
},
{
"severity": "info",
"dimension": "coding-rule-compliance",
"file": "devplacepy/static/uploads/attachments/1a/64/1a640917-f599-4fce-8dc4-2babdb25f716.py",
"line": 3,
"rule": "no-em-dash",
"message": "Em-dash in user-uploaded attachment file; not project source",
"fixed": false,
"fix_summary": ""
}
]
}
+27
View File
@@ -0,0 +1,27 @@
# style report (fix)
- total: 7
- errors: 5
- warnings: 0
- fixed: 5
- unfixed: 2
## Findings
### agents/agent.py
- [fixed] no-em-dash:30: Em-dash character (U+2014) used instead of hyphen in docstring
fix: Replaced em-dash with hyphen in docstring about Chrome-accurate header order
- [fixed] no-em-dash:1732: Em-dash character (U+2014) used instead of hyphen in advice string literal
fix: Replaced em-dash with hyphen in plan confidence advice string
- [fixed] no-em-dash:2217: Em-dash character (U+2014) used instead of hyphen in SYSTEM_PROMPT string
fix: Replaced em-dash with hyphen in operating protocol text
- [fixed] no-em-dash:2250: Em-dash character (U+2014) used instead of hyphen in _with_datetime() f-string
fix: Replaced em-dash with hyphen in datetime message string
- [fixed] no-em-dash:2293: Em-dash character (U+2014) used instead of hyphen in argparse description
fix: Replaced em-dash with hyphen in argument parser description
### devplacepy/services/bot/llm.py
- [info] no-em-dash:105: Em-dash characters in llm.py replace() pattern are intentional data processing logic; not changed
### devplacepy/static/uploads/attachments/1a/64/1a640917-f599-4fce-8dc4-2babdb25f716.py
- [info] no-em-dash:3: Em-dash in user-uploaded attachment file; not project source