본문으로 건너뛰기

Core

조직 업무·Agent 분석 및 App 릴리스

0.3.0

공통 조직 입력, 할당된 프로세스 업무, Agent 분석과 최신 SDK·Apps를 함께 반영합니다.

릴리스 의존성

SDK 0.2.6과 composer.lock에 고정한 App 버전을 함께 적용합니다. People과 Time & Absence는 CLI 명령 변경으로 0.3.0으로 올립니다. 나머지 App은 기존 안정·베타 채널을 유지하며 Core 0.3 호환 범위를 선언합니다. 배포 전에 외부 명령 호출을 새 이름으로 바꾸세요. 이전 명령 별칭은 제공하지 않습니다.

0.3.0 변경 사항

추가됨

  • 새로운 데이터 센터에서 Core와 설치된 앱이 등록한 이관 작업만 표시하고, 지원하는 원본 시스템을 선택해 기존 가져오기 화면으로 진행할 수 있습니다. 기존 데이터 이관 페이지도 계속 사용할 수 있습니다.

  • 전용 시작 설정 화면에서 법인 증빙을 업로드하고 Agent가 준비한 입력값을 검토한 뒤 직접 저장할 수 있습니다. 필수 설정을 먼저 표시하고 추가 정보는 펼쳐서 확인합니다. 상단 진행률 버튼으로 재개하며 프로비저닝 후 첫 로그인에는 한 번 자동 진입합니다. 완료 판단과 저장 권한은 기존 설정 평가 및 도메인 API를 사용합니다.

  • nexia-demo:seed-apps --app=<key>로 demo 테넌트를 초기화하거나 조직·권한·리포트 시더를 다시 실행하지 않고, 선택한 설치 App의 데모 데이터만 시딩할 수 있습니다. --app을 생략하면 시딩을 지원하는 설치 App 전체가 대상입니다. 기존 테넌트의 fixture key와 기본 도메인이 모두 demo여야 하며, 로컬 외 환경에서는 --force가 필요합니다. SDK 업데이트나 마이그레이션은 필요하지 않습니다.

  • Developers에 Agent 요청 처리 과정과 모델 역할, 도구 Lane, 격리된 분석 실행을 설명하는 문서를 추가했습니다. 흐름도와 로컬·운영 환경별 설정 안내를 제공합니다.

  • Central의 분석 실행 현황에서 실행 결과, 데이터 크기, 수집된 단계별 시간과 한도 초과 내역을 조회할 수 있습니다. 진단 기록은 토큰 과금 기록과 별도로 관리하며 프롬프트나 업무 데이터 원문을 저장하지 않습니다.

  • Central의 Agent 역할 모델에서 Router·분석 Worker·조사 Worker에 모델 카탈로그의 실제 레코드를 우선순위로 연결합니다. Primary 등급 배정은 유지합니다.

  • 일반 Agent 요청은 Router 모델이 의도와 필요한 기능을 해석합니다. 사용할 역할별 후보가 없으면 해당 요청의 Primary 등급과 전체 fallback 순서를 따릅니다. 명시한 역할 모델의 실행 실패는 해당 처리를 중단하며, 의미가 모호하면 확인 질문을 반환합니다. 등록된 명령은 코드로 처리하며 메뉴 이름을 ‘명령어’로 정리했습니다.

  • 접근 관리는 사용자 검색으로 시작하며, 현재 관리자가 변경할 수 있는 역할과 부여 이력만 표시합니다. 기업, 법인, 운영 조직의 역할 관리 권한은 서로 독립적으로 적용됩니다. 새 접근 사용자 조회 endpoint는 테넌트 사용자 디렉터리의 조회 범위를 넓히지 않습니다.

  • 일반 역할 동기화에서는 새 보호된 접근 역할을 부여할 수 없습니다. 기존 보호 접근 요청 및 승인 흐름을 계속 사용해야 합니다.

  • 법인과 운영 조직 범위 목록은 이제 각각 legal_entity_roles 또는 operating_unit_roles만 반환하며, 상세와 이력 payload도 선택한 정확한 범위로 제한됩니다. 클라이언트는 기존의 병합된 범위 역할 응답에서 테넌트 권한을 추론하지 않아야 합니다. 운영 조직 역할 업데이트는 이제 operating_unit_roles만 반환합니다. 법인과 운영 조직의 빈 역할 집합은 다른 source의 할당을 보존하면서 마지막 직접 역할을 회수합니다.

  • 사용자 Primary 등급은 유지하면서 운영자가 선택한 Router·Worker 모델 후보를 Agent 준비 단계에 선택적으로 전달할 수 있습니다. 권한 분석 Dataset은 현재 테넌트, 사용자, 채팅 작업, 실시간 Resource·행 권한 및 짧은 수명의 제어부 export 토큰에 연결됩니다.

  • 앱 페이지를 먼저 방문하지 않아도 대시보드 위젯과 카탈로그가 소유 앱의 번역을 불러와 표시합니다. 언어 변경 시에도 적용됩니다.

  • 리포트 라이브러리에서 현재 권한·조직 범위 안의 제목을 검색할 수 있습니다. 생성 화면의 분석 범위와 데이터 선택을 함께 배치하고, 범위가 바뀌면 기존 데이터의 조건을 초기화합니다.

  • 리포트 사이드바에서 만들기 동작을 전체·내 리포트·나와 공유됨·보관됨 컬렉션과 분리했습니다. 라이브러리 행은 헤더 열에 맞추고, 리포트 상세에서는 편집 또는 복구를 우선 표시하며 보조 동작은 조용하게 유지합니다.

  • 리포트 작성에서 데이터 선택, 유형별 값 입력, 설정, 미리보기 복구를 안내합니다. 연결된 데이터 원본을 선택하는 관계 그래프를 제공하며, 지원되는 관계만 저장합니다.

  • 리포트 구성 카탈로그에 소유 App이 공개한 커뮤니케이션 및 업무 리소스와 사람이 읽을 수 있는 필드를 추가했습니다. 각 리소스의 기존 읽기 권한은 그대로 적용됩니다.

  • Core 디렉터리와 조직 리소스는 기존 읽기 권한을 통해 안전한 구성 필드를 공개합니다. Operating Unit 행에는 유효한 Legal Entity 및 조직 단위 범위가 계속 적용됩니다.

  • Provider가 공개한 필터 연산자는 공통 허용 목록에서 지원하는 경우 카탈로그에 유지합니다. 리포트 실행 시의 검증 권한은 계속 쿼리 실행에 있습니다.

  • 서버가 인가한 페이지와 지속적인 레코드에 대해 테넌트 사용자별 즐겨찾기를 추가했습니다. Shell은 매 조회마다 현재 제목과 목적지를 다시 해석하므로 권한이나 설치 상태가 바뀐 뒤에도 즐겨찾기가 접근 권한을 보존하지 않습니다. standard Resource는 기존 catalog, read permission, stored-owner authority, Show route가 모두 있을 때만 favorite metadata를 제공합니다. 공통 primary cell과 pane-local 상세 header는 같은 서버 인가 record control을 표시하며, 관련 record link가 행의 favorite identity를 물려받지 않습니다. 선택된 즐겨찾기는 키보드 focus visibility를 유지하면서 raised pressed chrome 없이 채워진 노란 별로 표시됩니다.

  • 조건을 충족하는 Resource 목록은 즐겨찾기만 보기 filter와 canonical meta.list_schema.resource_key를 제공합니다. record를 추가하거나 제거하면 Shell은 App query key를 추측하지 않고 해당 캐시 목록과 활성 즐겨찾기만 보기를 새로 고칩니다. 공통 control은 현재 상태를 낙관적으로 갱신한 뒤 서버 결과와 다시 맞춥니다.

  • 전체 즐겨찾기 보기는 page와 record target을 stable cursor pagination으로 제공합니다. App은 favorite-only contributor나 별도 favorites 목록 경로를 등록하지 않습니다. standard record는 공통 stored-owner 검사를 사용하고, custom record는 owner가 제공하는 authorization-safe summary와 canonical route가 있을 때만 사용할 수 있습니다.

  • 서버 측 제목 검색, 정렬, 즐겨찾기 필터, cursor pagination을 제공하는 /dashboards 라이브러리를 추가했습니다. 기존 대시보드 목록 client는 dashboards 배열을 그대로 받고 next_cursor를 적용할 수 있으며, 저장 대시보드 생성은 더 이상 레일 미리보기 개수로 제한되지 않습니다.

  • App SDK v0.2.4, People v0.2.5, Talent v0.2.0-beta.4를 반영했습니다. SDK의 ResourceListFieldsAugmenterRegistry로 host는 App별 query contract 없이 즐겨찾기만 보기 filter를 추가할 수 있습니다.

  • 중앙에서 관리하는 에이전트 모델과 고정 에이전트 등급을 추가했습니다. 사용자는 다음 요청에 자동, 가볍게, 기본, 깊게, 더 깊게를 선택하며, 운영자는 제공자 모델을 노출하지 않고 순서가 있는 대체 모델과 요청할 추론 수준을 설정합니다. 모델이 요청한 수준을 지원하지 않으면 모델 기본값을 자동으로 적용합니다.

  • 플랫폼 전용 OpenAI·Anthropic 모델 검색을 추가했습니다. 수동 실행과 월간 동기화를 지원하며, 새로 발견한 모델은 운영자가 검토할 때까지 비활성 상태입니다.

  • 중앙 에이전트 모델 설정을 명확히 했습니다. 제공자가 보고한 최대 출력은 읽기 전용이고, 서비스 출력 한도는 API 호출별로 계속 설정할 수 있습니다. 가격은 미등록 값을 0과 구분하며, 변경 사항은 이후 호출에만 적용됩니다.

  • 에이전트 모델 동기화 피드백에 제공자 이름, 안전한 실패 원인과 복구 방법을 표시하고, 성공한 제공자 동기화 목록에 없는 모델 행의 의미를 설명합니다.

  • 에이전트 모델에 Central 플랫폼 구성 준비 상태와 안전한 설정 원인을 표시하며, 유료 제공자 상태 확인이나 테넌트 BYOK 추정은 하지 않습니다.

  • Composer 설치 후 프런트엔드 의존성 검증이 실패하는 문제를 해결한 People v0.2.4를 반영했습니다. 프런트엔드 SDK peer는 호스트 정책을 따릅니다.

  • 셸 패널, 로딩 상태, 콤보박스 및 대시보드 간격을 일관되게 조정했습니다.

  • 로컬 Developers 탐색 시 개발 포트를 유지하도록 수정했습니다.

  • 선택 메뉴 항목은 강조 배경으로 포커스를 표시하여 마우스로 가리킬 때 파란 테두리가 함께 나타나지 않도록 수정했습니다.

  • 카드 renderer가 있는 ResourceTable은 defaultView="cards"로 시작할 수 있으며 저장된 사용자 설정을 우선합니다. Developers 실행 예제와 복사 코드에 표·카드 초기 보기, 번역된 컨트롤, 공통 행 동작을 반영했습니다. App에서 이 속성을 쓰려면 SDK의 대응하는 defaultView 프런트엔드 계약이 필요합니다.

  • 완전한 목록 renderer에 선택형 ResourceTable 카드 보기를 추가했습니다. 기본값은 테이블이며, 저장된 보기와 카드 열 수는 테넌트·사용자·안정적인 table ID 단위로 분리됩니다. 카드에서는 바깥 테두리와 여백을 제거하고 안쪽 여백을 줄였으며, 배경을 WorkDesktop 본문과 맞췄습니다.

