Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
400e500
Update test_artifact_content_type_and_path.py
rmusser01 Nov 2, 2025
8e73c04
Merge branch 'dev' of https://github.com/rmusser01/tldw_server into dev
rmusser01 Nov 2, 2025
27f74b7
fix
rmusser01 Nov 2, 2025
b2800ca
fixes
rmusser01 Nov 2, 2025
2129647
fixes
rmusser01 Nov 2, 2025
ccd63bf
fixes
rmusser01 Nov 2, 2025
96adaac
fixes
rmusser01 Nov 2, 2025
bc49d4c
fixes
rmusser01 Nov 2, 2025
48f9795
fixes
rmusser01 Nov 2, 2025
8d3026d
Update tldw_Server_API/app/core/TTS/adapters/openai_adapter.py
rmusser01 Nov 2, 2025
4c4e8bf
Update Docs/Getting-Started-STT_and_TTS.md
rmusser01 Nov 2, 2025
18bea9c
Update Docs/Getting-Started-STT_and_TTS.md
rmusser01 Nov 2, 2025
f3f7ad6
Update tldw_Server_API/app/core/Sandbox/service.py
rmusser01 Nov 2, 2025
5439691
Update tldw_Server_API/tests/sandbox/test_artifact_traversal_integrat…
rmusser01 Nov 2, 2025
7f93757
fixes
rmusser01 Nov 2, 2025
90e527e
Merge branch 'dev' of https://github.com/rmusser01/tldw_server into dev
rmusser01 Nov 2, 2025
9763ca2
Update openai_adapter.py
rmusser01 Nov 2, 2025
13d1030
fix
rmusser01 Nov 3, 2025
ffd1c7b
fixes
rmusser01 Nov 3, 2025
a18f8e6
fixes
rmusser01 Nov 3, 2025
9063223
fix
rmusser01 Nov 3, 2025
f5ec492
fixes
rmusser01 Nov 3, 2025
a5d3ef5
webui adds
rmusser01 Nov 3, 2025
1c9903c
Update .github/workflows/sbom.yml
rmusser01 Nov 3, 2025
4a53e49
fixes
rmusser01 Nov 3, 2025
da7ad02
Merge branch 'dev' of https://github.com/rmusser01/tldw_server into dev
rmusser01 Nov 3, 2025
bfc8aae
fixes
rmusser01 Nov 3, 2025
1486e6d
Update main.py
rmusser01 Nov 3, 2025
45ebef0
fixes
rmusser01 Nov 3, 2025
b93b11d
fixes
rmusser01 Nov 3, 2025
a6afe1f
Update circuit_breaker.py
rmusser01 Nov 3, 2025
349db3d
Update circuit_breaker.py
rmusser01 Nov 3, 2025
2245814
fixes
rmusser01 Nov 3, 2025
00f1036
stuff
rmusser01 Nov 3, 2025
a9d62ce
stuff
rmusser01 Nov 3, 2025
066917c
fixes
rmusser01 Nov 3, 2025
0d66be8
fixes + rewrites
rmusser01 Nov 3, 2025
e6a36f6
Update test_rg_capabilities_endpoint.py
rmusser01 Nov 3, 2025
79f888f
idk
rmusser01 Nov 4, 2025
96ebea9
ugh
rmusser01 Nov 4, 2025
9d84bec
ugh 2
rmusser01 Nov 4, 2025
ee86363
Sandbox+Adapter unification still WIP
rmusser01 Nov 5, 2025
8f687b5
fixes according to code rabbit
rmusser01 Nov 5, 2025
3c4abe7
Update conftest.py
rmusser01 Nov 5, 2025
599c624
fixes
rmusser01 Nov 5, 2025
3e36a12
fixes
rmusser01 Nov 5, 2025
a5e8e71
Update ci.yml
rmusser01 Nov 5, 2025
bced400
fixes
rmusser01 Nov 5, 2025
9972090
Update chat_fixtures.py
rmusser01 Nov 5, 2025
9e1a1f4
fixes
rmusser01 Nov 5, 2025
89c9ca7
fixes
rmusser01 Nov 5, 2025
c646195
Update orgs_teams.py
rmusser01 Nov 5, 2025
bd9f956
Update test_session_manager_configured_key.py
rmusser01 Nov 5, 2025
f0a84ab
Update session_manager.py
rmusser01 Nov 5, 2025
e6c46b2
Update test_l2_normalization_policy.py
rmusser01 Nov 5, 2025
55a4e9c
fix
rmusser01 Nov 6, 2025
c78b84c
fixes
rmusser01 Nov 6, 2025
069fcee
fixes
rmusser01 Nov 6, 2025
24f56a0
fixes
rmusser01 Nov 6, 2025
4e6702c
Update test_database_backends.py
rmusser01 Nov 6, 2025
33f1784
Update conftest.py
rmusser01 Nov 6, 2025
c14a69b
Update test_streaming_unified_benchmark.py
rmusser01 Nov 6, 2025
ed6319a
fix
rmusser01 Nov 6, 2025
a78f177
fix
rmusser01 Nov 6, 2025
8f08b9e
Update test_request_queue_workers.py
rmusser01 Nov 6, 2025
c6b2457
fixes
rmusser01 Nov 6, 2025
ff9ff41
fixes
rmusser01 Nov 7, 2025
566d459
benchmarking scrips
rmusser01 Nov 7, 2025
aa89995
fixes
rmusser01 Nov 7, 2025
445c358
fixes
rmusser01 Nov 7, 2025
bd4cffc
fixes
rmusser01 Nov 7, 2025
32cd014
fixes
rmusser01 Nov 7, 2025
0bab803
fixes+tts
rmusser01 Nov 7, 2025
6029568
Update test_resource_governor_endpoint.py
rmusser01 Nov 7, 2025
120a414
Update test_async_adapters.py
rmusser01 Nov 7, 2025
131f9de
fix
rmusser01 Nov 7, 2025
0dd9626
fixes
rmusser01 Nov 7, 2025
54ecd44
fixes
rmusser01 Nov 7, 2025
5b571fd
fixes
rmusser01 Nov 8, 2025
929c5ef
fixes
rmusser01 Nov 8, 2025
654828b
fixes
rmusser01 Nov 8, 2025
c289fa5
fixes
rmusser01 Nov 8, 2025
52b938e
fixes
rmusser01 Nov 8, 2025
e66993d
Update Education.md
rmusser01 Nov 8, 2025
1ac6b84
Update request_queue.py
rmusser01 Nov 8, 2025
06f5990
fixes+1st draft new user guide
rmusser01 Nov 8, 2025
846fbe2
fixes
rmusser01 Nov 8, 2025
d5e88c9
Potential fix for code scanning alert no. 920: Full server-side reque…
rmusser01 Nov 8, 2025
4c974d4
fixes
rmusser01 Nov 8, 2025
a6d4ee7
Merge branch 'dev' of https://github.com/rmusser01/tldw_server into dev
rmusser01 Nov 8, 2025
63d9177
chore: make pcm stream client executable
rmusser01 Nov 8, 2025
04f0d25
fixes
rmusser01 Nov 8, 2025
65341b4
fixe
rmusser01 Nov 8, 2025
f15c87d
fixes
rmusser01 Nov 8, 2025
ce8dc64
fixes
rmusser01 Nov 8, 2025
8248dab
tests: standardize provider tests to mock adapter http client; add pa…
rmusser01 Nov 8, 2025
3fc692f
tests: mock adapter http client across providers (openrouter/mistral/…
rmusser01 Nov 8, 2025
71b1942
adapters: normalize SSE and finalize streams for qwen/deepseek/huggin…
rmusser01 Nov 8, 2025
ad82dfd
fixes
rmusser01 Nov 8, 2025
7383a85
adapters: unify SSE normalization and finalize_stream for mistral/goo…
rmusser01 Nov 8, 2025
c83067a
adapter_shims: prefer adapter when http client seam is patched for op…
rmusser01 Nov 8, 2025
a323328
tests: fix DeepSeek to mock legacy requests path for error mapping an…
rmusser01 Nov 8, 2025
acf9eac
fixes
rmusser01 Nov 8, 2025
b1f242e
fixes
rmusser01 Nov 8, 2025
d7a9510
fixes
rmusser01 Nov 8, 2025
de1795d
fixes
rmusser01 Nov 8, 2025
3e97878
fixes
rmusser01 Nov 8, 2025
bb7c863
webui
rmusser01 Nov 8, 2025
cbfbfe5
fixes
rmusser01 Nov 9, 2025
51d69a7
webui/tts
rmusser01 Nov 9, 2025
bdc05dd
tts
rmusser01 Nov 9, 2025
87e36bf
'fixes'
rmusser01 Nov 9, 2025
3f72df3
js
rmusser01 Nov 9, 2025
34f415f
webui
rmusser01 Nov 9, 2025
b3fb41d
fixes
rmusser01 Nov 9, 2025
048239a
fixes
rmusser01 Nov 9, 2025
1913084
fixes
rmusser01 Nov 9, 2025
5cdccf9
fix
rmusser01 Nov 9, 2025
b89f1c2
fixes
rmusser01 Nov 9, 2025
e793bf0
fixes
rmusser01 Nov 9, 2025
7dfd54f
fixes
rmusser01 Nov 9, 2025
ffb5b18
Potential fix for code scanning alert no. 904: Information exposure t…
rmusser01 Nov 9, 2025
e4a3046
Potential fix for code scanning alert no. 922: Full server-side reque…
rmusser01 Nov 9, 2025
5bde366
Potential fix for code scanning alert no. 893: Information exposure t…
rmusser01 Nov 9, 2025
4a0f332
Potential fix for code scanning alert no. 788: Information exposure t…
rmusser01 Nov 9, 2025
c74b53d
Update Helper_Scripts/voice_latency_harness/harness.py
rmusser01 Nov 9, 2025
cfc9b73
Potential fix for code scanning alert no. 925: Exception text reinter…
rmusser01 Nov 9, 2025
b311945
Potential fix for code scanning alert no. 936: DOM text reinterpreted…
rmusser01 Nov 9, 2025
f3cbe53
Potential fix for code scanning alert no. 933: DOM text reinterpreted…
rmusser01 Nov 9, 2025
8edcaf4
Update tldw_Server_API/WebUI/js/simple-mode.js
rmusser01 Nov 9, 2025
dd49bf4
fxies
rmusser01 Nov 9, 2025
6361039
Potential fix for code scanning alert no. 926: Exception text reinter…
rmusser01 Nov 9, 2025
ed8407d
Update tldw_Server_API/WebUI/js/legacy-helpers.js
rmusser01 Nov 9, 2025
8606329
fixes
rmusser01 Nov 9, 2025
6e27b9a
Merge branch 'dev' of https://github.com/rmusser01/tldw_server into dev
rmusser01 Nov 9, 2025
0fe8518
Create test_rg_metrics_denial_micro.py
rmusser01 Nov 9, 2025
2e63935
fixes
rmusser01 Nov 9, 2025
c21cd15
fixes
rmusser01 Nov 10, 2025
9e59bb1
fixes
rmusser01 Nov 10, 2025
5986489
update references to newer anthropic models
rmusser01 Nov 10, 2025
1b6642a
fixes
rmusser01 Nov 10, 2025
d607229
fixes
rmusser01 Nov 10, 2025
46f40d1
webui fixes
rmusser01 Nov 10, 2025
2be045c
fixes
rmusser01 Nov 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ jobs:
TEST_DB_HOST: 127.0.0.1
TEST_DB_USER: tldw
TEST_DB_PASSWORD: tldw
# Align AuthNZ_Postgres conftest default DB name with service DB
TEST_DB_NAME: tldw_content
TLDW_TEST_POSTGRES_REQUIRED: '1'
steps:
- name: Checkout
Expand Down Expand Up @@ -115,6 +117,9 @@ jobs:
run: |
echo "POSTGRES_TEST_PORT=${{ job.services.postgres.ports[5432] }}" >> "$GITHUB_ENV"
echo "TEST_DB_PORT=${{ job.services.postgres.ports[5432] }}" >> "$GITHUB_ENV"
# Provide a unified DSN so any test preferring TEST_DATABASE_URL uses the right DB
echo "TEST_DATABASE_URL=postgresql://tldw:[email protected]:${{ job.services.postgres.ports[5432] }}/tldw_content" >> "$GITHUB_ENV"
echo "DATABASE_URL=postgresql://tldw:[email protected]:${{ job.services.postgres.ports[5432] }}/tldw_content" >> "$GITHUB_ENV"

- name: Install additional deps for PG tests
run: |
Expand Down
12 changes: 10 additions & 2 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
name: CodeQL

on:
# Run on direct pushes to protected/default branches only
push:
branches: [ main, master, dev ]
branches: [ main, master ]
# Run on PRs targeting main/master/dev, not every branch
pull_request:
branches: [ '**' ]
branches: [ main, master, dev ]
schedule:
- cron: '0 6 * * 1'
# Allow manual runs
workflow_dispatch:

concurrency:
group: codeql-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
analyze:
Expand Down
89 changes: 64 additions & 25 deletions .github/workflows/sbom.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,40 +21,79 @@ jobs:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'

- name: Generate Python SBOM (CycloneDX)
run: |
python -m pip install -q cyclonedx-bom
if [ -f tldw_Server_API/requirements.txt ]; then \
python -m cyclonedx_bom -r tldw_Server_API/requirements.txt -o sbom-python.cdx.json; \
elif [ -f requirements.txt ]; then \
python -m cyclonedx_bom -r requirements.txt -o sbom-python.cdx.json; \
else \
echo "No requirements file found; cannot generate SBOM"; \
exit 1; \
fi

# No registry login required for public Docker Hub images used below
- name: Setup Node
uses: actions/setup-node@v6
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Generate Python SBOM from pyproject (cdxgen)
- name: Generate Node SBOM (CycloneDX NPM)
run: |
if [ -f pyproject.toml ]; then \
npx @appthreat/cdxgen -t python -o sbom-python.cdx.json; \
if [ -f package-lock.json ]; then \
npx -y @cyclonedx/cyclonedx-npm --output-file sbom-node.cdx.json; \
elif [ -f tldw-frontend/package-lock.json ]; then \
(cd tldw-frontend && npx -y @cyclonedx/cyclonedx-npm --output-file ../sbom-node.cdx.json); \
else \
echo "No package-lock.json found; skipping Node SBOM"; \
fi

- name: Generate SBOM (CycloneDX JSON)
uses: anchore/sbom-action@8e94d75ddd33f69f691467e42275782e4bfefe84 # v0.20.9
- name: Resolve CycloneDX CLI digest
run: |
set -euo pipefail
ref="ghcr.io/cyclonedx/cyclonedx-cli:0.30.0"
echo "Resolving digest for ${ref}"
# Prefer buildx imagetools; fallback to manifest inspect if needed
if docker buildx imagetools inspect "$ref" >/dev/null 2>&1; then \
digest=$(docker buildx imagetools inspect "$ref" | awk '/^Digest:/ {print $2; exit}'); \
else \
digest=$(docker manifest inspect "$ref" | jq -r '.manifests[0].digest' || true); \
fi
if [ -z "${digest:-}" ] || ! echo "$digest" | grep -Eq '^sha256:[0-9a-f]{64}$'; then \
echo "Failed to resolve digest for $ref"; \
exit 1; \
fi
echo "CDX_CLI_DIGEST=$digest" >> "$GITHUB_ENV"
echo "Resolved digest: $digest"

- name: Merge SBOMs (CycloneDX CLI)
run: |
if [ -f sbom-python.cdx.json ] && [ -f sbom-node.cdx.json ]; then \
docker run --rm -v "$PWD":/work -w /work ghcr.io/cyclonedx/cyclonedx-cli@${CDX_CLI_DIGEST} \
merge --input-files sbom-python.cdx.json sbom-node.cdx.json --output-file sbom.cdx.json; \
elif [ -f sbom-python.cdx.json ]; then \
cp sbom-python.cdx.json sbom.cdx.json; \
elif [ -f sbom-node.cdx.json ]; then \
cp sbom-node.cdx.json sbom.cdx.json; \
else \
echo "No SBOMs generated"; \
exit 1; \
fi

- name: Upload SBOM artifact
uses: actions/upload-artifact@v4
with:
path: .
format: cyclonedx-json
output-file: sbom.cdx.json
upload-artifact: true
artifact-name: sbom-cyclonedx

- name: Validate SBOM (CycloneDX CLI - pinned)
id: validate_cli_pinned
name: sbom-cyclonedx
path: sbom.cdx.json

- name: Validate SBOM (CycloneDX CLI - pinned digest)
if: ${{ hashFiles('sbom.cdx.json') != '' }}
continue-on-error: true
uses: docker://cyclonedx/cyclonedx-cli:0.30.0
with:
args: >-
validate --input-file sbom.cdx.json

- name: Validate SBOM (CycloneDX CLI - pinned fallback)
if: ${{ hashFiles('sbom.cdx.json') != '' && steps.validate_cli_pinned.outcome == 'failure' }}
uses: docker://cyclonedx/cyclonedx-cli:0.29.1
with:
args: >-
run: |
docker run --rm -v "$PWD":/work -w /work ghcr.io/cyclonedx/cyclonedx-cli@${CDX_CLI_DIGEST} \
validate --input-file sbom.cdx.json
8 changes: 6 additions & 2 deletions sbom/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Simple SBOM generation helpers

# CycloneDX CLI reference. Override with a digest for pinning:
# make CDX_CLI_REF=ghcr.io/cyclonedx/cyclonedx-cli@sha256:<digest>
CDX_CLI_REF ?= ghcr.io/cyclonedx/cyclonedx-cli:0.30.0

PY ?= python3
NPM ?= npm

Expand Down Expand Up @@ -32,7 +36,7 @@ sbom:
done; \
if [ -n "$$files" ]; then \
if command -v docker >/dev/null 2>&1; then \
docker run --rm -v "$$PWD":/work -w /work cyclonedx/cyclonedx-cli:0.30.0 merge --input-files $$files --output-file sbom/sbom.cdx.json \
docker run --rm -v "$$PWD":/work -w /work $(CDX_CLI_REF) merge --input-files $$files --output-file sbom/sbom.cdx.json \
|| cp sbom/sbom-python.cdx.json sbom/sbom.cdx.json || true; \
elif command -v cyclonedx-cli >/dev/null 2>&1; then \
cyclonedx-cli merge --input-files $$files --output-file sbom/sbom.cdx.json || cp sbom/sbom-python.cdx.json sbom/sbom.cdx.json || true; \
Expand All @@ -50,7 +54,7 @@ sbom-validate:
@echo "==> Validating SBOM (if present)"
@if [ -f sbom/sbom.cdx.json ]; then \
if command -v docker >/dev/null 2>&1; then \
docker run --rm -v "$$PWD":/work -w /work cyclonedx/cyclonedx-cli:0.30.0 validate --input-file sbom/sbom.cdx.json || true; \
docker run --rm -v "$$PWD":/work -w /work $(CDX_CLI_REF) validate --input-file sbom/sbom.cdx.json || true; \
elif command -v cyclonedx-cli >/dev/null 2>&1; then \
cyclonedx-cli validate --input-file sbom/sbom.cdx.json || true; \
else \
Expand Down
9 changes: 4 additions & 5 deletions sbom/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Generate locally
- Run: make sbom

Artifacts:
- sbom-python.cdx.json - Python deps from pyproject.toml (cdxgen) or requirements.txt fallback
- sbom-python.cdx.json - Python deps from requirements.txt (cyclonedx-bom)
- sbom-frontend.cdx.json - Node deps (if package-lock.json present)
- sbom.cdx.json - merged SBOM (if both present)

Expand All @@ -20,10 +20,9 @@ Validate and scan:

Notes
-----
- When pyproject.toml is present, the Makefile uses cdxgen to generate a Python SBOM without installing dependencies.
- If you prefer environment-resolved versions, create a venv (e.g., via uv sync) and run:
- python -m pip install cyclonedx-py cyclonedx-cli
- cyclonedx-py -e -o sbom/sbom-python.cdx.json
- Python SBOMs are generated via the official CycloneDX Python CLI:
- python -m pip install cyclonedx-bom
- cyclonedx-bom -r tldw_Server_API/requirements.txt -o sbom/sbom-python.cdx.json
- For container/OS-level SBOMs, consider using syft:
- syft dir:. -o cyclonedx-json=sbom/sbom-syft.cdx.json
- syft <image> -o cyclonedx-json=sbom/sbom-image.cdx.json
27 changes: 27 additions & 0 deletions tldw_Server_API/app/api/v1/endpoints/jobs_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -777,6 +777,10 @@ async def ttl_sweep_endpoint(
user=Depends(require_admin),
) -> TTLSweepResponse:
try:
# Correlation IDs and diagnostics
from tldw_Server_API.app.core.Logging.log_context import get_ps_logger, ensure_request_id, ensure_traceparent
rid = ensure_request_id(request)
tp = ensure_traceparent(request)
Comment on lines +867 to +870
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Remove unused variable.

The variable tp is assigned but never used. Either remove it or utilize it in the diagnostic logging.

Apply this diff:

-        from tldw_Server_API.app.core.Logging.log_context import get_ps_logger, ensure_request_id, ensure_traceparent
         rid = ensure_request_id(request)
-        tp = ensure_traceparent(request)

Or, if tracing correlation is desired:

         try:
-            get_ps_logger(request_id=rid, ps_component="endpoint", ps_job_kind="jobs").info(
-                "TTL sweep request: action=%s domain=%s queue=%s job_type=%s age=%s runtime=%s backend=%s ref_now=%s",
+            get_ps_logger(request_id=rid, traceparent=tp, ps_component="endpoint", ps_job_kind="jobs").info(
+                "TTL sweep request: action=%s domain=%s queue=%s job_type=%s age=%s runtime=%s backend=%s ref_now=%s",
                 req.action, req.domain, req.queue, req.job_type, req.age_seconds, req.runtime_seconds, (backend or "sqlite"), str(ref_now) if ref_now else ""
             )

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 Ruff (0.14.3)

839-839: Local variable tp is assigned to but never used

Remove assignment to unused variable tp

(F841)

🤖 Prompt for AI Agents
In tldw_Server_API/app/api/v1/endpoints/jobs_admin.py around lines 836 to 839,
the variable `tp` (traceparent) is assigned but never used; either remove the
assignment to avoid an unused variable or pass `tp` into your diagnostic/logging
context (e.g., include it in the logger calls or ensure_traceparent return
handling) so it is consumed; update the import/usage accordingly and run linter
to confirm no unused-variable warnings remain.

# Pre-parse raw to enforce RBAC and confirm header before validation
try:
raw = await request.json()
Expand Down Expand Up @@ -805,20 +809,43 @@ async def ttl_sweep_endpoint(
jm = JobManager(backend=backend, db_url=db_url)
# Now validate the request model
req = TTLSweepRequest(**(raw or {}))
# Capture a single reference time to avoid boundary drift between age/runtime calculations
try:
from datetime import datetime, timezone as _tz
ref_now = datetime.now(tz=_tz.utc)
except Exception:
ref_now = None
# Diagnostics before executing
try:
get_ps_logger(request_id=rid, ps_component="endpoint", ps_job_kind="jobs").info(
"TTL sweep request: action=%s domain=%s queue=%s job_type=%s age=%s runtime=%s backend=%s ref_now=%s",
req.action, req.domain, req.queue, req.job_type, req.age_seconds, req.runtime_seconds, (backend or "sqlite"), str(ref_now) if ref_now else ""
)
except Exception:
pass
affected = jm.apply_ttl_policies(
age_seconds=req.age_seconds,
runtime_seconds=req.runtime_seconds,
action=req.action,
domain=req.domain,
queue=req.queue,
job_type=req.job_type,
reference_time=ref_now,
)
# Refresh gauges when fully scoped to avoid stale metrics
try:
if req.domain and req.queue and req.job_type:
jm._update_gauges(domain=req.domain, queue=req.queue, job_type=req.job_type)
except Exception:
pass
# Diagnostics after executing
try:
get_ps_logger(request_id=rid, ps_component="endpoint", ps_job_kind="jobs").info(
"TTL sweep result: affected=%s action=%s domain=%s queue=%s job_type=%s",
int(affected), req.action, req.domain, req.queue, req.job_type
)
except Exception:
pass
return TTLSweepResponse(affected=int(affected))
except HTTPException:
raise
Expand Down
Loading
Loading