Found while fixing the same bug in the web UI (PR #658): the Queue API job row carries the config id under the key config (service passes rows through verbatim — JobService._fetch_project_jobs only adds project_alias; the repo's own realistic fixture JOB_DETAIL_RESPONSE in tests/test_cli.py:3236 says "config": "123").
But output.py:411 renders the CLI's job list Config column as str(job.get("configId", job.get("config_id", ""))) — neither key exists on the real payload, so kbagent job list has always printed an empty Config column.
The bug survived because the fixtures in tests/test_output.py and tests/test_services.py hand-write "configId", asserting against the same invented key the renderer reads — the tests were never checking anything real. Fix must correct BOTH the renderer (read config, keep config_id fallback for any older payloads) and the fixtures (use the real Queue API field name), otherwise the fix would pass the existing tests without proving anything.
Web UI side is already fixed in PR #658 (types.ts configId → config: string | null).
Found while fixing the same bug in the web UI (PR #658): the Queue API job row carries the config id under the key
config(service passes rows through verbatim —JobService._fetch_project_jobsonly addsproject_alias; the repo's own realistic fixtureJOB_DETAIL_RESPONSEin tests/test_cli.py:3236 says"config": "123").But
output.py:411renders the CLI'sjob listConfig column asstr(job.get("configId", job.get("config_id", "")))— neither key exists on the real payload, sokbagent job listhas always printed an empty Config column.The bug survived because the fixtures in tests/test_output.py and tests/test_services.py hand-write
"configId", asserting against the same invented key the renderer reads — the tests were never checking anything real. Fix must correct BOTH the renderer (readconfig, keepconfig_idfallback for any older payloads) and the fixtures (use the real Queue API field name), otherwise the fix would pass the existing tests without proving anything.Web UI side is already fixed in PR #658 (types.ts
configId→config: string | null).