변경됨

  • 타법인 직원도 자기 소속 법인의 활성 소속과 업무별 권한으로 배정받은 작업을 조회·수임·완료할 수 있습니다. 내 작업함과 알림에 해당 작업이 표시되며 실행 법인의 일반 업무 권한은 부여하지 않습니다. 타법인 작업에는 명시적으로 연결된 입력과 첨부만 제공하고, 재배정 또는 자격 상실 시 현재 작업 접근을 차단합니다. 기존 법인 내 권한과 배정 기록은 유지하며 DB 마이그레이션이나 SDK 업데이트는 필요하지 않습니다.

  • Agent 작업 내역, 업무 프로세스 배정 그룹, 전자서명 운영 화면의 법인 범위 선택에 공통 조직 선택기를 적용했습니다. 기존 범위 URL과 권한을 유지하며 별도 마이그레이션은 필요하지 않습니다.

  • 업무 프로세스와 결정 규칙 생성 시 법인 선택 팝업 없이 작성 화면을 엽니다. 기업 공통에서는 기준 법인 선택 없이 권한이 허용하는 모든 법인의 담당자를 선택하며 소속 법인을 함께 표시합니다. 법인 전용은 소유 법인을 선택하고, 공통 정의의 참조와 결재 기본 구성은 공통 카탈로그 및 기존 기업 범위 권한을 사용합니다. 공통 업무 프로세스 게시 후 법인별 사용 설정을 안내합니다. 법인별 사용 버전과 실행 규칙은 유지됩니다.

  • Core Artisan 명령을 하나의 nexia: 섹션에서 nexia-apps:, nexia-agent:, nexia-access:, nexia-runtime:, nexia-demo: 등 역할별 섹션으로 나눴습니다. 외부 스크립트의 호출 이름은 docs/reference/ARTISAN-COMMANDS.md의 대응표에 따라 변경해야 하며, 이전 이름의 별칭은 제공하지 않습니다. 저장소 스크립트·Composer 훅·스케줄러 호출도 새 이름으로 변경했습니다. 개별 contribution 캐시 삭제 명령과 Agent 사용량 데모 시딩 전용 명령은 제거했으며, 런타임 캐시 삭제와 기존 데모 시더는 유지합니다. People과 근태 앱 명령은 nexia-app-people:, nexia-app-time-absence:로 변경했습니다. 대응하는 앱 변경을 함께 반영하고 외부 호출의 people:, time-absence: 접두사도 변경해야 합니다. SDK 업데이트나 DB 마이그레이션은 필요하지 않습니다.

  • 참조 선택기의 새로고침 버튼을 24px, 아이콘을 12px로 줄였습니다.

  • NxResourceInformationForm.legalEntity 선택 속성으로 법인 입력을 첫 입력 섹션 안에 일관된 너비로 배치할 수 있습니다. 수정 시에는 저장된 법인명을 표시합니다. Core·App Resource 생성 템플릿에 반영했으며, 기존 앱은 해당 SDK·Core 호스트를 도입한 뒤 폼을 전환해야 합니다.

  • 목록의 대표 셀에서 즐겨찾기 버튼은 마우스를 올리거나 키보드 포커스가 들어올 때 표시합니다. 이미 즐겨찾기한 항목과 터치 환경에서는 항상 표시합니다.

  • Central 앱 카탈로그의 기본 보기를 앱 패밀리별 그룹으로 변경했습니다. 그룹 제목은 현재 언어로 표시하며 기존 패밀리 순서를 유지합니다. 별도 업그레이드 작업은 필요하지 않습니다.

  • 공통 Resource 카드 보기와 직원 목록 카드 보기를 제공하는 App SDK v0.2.3 및 People v0.2.3을 Composer 잠금 파일에 반영했습니다.

  • 리포트는 이제 Workbench 레일에서 바로 열리며, 리포트 사이드바에서 라이브러리 보기를 전환합니다. 대시보드 편집 중 새 리포트를 만들면 문맥 Work Tab에서 저장한 리비전을 원래 대시보드 초안으로 가져옵니다.

