Invalid custom filter regex becomes HTTP 500 instead of a query error

オープン
#192 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@TimeToBuildBob がすでに取り組んでいます。

2026年10月28日 から。

  • #193 @TimeToBuildBob による — オープン

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
20/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
flask, python
領域
api, backend

調査の方向性

Start at the query-function boundary for filter_keyvals_regex and trace how regex compilation errors become query errors; the issue names the offline Flask query route as the integration point. Check existing QueryFunctionException and QueryExecutionError handling, then review regression coverage for empty and populated input, valid matching and nonmatching patterns, and the HTTP route. Done means malformed patterns return HTTP 400 with a useful diagnostic while valid matching and the stated TypeError behavior remain intact.

索引モデルが issue の本文から書いたものです。

説明

Reproduced on current master c7821899ab38c1a39c87d7bf011c22a78de9b205 with the real offline Flask query route (aw-server 994ea988, MemoryStorage, query cache disabled): RETURN = filter_keyvals_regex([], "title", "["); returns HTTP 500 with an uncaught regex compilation error. A valid regex returns HTTP 200.

Expected: malformed custom AQL filter patterns raise the existing QueryFunctionException/QueryExecutionError hierarchy and return HTTP 400 with a useful diagnostic. This is separate from category-rule invalid-regex handling fixed in ActivityWatch/aw-core#176.

Scope: translate regex compilation errors at the query-function boundary only; preserve the low-level transform contract, valid matching, and event-data TypeError behavior. Regression coverage should include empty/populated input, valid matching/nonmatching patterns, and the actual offline HTTP route. I am preparing the scoped repair.

主要言語
Python
スター
65
フォーク
74
平均マージ
3日 8時間
マージ済み PR(30日)
4

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ActivityWatch/aw-core のほかの issue

ActivityWatch/aw-core の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。