Skip to content

Invenqor v0.2.30

Choose a tag to compare

@hkjang hkjang released this 10 Sep 01:05
· 9 commits to main since this release

Invenqor Server·Agent v0.2.30 릴리즈 노트

릴리즈 일자: 2026-09-10
호환 Agent: v0.2.30 (Linux·Windows)

이번 릴리즈는 결함 하나를 고칩니다. 자리는 MCP asset_relations 도구이고,
증상은 이전 릴리즈들이 고쳐 온 것과 반대입니다 — 조용히 짧아진 결과가 아니라
한도 없이 전부 돌아오는 결과입니다. 읽는 쪽이 모델이므로, 응답 하나가 대화에
남은 자리를 다 써 버릴 수 있었습니다.

1. 자산 하나의 관계가 MCP 응답 전체를 채울 수 있었습니다

MCP의 읽기 도구 중 asset_relations만 상한이 없었습니다. 자산의 활성
inbound·outbound 관계를 전부 선택해 전부 돌려주었습니다.

process 상관 분석이 돌고 난 바쁜 서버는 runs_on 자식을 수천 개 가집니다. 그런
host 하나에 도구를 한 번 호출하면 그 응답 하나가 모델의 남은 context를 밀어낼
만큼
커졌고, 그것을 끊을 수 있는 것은 client뿐이었습니다. 즉 잘리는 위치도,
무엇이 남는지도 Server가 정하지 못했습니다.

이제 asset_relations한 페이지를 읽습니다.

  • 다른 도구와 같은 입력을 받습니다. limit(기본 50, 최대 100)과 offset
    asset_search·agents_list와 같은 의미로 동작합니다.
  • has_more는 사실입니다. 한도보다 한 행을 더 읽고 그 행은 버리므로, 결과가
    정확히 limit에서 끝났을 때 has_morefalse입니다 — 페이지가 꽉 찼다는
    이유만으로 다음 페이지를 한 번 더 요청할 필요가 없습니다.
  • 기존 키는 그대로입니다. 관계는 여전히 relations에 담겨 오므로 그 키만 읽던
    호출자는 그대로 동작합니다. 다만 이제 전부가 아니라 앞의 50개를 보고,
    has_morenext_offset이 더 있다는 것과 이어서 받는 방법을 알려 줍니다.

2. 가이드의 도구 표가 실제 스키마와 어긋나 있었습니다

라우터가 openapi.yaml과 대조되는 것처럼, 이제 가이드의 MCP 도구 표가 Server가
선언한 입력 스키마와 대조
됩니다. 이 테스트를 넣자마자 드리프트가 하나 드러났습니다.

software_inventoryvendor 필터를 받는데 표에는 한 번도 적혀 있지
않았습니다.
문서를 보고 client를 만든 쪽은 Server가 계속 제공해 온 필터를 모르고
지나쳤습니다. 이 입력과 asset_relations의 새 페이지 매개변수가 모두 표에
기재되었고, 앞으로 도구 스키마가 바뀌면 표를 함께 고치지 않는 한 테스트가
실패합니다.

검증

  • 도구 너머에서. 관계를 한도보다 많이 만든 자산에 asset_relations를 호출해
    limit까지만 돌아오고 has_moretrue인지, next_offset으로 이어 받은
    페이지가 나머지를 정확히 채우는지, 결과가 정확히 한도에서 끝날 때는
    has_morefalse인지, limit을 주지 않으면 기본 50이 적용되는지를
    고정했습니다.
  • 문서 대조. 가이드의 도구 표와 선언된 입력 스키마를 비교하는 테스트를
    추가했습니다. 표를 고치기 전 이 테스트는 asset_relations
    software_inventory 두 드리프트를 차례로 지적하고, 고친 뒤 통과합니다.
  • 되돌려 확인했습니다. 수정을 되돌리면 위 테스트들이 정확히 그 지점에서
    실패합니다.
  • 저장 모드 양쪽에서. go test ./...가 SQLite fallback과 실제
    PostgreSQL(scripts/test-postgres.sh) 양쪽에서 전 패키지 통과하고,
    go vet·go build·gofmt가 통과합니다.

호환성

  • 데이터베이스 마이그레이션이 없습니다.
  • asset_relations의 결과 개수가 달라집니다. 지금까지 전부를 받던 호출자는
    이제 한 번에 최대 50개를 받습니다. 전체가 필요하면 has_morefalse가 될
    때까지 next_offsetoffset에 넣어 이어서 조회하십시오.
  • 응답의 relations 키와 각 관계의 필드는 바뀌지 않았고, limit·offset·
    count·has_more·next_offset이 추가되기만 했습니다.
  • MCP 프로토콜 버전, 도구 목록, scope(relations.read·assets.read)는 바뀌지
    않았습니다.
  • REST API와 Query DSL은 이번 릴리즈에서 바뀌지 않았습니다.
  • Agent(Rust) 동작은 이번 릴리즈에서 바뀌지 않았습니다.