업그레이드 필요

  • 확장된 리포트 구성 카탈로그에는 App SDK 0.2.4, Assets 0.2.0-beta.3, Payroll 0.2.2, People 0.2.6, Recruiting 0.2.0-beta.3, Talent 0.2.0-beta.5, Time & Absence 0.2.4가 필요합니다.

수정

  • 작업 할당·완료 명령을 재시도할 때 현재 멤버십과 권한을 다시 확인하여, 활동이 정지된 멤버가 캐시된 권한으로 이전 결과를 재사용하지 못하도록 수정했습니다.

  • 서명 문서 목록에서 정렬 조건을 검증할 때 서버 오류가 발생하던 문제를 수정했습니다.

  • 사업장 목록에서 유형과 상태를 화면에 표시된 번역명 기준으로 정렬하며, 같은 이름의 항목도 순서가 일정하게 유지됩니다.

  • 결재 작성 목록에서 전사 공통 양식은 한 번만 표시합니다. 공통 양식은 첫 허용 법인으로 작성 화면을 바로 열고 제목 위에서 법인을 변경합니다. 내 결재선 생성도 이름 위에서 법인을 선택합니다. 법인 전용 양식과 저장된 문서의 소유 법인은 유지합니다. 양식 사용 범위와 문서의 소속 법인을 구분해 표시합니다.

  • 결재 양식과 공용 결재선 관리 목록도 조회 가능한 전체 범위로 열리며, 상단 법인 필터로 좁혀 볼 수 있습니다. 전사 공통 항목은 중복 없이 표시하고 법인 전용 항목에는 소유 법인명을 표시합니다.

  • 내 결재선은 조회 권한이 있는 모든 법인의 본인 결재선을 기본으로 표시하며, 법인별로 좁혀 볼 수 있습니다. 결재 작성은 내 전자 결재의 버튼으로 시작하며, 모든 허용 법인의 양식을 법인 열과 상단 필터와 함께 바로 표시합니다. 내 결재선은 이름·수정일시 헤더로 정렬하며, 테이블 너비 조절선을 얇게 표시합니다. 기존 작성 링크는 법인과 임시저장 정보를 유지해 새 하위 경로로 연결됩니다.

  • 전자 결재·전자 서명·업무 프로세스 메뉴를 내 업무, 현황·이력, 구성·설정으로 구분했습니다. 처리할 일과 현황을 먼저 배치하고 공용 결재선·업무 현황 등의 이름을 명확히 했습니다. 기존 경로와 접근 권한은 유지합니다.

  • App 리소스 목록 생성 템플릿에서 조회 권한 확인 중 상태와 접근 거부를 구분합니다. 수요 계획 목록은 사용자 컨텍스트와 조회 범위를 확인하는 동안 로딩을 표시하고, 권한이 확인된 뒤에만 목록을 조회합니다.

  • Core와 App의 새 데모 데이터에 업무별 이름, 품목 규격, 기간과 요청 내용을 담았습니다. 시설 보전 사례는 실제 작업 완료·취소 절차를 거칩니다. 기본 데모 계정은 권한 관리와 계정 소유자 이전을 제외한 모든 업무 권한을 가지며 결재와 할 일을 배정받습니다. 관리자 계정은 전체 권한을 유지합니다. 기존 레코드를 건너뛰는 시딩은 그 동작을 유지합니다. 전체 데이터 변경은 해당 App 시딩 소스와 함께 데모 테넌트를 다시 생성할 때 반영됩니다.

  • 데모 리포트 생성 시 계정별 작업 안에서 설치된 App 조회 결과를 재사용하고 계정별 소요 시간을 출력합니다. 설치 상태가 바뀌면 캐시를 비우며, 리포트의 권한 검사와 실제 조회 검증은 유지합니다.

  • 알림의 액션 버튼을 공통 기본 버튼으로 통일했습니다. 본문 글자색을 배경으로 사용하던 표시를 고쳐 테마의 강조색을 따릅니다.

  • Agent 승인 기록에 고정으로 표시되던 ‘실행 중입니다’를 제거했습니다. 승인 기록은 ‘승인됨’으로 남아, 실행이 끝난 작업을 계속 진행 중으로 오해하지 않도록 했습니다.

  • 이미지 등 분석 요청에서 이미 선택된 분석 위임 도구를 중복으로 추가해 모델 서비스가 요청을 거절하던 문제를 수정했습니다. 적용하려면 Agent Gateway를 재시작해야 합니다.

  • OpenAI가 응답 시작 전에 스트림 과부하를 알리면 한 번 재시도한 뒤 설정된 대체 모델을 사용합니다. 부분 응답과 원인 불명 오류는 재시도하지 않습니다.

  • 집계 도구에 v4 조건식·기간별 그룹·숫자 집계 규칙을 명시했습니다. 집계 결과는 그룹화된 출력 열로 정렬하며, 공통 SQL 실행 제한 시간은 권한 확인과 계획 수립이 끝난 뒤부터 계산합니다.

  • OpenAI 모델은 추론과 함수 도구를 함께 사용할 수 있도록 Responses API로 호출하며, 제공자 측 응답 저장은 사용하지 않습니다. Router는 제공자 어댑터가 반환하는 구조화된 텍스트 블록도 해석합니다.

  • 모델 관리 목록에 제공자·사용 여부 필터를 추가했습니다. 등급의 모델 선택에는 API 키 설정 여부와 무관하게 전체 사용 상태가 켜진 모델만 표시합니다. 연결한 모델은 순서를 유지하며 해당 등급에서만 일시 중지할 수 있습니다. Central 마이그레이션 후 기존 연결은 모두 사용 상태로 유지됩니다.

  • 보고서·대시보드 분석은 설치된 앱별 API 도구를 모두 나열하는 대신 공통 Resource 탐색·조회 도구를 사용합니다. 보고서·대시보드 작성과 첨부파일 도구는 유지해 앱이 늘어날 때 발생하는 도구 개수 초과를 방지합니다. 내부 Router JSON이 채팅에 표시되지 않도록 하고, 제공자의 요청 거부를 사용량 누락 오류로 바꾸지 않고 원래 오류로 전달합니다.

  • 응답을 받기 전에 Anthropic 크레딧 부족으로 거부되면 설정된 대체 모델을 시도합니다. 일반적인 잘못된 요청은 계속 재시도하지 않습니다.

  • Agent 요청 해석은 모델별 최대 15초, 전체 최대 30초를 기다리도록 조정해 약 1.5초 만에 대체 모델로 넘어가던 문제를 개선했습니다. Router 로그에 실패하거나 응답을 받은 모델의 제공자·모델명·소요 시간을 남기고, 제한 시간 초과는 별도 실패 사유로 구분합니다.

  • Agent GET 도구가 배열과 중첩 조회 조건을 Core에 전달할 때 구조를 유지합니다. 여러 조직 대상을 지정한 작업함 조회에서 발생하던 422 오류를 수정했습니다. 빈 조회 컬렉션은 조건에서 조용히 빠지지 않도록 요청을 거부합니다.

  • 프로세스·의사결정 초안 편집기가 Agent의 선택 필드에 들어온 null을 처리합니다. 필수 필드 검증과 확장 값의 명시적 초기화 동작은 유지합니다.

  • App 카탈로그의 비활성화 영향을 빨간색 버튼과 팝오버로 표시해 긴 안내가 카드 전체 높이를 늘리지 않도록 수정했습니다. 활성 상태가 아닌 앱에서는 이 안내를 숨깁니다.

  • 접근 카탈로그 요청에 시도당 30초 제한을 적용하고 마지막 사용 화면이 해제되면 요청을 취소합니다. 역할 목록의 기존 오류·재시도 화면을 통해 응답이 멈춘 요청을 페이지 새로고침 없이 다시 시도할 수 있습니다. 기존 쿼리 재시도 규칙은 계속 적용되며, 마이그레이션이나 SDK 업데이트는 필요하지 않습니다.

  • Agent 대화는 전역 법인 선택 없이 권한 있는 조직 범위를 조회합니다. 프로세스 카탈로그의 법인 경로 의존성을 제거하고, 내 작업함은 통합 작업 조회를 사용하며, 데이터·조합 조회는 페이지 분할 전에 권한 범위를 적용합니다. 명시적으로 범위를 제한한 서비스 토큰은 제한을 유지하며, 담당 그룹 생성 대상이 여러 개이면 법인을 지정해야 합니다. SDK·App 업그레이드는 필요하지 않습니다.

  • 분석 데이터 추출은 목록 필터와 별도로 조회 가능한 날짜 컬럼의 date_ranges 조건을 지원하며, 과거 레코드에도 적용할 수 있습니다. SDK나 App 업데이트는 필요하지 않습니다.

  • 전자결재 관리 화면은 이제 양식·경로 정책 읽기 권한을 요구하지 않고 생성 권한으로 생성 대상과 작성 카탈로그를 조회합니다. 테넌트 카탈로그 생성 권한자는 임의의 법인을 지정하지 않고 고정 사용자 경로 단계를 포함한 테넌트 범위 구성을 만들 수 있습니다. 생성된 법인 소유 양식은 권한이 있는 대상이 없거나 하나 또는 여러 개인 경우에도 생성 대상 선택기를 유지하며, 잘못된 대상 URL을 테넌트 전체 접근으로 처리하지 않습니다. 미디어 편집 가능 여부도 허용된 업로더와 법인 범위 수정 권한을 포함한 서버의 레코드 단위 인가 결과를 따릅니다.

  • 테넌트 Resource Reference 옵션 조회는 SDK helper를 통해 테넌트 소비자와 대상의 권한이 모두 일치해야 합니다. 기존 법인 경로는 호환되며, 새 테넌트 경로를 쓰는 소비자는 법인 placeholder 대신 테넌트 소유 참조 문맥을 보내야 합니다.

  • BPMN에서 여러 요소를 선택해 이동한 뒤 놓아도 모든 요소의 위치와 선택 상태가 유지됩니다. 실행 취소 한 번으로 전체 이동을 되돌릴 수 있습니다. 별도 업그레이드 작업은 필요하지 않습니다.

  • BPMN에서 결정규칙을 만들면 사용 가능한 권장 템플릿으로 초안을 시작합니다. 저장 전에 내용을 확인하거나 다른 템플릿으로 바꿀 수 있으며, 목록을 다시 불러와도 수정 중인 초안을 덮어쓰지 않습니다. 별도 업그레이드 작업은 필요하지 않습니다.

  • Agent 위임 토큰 요청의 세션 UUID가 잘못된 경우 PostgreSQL 오류 대신 입력 검증 응답을 반환합니다. 호출자는 채팅 세션의 공개 UUID를 전달해야 합니다.

  • 검색 대상 계산에서 레코드 소유 범위와 권한 범위를 구분하여, 허가되지 않은 운영 단위를 노출하지 않으면서 허가된 운영 단위는 검색할 수 있도록 수정했습니다.

  • Agent의 법인 조회에 멤버십 기반 표시 범위를 적용합니다. 법인을 명시한 데이터 구성 카탈로그는 해당 법인과 그 안에서 허가된 운영 단위의 권한만 표시합니다.

  • 패키지 진단 명령이 로컬 소스 체크아웃뿐 아니라 Composer로 설치한 App도 확인합니다. 생성 명령의 소스 전용 범위는 유지합니다.

  • Agent 모델 등급 배정 테이블에 누락된 외래 키 인덱스를 추가했습니다. 업그레이드 시 새 중앙 DB 마이그레이션을 적용해야 하며 기존 배정은 보존됩니다.

  • 로컬·운영 환경 예제에 선택적인 Agent 실행 용량과 세션 분산 설정을 설명했습니다. 설정을 활성화하지 않으면 기존 Redis 구성을 상속합니다.

  • 리소스의 범주형 필터에 다중 선택을 명시했습니다. 같은 범주 안에서는 OR, 서로 다른 범주 사이에서는 AND로 조회하며, 작성 규칙과 생성 모델 스텁에도 적용합니다. 옵션을 생략했을 때의 런타임 동작은 바꾸지 않습니다. 리포트·전자결재·전자서명·디렉터리·사용량 목록의 지원 열을 페이지 분할 전에 정렬하며, 리포트 필터를 지웠을 때 보관 조건이 다시 적용되지 않습니다.

  • 리소스 툴바를 새로고침·필터·더보기 순서로 통일했습니다. 리포트 데이터 관계는 권한 있는 카탈로그의 연결을 사용하는 드래그 가능한 힘 기반 그래프로 표시하며, 고립된 항목의 표시를 선택할 수 있습니다.

  • 리포트 관리를 사이드 메뉴 없는 전체 너비 테이블로 표시합니다. 소유 관계와 보관 상태를 열과 독립적인 툴바 필터로 제공하고, 생성 버튼은 페이지 헤더에 유지합니다. 기존 조회 링크의 필터도 유지합니다.

  • 전자결재·전자서명·업무 프로세스 개요를 포함한 공통 섹션 카드의 빈 상태와 오류 안내를 세로 가운데에 배치합니다. 옆 카드가 더 높아져도 가운데 정렬을 유지합니다.

  • 리포트와 아티팩트가 즐겨찾기 행과 더보기 메뉴를 함께 사용합니다. 리포트 메뉴에서 리포트 관리로 이동하고 권한이 있는 편집·복제·보관 작업을 실행할 수 있습니다.

  • 사용자 가져오기에서 연결된 사람의 실명·연락용 이메일·전화·주소를 함께 받습니다. 계정 이메일을 중복 기준으로 사용하고 기존 계정은 건너뛰며, 인사 레코드는 생성하지 않습니다. 다른 파일 열에 연결된 항목도 다시 선택하여 연결을 옮길 수 있습니다.

  • 아티팩트 목록을 작업 탭 안에서 엽니다. 리포트 레일 메뉴에 즐겨찾기와 최근 수정된 리포트를 표시합니다. 대시보드 소유 범위는 법인으로 표기하고 전자서명 양식 목록은 공통 법인 선택기의 너비를 따릅니다.

  • 법인별 전자서명 양식은 법인을 선택한 뒤 데이터 카탈로그를 요청하고 원본 파일을 받습니다. 업무 프로세스의 권한 조회 중 상태와 조회 실패를 접근 거부로 표시하지 않으며, 전자결재 받은함도 읽기 권한 확인이 끝난 뒤 제출 전용 상태를 표시합니다.

  • 리포트와 대시보드 생성 버튼을 업무 프로세스와 같은 둥근 공통 동작 버튼으로 통일했습니다.

  • 업무 프로세스·결정 규칙 목록에서 법인을 선택하지 않으면 권한 오류 대신 조회 가능한 모든 법인의 정의를 표시합니다. 명시한 법인의 권한 검사는 유지하며 기존 단일 법인 링크도 사용할 수 있습니다. 생성 대상은 별도로 선택하고, 행 동작은 저장된 소유 법인이나 조회 가능한 법인을 사용합니다. 마이그레이션이나 SDK 업데이트는 필요하지 않습니다.

  • 대시보드 관리를 열면 이전에 선택한 화면이 남아 있지 않고 별도의 Work Tab에서 표시됩니다.

  • 대시보드 관리는 조직 범위, 기본 상태와 커서 기반 추가 로딩을 유지하면서 표준 테이블 컨트롤을 사용합니다. 이름·생성일·수정일 컬럼을 눌러 양방향으로 정렬할 수 있습니다. 별도 즐겨찾기 필터는 제거하고 행별 즐겨찾기 등록은 유지합니다.

  • Spotlight에서 즐겨찾기 항목을 별도 카테고리로 계속 표시합니다. 저장한 항목이 없을 때는 빈 상태를 안내하고, 더 많은 항목이 있으면 전체 즐겨찾기 목록으로 이동할 수 있습니다.

  • 리포트 라이브러리에 표준 테이블 컨트롤과 간결한 상세 즐겨찾기 동작을 적용했습니다. 기존 검색, 조직 범위와 커서 기반 추가 로딩은 유지됩니다.

  • Agent Gateway 체크포인트 풀은 유휴 데이터베이스 연결을 열지 않으며 테넌트 saver당 연결을 두 개로 제한합니다. 설정한 컨테이너별 체크포인트 연결 예산이 명시된 상한을 넘으면 시작하지 않습니다. 운영자는 모든 Gateway 인스턴스와 사용량 outbox 전달용 연결 여유를 함께 고려해 데이터베이스를 구성해야 합니다.

  • Agent 실행 입장은 중앙 전역 및 테넌트별 작업 한도, 제한된 대기열, lease 갱신, 작업 turn으로 구분한 release를 적용합니다. Provider 호출은 별도의 전역 및 credential-pool 한도를 사용하며, 플랫폼 credential은 제공자 pool을 공유하고 테넌트 BYOK credential은 테넌트 범위로 분리됩니다.

  • Agent Gateway 컨테이너 샤드 확장 시 기존 세션 경로를 유지합니다. 새 샤드는 서버가 발급한 세션 경로 집합이 있을 때만 사용하므로, 매핑되지 않은 복구 세션이 컨테이너 이름 목록 변경만으로 다른 인스턴스로 이동하지 않습니다. cutover 이후 생성된 세션은 서버가 발급한 route-name 집합을 delegation token에 포함하며, 기존 세션은 drain될 때까지 legacy route를 유지합니다.

  • 관련 없는 Agent 대화에는 Canvas 안내나 활성 결과물 원문을 더 이상 넣지 않습니다. 명시적으로 선택한 결과물과 제한된 후속 요청에는 원문 문맥을 유지하며, 첨부 데이터는 신뢰할 수 없는 참고 자료로만 처리합니다.

  • 테이블 프레젠테이션에서 내부 식별자를 노출하지 않고 권한 있는 출력 열을 선택할 수 있습니다. 알 수 없거나 중복된 열은 계속 거부합니다.

  • 문맥에서 리포트 만들기를 저장하거나 취소하면 다른 리포트가 선택되지 않고 원래 Work Tab으로 돌아갑니다. 저장 시 대시보드 초안을 유지하며 새 리포트를 추가합니다.

  • 대시보드 프록시 도구와 Gateway에서 실행하는 대시보드 처리기가 같은 대시보드 네임스페이스를 사용할 때 로컬 Agent Gateway가 시작하지 못하던 문제를 수정했습니다.

  • Agent에서 대시보드나 현황을 요청하면 권한이 있는 리포트를 찾고 미리 본 뒤, 필요한 경우 확인을 거쳐 생성하여 실제 리포트 리비전에 연결된 편집 가능한 Dashboard spec을 반환합니다. 리포트만 요청하면 저장된 리포트를 만들거나 재사용하며, 기존 접근 권한과 확인 절차를 그대로 적용합니다.

  • 사용 가이드의 화면 캡처를 마우스나 키보드로 선택하면 새 탭에서 원본 크기로 열 수 있어 작은 화면 글자를 읽기 쉬워졌습니다. 캡처 사이에서도 절차 번호가 이어집니다. 별도 업그레이드 작업은 필요하지 않습니다.

  • 사용 가이드 상세 페이지에 Developers 문서와 같은 탐색 방식을 적용했습니다. 업무 영역을 접고 펼칠 수 있으며, 영역 안에 가이드 목록을 바로 표시합니다. 현재 가이드를 강조하고 펼침 상태를 기억합니다. 목차를 누르면 해당 제목으로 이동하며, 긴 사이드바는 독립적으로 스크롤할 수 있습니다. 별도 업그레이드 작업은 필요하지 않습니다.

  • Agent의 대시보드 미리보기와 보고서 저장 도구에 필요한 표시 설정의 입력 구조를 안내합니다. 데이터 구성 도구가 실패하면 요청 상세보다 번역된 설명을 먼저 표시하고, 대시보드 데이터 및 보고서 도구 이름을 번역합니다. 별도 마이그레이션은 필요하지 않습니다.

  • Agent의 데이터 구성 미리보기, 보고서 저장 및 고정 리비전 조회 시 필요한 데이터 읽기 권한으로 세션 토큰을 교환합니다. 저장된 보고서는 서버가 접근 가능한 리비전을 확인한 후 권한을 교환하며, 데이터 소스를 사용할 수 없어도 보고서 자체의 접근 정책에 따라 메타데이터를 읽을 수 있습니다. 기존 데이터 권한과 조직 범위는 유지됩니다. 로컬에서는 Gateway를 재시작하고, 운영에서는 대응하는 Gateway 버전을 함께 배포해야 합니다.

  • Agent 도구 내역에서 과거 실패 횟수를 사용자 수정 요구처럼 표시하지 않습니다. 데이터 요청 구성 실패의 주체를 Nexia로 명확히 하고, 원본 요청은 상세 내역에만 표시합니다. 개별 실패 기록은 유지하며 재시도가 성공한 것으로 표시하지 않습니다.

