`iris_doc mode=list` fails with HTTP 400 for `category` MAC/INT/INC and for the default `ALL`: Atelier `docnames/:cat` only accepts `*`, `CLS`, `RTN`, `CSP`, `OTH`
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 78/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- rust
- Área
- backend-api-design
Línea de trabajo
Comienza en crates/iris-agentic-dev-core/src/tools/doc.rs, especialmente en fetch_docnames_for_cat, el mapeo de categorías y el bucle ALL. Compara esas requests con las rutas de docnames de Atelier documentadas y, después, ejecuta una prueba de regresión Live IRIS para las categorías predeterminadas ALL y MAC/INT/INC. Se considera terminado cuando las requests válidas de tipo rutina tienen éxito y ALL conserva o informa claramente de los resultados de las categorías cuando una request falla.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Environment
- iris-agentic-dev v1.3.0 (same code in v1.4.2 and on
masterat5f38c46) - Windows 11, IRIS for Health 2026.1 (Build 235U), Atelier REST through the web server on port 80
- MCP mode, connection from
.iris-agentic-dev.toml
Symptom
iris_doc with mode="list" works only when category="CLS" is passed explicitly:
| Call | Result |
|---|---|
{"mode":"list","pattern":"MyPkg.*","namespace":"<NS>"} (default category ALL) |
{"error":"failed to fetch MAC docnames: HTTP 400 Bad Request","error_code":"SERVER_ERROR","success":false} |
same with "category":"MAC" / "INT" / "INC" |
failed to fetch MAC/INT/INC docnames: HTTP 400 Bad Request |
same with "category":"CLS" |
OK, lists the matching classes |
Because ALL is the default, any list call without an explicit category fails, and MAC/INT/INC can never work.
Root cause
fetch_docnames_for_cat builds /docnames/{cat} with cat in CLS, MAC, INT, INC
(doc.rs#L1704-L1726, and the category mapping at
#L1744-L1766).
In the Atelier API, MAC, INT and INC are types inside the RTN category, not categories. The route
is GET /api/atelier/v1/:namespace/docnames/:cat/:type, and %Api.Atelier.v1:GetDocNames (identical in v2 and
v8 on 2026.1) rejects any other :cat with 400:
Set pCat=$zcvt(pCat,"U")
If ",*,CLS,RTN,CSP,OTH,"'[(","_pCat_",") {
Set %response.Status=..#HTTP400BADREQUEST
In addition, the ALL loop returns on the first failing category
(#L1780-L1791),
so the CLS results already fetched are discarded.
Reproduction without the tool
Plain GET with Basic auth against the same instance and namespace:
| Request | HTTP | documents |
|---|---|---|
/api/atelier/v1/<NS>/docnames/CLS |
200 | 13610 |
/api/atelier/v1/<NS>/docnames/MAC |
400 | |
/api/atelier/v1/<NS>/docnames/INT |
400 | |
/api/atelier/v1/<NS>/docnames/INC |
400 | |
/api/atelier/v1/<NS>/docnames/XYZ (invalid on purpose) |
400 | |
/api/atelier/v1/<NS>/docnames/RTN/MAC |
200 | 6 |
/api/atelier/v1/<NS>/docnames/RTN/INT |
200 | 20 |
/api/atelier/v1/<NS>/docnames/RTN/INC |
200 | 364 |
/api/atelier/v1/<NS>/docnames/RTN/MAC,INT,INC |
200 | 390 (= 6 + 20 + 364) |
Suggested fix
- Map
MAC→/docnames/RTN/MAC,INT→/docnames/RTN/INT,INC→/docnames/RTN/INC. ForALL, one call to
/docnames/CLSplus one to/docnames/RTN/MAC,INT,INCis enough. - Do not throw away the successful categories when one fails in
ALL: return what was fetched and report the
failing category, or fail with a message that says which request was rejected. - A regression test for
listwithoutcategory(and withMAC/INT/INC) against a live IRIS would catch it.
Workaround
Always pass "category":"CLS" for classes. For routines and include files there is currently no working list
mode.
- Lenguaje dominante
- Rust
- Estrellas
- 45
- Forks
- 17
- Merge medio
- 2 d 11 h
- PR fusionados (30 d)
- 15
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de intersystems-community/iris-agentic-dev
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
intersystems-community/iris-agentic-dev#167 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
intersystems-community/iris-agentic-dev#165 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
intersystems-community/iris-agentic-dev#139 ·
Los mantenedores suelen responder en 2 días
-
Add a CHANGELOG.mdAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
intersystems-community/iris-agentic-dev#136 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 3/5 Medio día Aptitud para principiantes 45/100
intersystems-community/iris-agentic-dev#146 ·
Los mantenedores suelen responder en 2 días
Todos los issues de intersystems-community/iris-agentic-dev
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
n0-computer/iroh#4669 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
rubys/roundhouse#1950 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
cloudflare/workers-rs#1130 ·
Los mantenedores suelen responder en 11 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
vfarcic/dot-agent-deck#2160 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
RustCrypto/utils#1597 ·
Los mantenedores suelen responder en 1 día