테넌트 App 설치와 로컬 개발

  • 게시하거나 준비 상태를 바꾸지 않고 개발할 수 있는 로컬 콘솔 명령 nexia-apps:install-dev-app <app> --tenant=<id>를 추가했습니다. 운영 CLI와 HTTP 설치에는 기존 게시·사용 자격·준비 상태 검사가 적용됩니다.

  • 신규 테넌트는 Core 스키마만 준비합니다. App 설치 시 선택한 App과 선행 App을 마이그레이션한 뒤 초기화합니다. 이후 테넌트 마이그레이션은 비활성 App을 포함한 설치 이력 대상으로 실행합니다. 비활성화해도 테이블·데이터는 보존하며 스키마 변경은 테넌트별로 직렬화합니다.

  • 기존 테이블과 마이그레이션 이력은 유지합니다. 신규 생성 시 미선택 App까지 포함할 수 있는 테넌트 schema dump는 로드하지 않습니다. 이전에 준비한 pending 테넌트의 스키마는 보존합니다. 명시적 마이그레이션 경로는 유지보수용으로 사용할 수 있습니다. 로컬 패키지 overlay와 DB는 운영과 분리해야 합니다.

  • 업그레이드 시 배포의 tenants:migrate --force 단계를 유지하세요. 새 App은 Central 등록·게시와 필요한 비공개 사용 자격 부여 후 테넌트 설치 명령으로 설치합니다. 마이그레이션 실패 시 완료된 단계의 이력은 남으므로 원인을 수정한 뒤 설치를 재시도하세요.

  • 테넌트 마이그레이션의 --database는 연결 템플릿만 선택하며 스키마 쓰기는 현재 테넌트 DB에서 실행합니다. --seed는 대상 스키마 업데이트가 모두 끝난 뒤 실행합니다.

  • App 생성 시 로컬·설치 App 키 중복과 기존 패키지 경로를 파일 쓰기 전에 거부하며 dry-run에도 적용합니다. 기존 App의 저장소 지원 파일 추가는 --repository-files-only로 계속 사용할 수 있습니다.

리포트 조회와 탐색

  • 리포트 목록에서 화면 이동 없이 결과를 열어볼 수 있습니다. 전체 리포트의 관계는 필요할 때 열며, 앱·리소스 검색 선택을 유지하고 기존 설정이 초기화되는 변경은 확인을 거칩니다. 선택 가능한 리소스 수도 표시합니다.
  • 관계 화면의 범위 내 전체 보기에는 연결 없는 리소스도 포함하며, 토글의 선택 상태를 시각적으로 구분합니다.
  • 기존 단일 소스 v1 및 참조 그래프 v3 리포트에서도 리비전을 변경하지 않고 결과 값 선택과 원본 레코드 조회를 지원합니다. 구형 공통 기준 결합 리포트는 기존 조회·편집을 유지하며 탐색 제한을 안내합니다. 재시딩이나 SDK 업그레이드는 필요하지 않습니다.

수정

  • Resource 생성기의 조직 검증 문구를 번역 키로 바꿔 tenant·법인 소유 Resource 모두 내장 번역 검사를 통과하도록 수정했습니다.
  • Composition 값 집계가 App의 required_dimensions를 검사합니다. 계산식과 비교 조회에도 적용됩니다. 같은 source의 필수 차원을 선택하거나 AND의 단일 값 equality 필터로 제한해야 합니다.
  • App Process handler에 실행 Token의 elementId를 전달합니다. 결재 결과를 보낼 때 사용할 수 있도록 정확한 Case와 최초 Resource 참조와 함께 저장하세요.

업그레이드

실행 현황을 사용하기 전에 중앙 분석 실행 테이블 마이그레이션을 적용해야 합니다. 진단 기록은 기본 30일 보관하며 애플리케이션 스케줄러가 매일 정리합니다. 행 수 또는 조회 시간 한도를 넘기면 일부 데이터를 분석으로 넘기지 않고 중단합니다. 현재 한도는 초기 보호값이며 실제 측정으로 확정한 최적 처리 용량은 아닙니다.

새 Gateway 사용 전에 Central 역할 배정 마이그레이션을 적용해야 합니다. 역할별 모델 배정은 선택 사항이며, 배정하면 Primary 상속보다 우선합니다. 기존 agent.role_models 설정은 모델을 명확히 식별할 수 있는 항목만 이관하며, 건너뛴 식별자는 로그에 남깁니다. 보존된 JSON은 더 이상 실행 설정으로 읽지 않으며, 기존 설정이 없으면 모델을 자동 배정하지 않습니다.

로컬 Agent/full 모드는 분석 제어부를 시작하고 격리된 SQL/Python runner를 빌드합니다. 분석 사용 전에 AGENT_ANALYSIS_CONTROLLER_TOKEN을 설정해야 합니다. 운영 분석에는 별도 Worker/Sandbox 배포와 서비스 간 비밀값 설정이 필요하며, 운영 workflow에 분석 검증·배포와 Worker 생존 확인, Gateway 연결 배포, Laravel Cloud 배포 요청 순서를 연결했습니다. 최초 활성화 전에 Core 필수 변경과 GitHub production Environment 설정을 적용하세요. Laravel Cloud의 비밀값은 CI에서 자동 설정하지 않습니다. 분석 설정 안내를 참고하세요.

ProcessWorkActionInvocation.elementId를 제공하는 SDK 0.2.5 이상이 필요하며, 커밋된 Composer lock에는 SDK 0.2.5를 반영했습니다. 이미 생성한 컨트롤러는 조직 검증 문구 네 곳을 __('access.organization_target.select_one_legal_entity')로 바꾸고 --force 없이 생성을 재실행하세요. 기존 사용자 수정은 보존됩니다. 집계 의존 조건은 App의 필드 metadata에서 선언하며 Procurement provider 연결은 별도 App 통합 작업입니다.

  • 직접 작성한 폼도 첫 입력 섹션에서 NxResourceFormLegalEntityField를 사용해 스키마 폼과 동일한 전체 너비 법인 선택과 수정 시 저장된 법인명 표시를 재사용할 수 있습니다. 적용 앱에는 이 컴포넌트를 제공하는 Core와 SDK가 함께 필요합니다. 적용 범위와 운영조직 입력의 업무별 동작은 유지합니다.

  • 폼 입력용 NxOperatingUnitSelector를 추가했습니다. 전체 너비와 기본 번역을 호스트에서 제공하고 기존 참조 선택기의 로딩·새로고침·관련 항목 생성 후 복귀 동작을 재사용합니다. 인가된 후보와 연관 필드 초기화·수정 가능 여부는 앱에서 관리합니다. 운영조직 필드를 자동으로 추가하거나 목록·Shell 범위를 변경하지 않습니다.

  • Agent 집계 도구에 서버와 같은 영문 소문자 alias 규칙을 전달합니다. 번역된 표·차트 표시명과 조회 식별자를 구분하며, 모든 모델 후보가 실패한 일반 작업을 완료로 표시하지 않습니다. 과부하·사용량 제한과 요청 해석 실패를 실시간 대화와 작업 이력에서 서로 다른 오류 코드로 유지합니다. 새 오류 코드 provider_capacity, router_failed를 종료 콜백에서 받을 수 있도록 Core를 Gateway보다 먼저 배포해야 합니다.

  • 앱 런처를 3열로 정리하고 아이콘과 선택 영역을 줄였습니다. 앱 family별로 새 행에서 시작하며 이름은 그룹마다 한 번만 표시합니다.

  • 테넌트 앱 카탈로그는 앱 family별로 새 행에서 시작하고 제목을 한 번만 표시합니다. 같은 행의 카드 높이를 맞추고 설명과 버튼 사이 여백을 줄였습니다. 게시자와 공개 범위는 반복되는 뱃지 대신 보조 텍스트로 표시합니다. 앱 관계와 비활성화 영향은 hover·키보드 포커스 시 같은 방식으로 안내하며, 비활성화 영향은 경고 배경 없이 빨간 글자로 표시합니다. 카드 작업은 상태 뱃지 옆 More 메뉴에 모으고 헤더의 세로 정렬을 맞췄습니다. 앱 이름이 한 줄을 유지하도록 카탈로그 카드의 베타 뱃지는 표시하지 않습니다.

  • Central 회원가입의 앱 선택은 family별로 새 행에서 시작하며, 앱 목록이 여러 행으로 나뉘어도 제목은 한 번만 표시합니다.

  • Agent 대화를 다시 열면 자동을 포함한 Grade 선택을 복원합니다. 사용자가 고른 설정과 마지막 실행 등급을 따로 저장합니다. 이 Core 변경을 적용하기 전에 테넌트 add_model_selection_to_agent_chat_sessions 마이그레이션을 실행해야 합니다. 기존 대화는 마지막 실행 등급을 사용합니다. 응답 종료 뒤 서버의 작업 상태를 확인해 목록을 갱신하고, 이미 확인한 결과의 완료 알림이 뒤늦게 뜨지 않도록 했습니다.

  • Router의 기존 256토큰 출력 한도를 늘려 분류 JSON이 잘리는 문제를 줄였습니다. 추가 확인이 필요한 요청도 선택 카드 도구를 가진 작업 모델로 넘깁니다. 프로세스 추천은 기존 답변을 재사용하고 구체적인 초안 선택지를 제시하도록 안내합니다. 형식이 잘못되거나 잘린 분류 결과는 계속 실행을 중단합니다.

  • 대화에서 붙여넣거나 선택한 파일의 전송·서버 처리 대기를 중지할 수 있습니다. 업로드 중에도 질문을 입력할 수 있으며, 취소하거나 대화를 이동한 뒤 도착한 결과는 첨부하지 않습니다.

  • 전자 결재 작성 화면의 법인 선택기를 페이지 헤더로 옮기고, 법인 미선택 안내와 권한 부족을 구분합니다. 이동 대상에 법인이 지정되기 전에는 양식·임시 저장 목록을 미리 요청하지 않습니다. 업무 진행 목록에 공통 도구 모음, 상태 다중 필터, 페이지 분할 전 서버 상태·시작일 정렬을 연결합니다. 별도 마이그레이션은 필요하지 않습니다.

  • 업무 프로세스 배포·작업 배정 그룹 관리 화면의 선행 조회는 이동 대상에서 선택한 법인을 사용합니다. 법인 미선택 상태에서는 요청하지 않아 대상이 없거나 다른 범위로 조회되는 문제를 방지합니다.

  • ResourceTable 데이터 열에 너비 조절 경계를 표시하며 드래그나 키보드로 조절할 수 있습니다. 더블클릭 또는 Home 키로 한 열을, 더보기 → 열 너비 초기화로 전체 열을 복원합니다. 열을 줄여도 표는 화면 폭을 채우고 액션 열의 고정 너비는 유지합니다. 안정적인 테이블 ID가 있는 표는 테넌트·사용자·테이블별로 이 브라우저에 너비를 저장합니다.

  • 리소스 목록의 필터 버튼 주변에 배지 공간을 확보해 적용 개수가 잘리지 않도록 했습니다. 전자 결재·전자 서명·작업함·관리 목록의 적용된 필터는 검색창 대신 필터 버튼 옆에 표시합니다.

  • 운영 Agent 배포는 CLOUDFLARE_ACCOUNT_ID, AGENT_ANALYSIS_CORE_URL, AGENT_ANALYSIS_WORKER_URL을 GitHub Variables에서 읽습니다. 이 workflow를 적용하기 전에 기존 AGENT_EDGE_TOKEN과 AGENT_SERVICE_TOKEN을 GitHub Secrets에 등록하세요. 모든 Gateway 배포에서 두 토큰과 분석 토큰·URL을 주입합니다. Laravel Cloud의 Edge·Service·분석 controller 토큰은 별도로 같은 값으로 유지해야 합니다. 선택한 배포에 필요한 값이 없으면 외부 배포 전에 중단합니다. CLI 직접 배포 시 CI가 설정한 URL 변수를 유지하려면 --keep-vars를 사용하세요.

  • 결재 양식과 공용 결재선 생성 폼에서 기업 공통·법인 전용 범위와 대상 법인을 선택할 수 있습니다. 결재선 범위를 변경하면 이름·설명은 유지하고 참여자와 단계 설정은 새 범위에 맞게 다시 선택합니다. 기존 권한 검사를 유지하며 별도 마이그레이션은 필요하지 않습니다.

  • 전자서명 목록의 법인 선택기를 공통 너비로 맞추고 대량 서명 요청 목록의 중복 본문 제목을 제거했습니다. 서명 요청 현황과 요청받은 서명 목록의 고정 열 비율을 제거해 법인 열이 눌리거나 헤더가 불필요하게 높아지는 문제를 수정했습니다.

  • NxRadio에 선택적 variant="card"를 추가했습니다. 기존 네이티브 라디오와 그룹 계약을 유지하며 label에 설명 콘텐츠를 넣을 수 있습니다. 기존 기본형은 그대로 동작합니다. 카드형을 사용하는 App에는 대응하는 Core 호스트와 SDK가 모두 필요하며 데이터 마이그레이션은 없습니다.