Ibis 0.7.1
HWP·Word용 서지·인용 관리 도구 Ibis 0.7.1
Added
- 단행본 ISBN 권위조회 — 논문의 DOI 에 해당하는 단행본 권위 키. 국립중앙도서관 서지정보유통지원시스템(국내서 권위·무료 인증키) → OpenLibrary(키 불필요·해외서) → Google Books(키 있으면) 순으로 조회·병합. 도구 창의 ISBN으로 추가, 편집 폼(단행본·챕터)의 ISBN·판차 + [조회](빈 칸만 채움). 실측 주의: 키 없는 Google Books 는 공용 쿼터를 공유해 429 가 흔하므로 실패로 처리하고 넘어간다 — 국내서는 국립중앙도서관 키를 넣어야 정확하다.
- EndNote PDF 파일명 추정 첨부 — 포인터(
internal-pdf://)로 못 붙인.Data안 PDF 를 파일명 단서로 한 번 더 붙인다. 오첨부는 잘못된 인용으로 이어지므로 확실할 때만: 연도 일치 + 저자 성(또는 한글 이름) 일치 + 그 조건을 만족하는 서지가 정확히 1건 + 아직 첨부 없음. 애매한 나머지는 손대지 않고 개수를 보고한다. - 검색 결과 드래그 추가 — 외부 검색 결과 행을 선택 없이 바로 끌어 컬렉션·전체 서지·미분류에 놓으면 내 서지로 채택 후 배정. 끄는 동안 놓을 수 있는 사이드 항목을 점선으로 표시.
- 컬렉션 접기·숨기기 — 하위가 있는 컬렉션에 접기/펼치기 캐럿, 우클릭 숨기기로 트리에서 빼고 하단 '숨긴 컬렉션' 그룹에 모음(펼쳐 보기·개별 표시·모두 표시). 상태는 라이브러리에 저장되어 다른 PC 로 따라온다.
- 상세·그래프 뜯기 ⇄ 도킹 — 상세 패널 우상단·그래프 헤더의 그립(⋮⋮)을 끌면 별도 창으로 분리, 별도 창 타이틀바의 [도킹] 으로 본창 패널로 되돌린다(상세는 해당 문헌 선택 상태, 그래프는 스코프 승계). pywebview 로는 창을 실제로 끌어 붙일 수 없어 이 방식으로 근사했다.
- AI 설정 재구성 — 무엇이 어떻게 설정돼 있는지 한눈에 보이도록. 맨 위 저장된 구성 카드(1차 제공자·준비 상태·모델·폴백과 폴백 모델/강도), 제공자별 동적 폼(CLI 는 키 칸 숨김·설치 상태 표시, API 는 키 상태 표시). 모델은 텍스트 입력 대신 [모델 조회] —
agy models로컬 질의, Anthropic·OpenAI·Gemini 는 모델 목록 API(채팅 가능 모델만), Claude CLI 는 목록 명령이 없어 별칭에 성격 설명(fable/opus/sonnet/haiku), '직접 입력'으로 특정 판 고정 가능. - 추론 강도(effort) 선택 — CLI 제공자의
--effort를 노출(실측: claude low/medium/high/xhigh/max, agy low/medium/high). 지원 목록 밖 값은 폐기. API 제공자는 모델·계정별로 파라미터가 갈려 미노출. - 폴백 제공자 동등 설정 — 폴백도 1차와 같은 수준으로 자기 API 키·모델·추론 강도를 지정(이전에는 제공자만 골랐다).
- AI CLI 상태·원클릭 업데이트 — 설치된 CLI 버전 표시 + [업데이트](
claude update/agy update/npm), 미설치는 [설치]. - 외부 PDF 드래그 추가 — 파일을 서지 목록·컬렉션에 끌어다 놓으면 첨부/문헌 추가. 경로 미주입 환경 대비 내용 업로드 폴백 + 드롭존 오버레이 피드백.
- PDF 뷰어 내 AI 분석 버튼 — 뷰어에서 곧바로 리서치 노트·비판적 검토 실행.
- 서지 언어 자동 판별 — PDF 서지추출 시 본문 언어(한글/라틴 우세)를 감지해
language필드를 채우고, 그 결과로 국·영 필드 배정을 결정. 인용·서지 렌더의 언어별 서식(따옴표 등)이 자동으로 맞는다. - KCI 국문 초록 ScienceON 폴백 — KCI 가 국문 초록을 주지 않는 문헌은 서지 추가 후 배경 보강에서 ScienceON 을 제목·발행연도로 대조해 국문 초록을 채운다(오매칭 방지: 정규화 제목 완전일치 또는 15자 이상일 때만 포함관계 + 연도 ±1). 채울 때 KCI 가 초록칸에 넣어둔 영문은 영문칸으로 옮겨 보존. 다만 KCI 에 없는 국문 초록은 ScienceON 에도 대개 없어 실측 회수율은 7%(42건 중 3건, 미매칭 21건은 ScienceON 미수록) — 기대치를 낮게 볼 것. KISTI 게이트웨이가 연속 호출에 429 를 내므로 소스 1회 생성·재사용, 건 사이 간격, 429 백오프 재시도를 함께 넣음.
Changed
- 고급 검색을 검색줄 아래 인라인 바로 — 별도 모달을 없애고 상단 검색을 심플 ⇄ 고급 펼치기·접기로. 검색어는 그대로 상단 검색창을 쓰고 조건(소스·필드·유형·정렬·저자·연도·학술지)만 아래에서 좁힌다. 접어도 조건이 걸려 있으면 검색줄에 요약 칩으로 알려 숨은 필터를 막고, [조건 지움]과 Enter 시 조건 동시 적용을 제공.
- 외부 검색 빈 화면 간소화 — 아이콘·설명 2줄·전폭 버튼 2개의 큰 안내판을 조용한 두 줄로. 검색은 위 검색창에서 하는 일이므로.
- '최근 추가' 정렬 — 진입 시 추가일 내림차순으로 맞춘다(저자순으로 열려 '최근'의 뜻이 사라졌던 것). 이후 칼럼 헤더 클릭은 자유.
- 개발 중 화면 캐시 — 소스 실행에서는
index.html수정시각을 캐시 마커에 섞어 자동 버스트(편집할 때마다 손으로 캐시를 지우던 작업 제거). 배포판은 종전대로 버전만 본다. - 설정 창 — 탭 전환 시 취소·저장 버튼이 오르내리던 것을 하단 고정(패널 세로 플렉스), 창 크기를 탭 구성에 맞게 축소(820×894 → 620×660), 입력칸이 창 폭 절반만 쓰던 문제 해소(설정에서 2단 격자 상속 해제). '연동' 탭 → '외부 API' 로 개명하고 학술 DB 키 / 도서관 원문 연결 두 섹션으로 분리.
- AI 키·모델 저장 구조 — 제공자별 슬롯(
ai_api_key_<prov>·ai_model_<prov>·ai_effort_<prov>)으로 분리하고 기존 설정은 시작 시 1회 이관. 벤더가 다른 모델명이 폴백에 물려 400/404 로 죽던 구조를 해소하고, CLI 제공자를 고른 상태의 잔류 키 입력이 공용 슬롯에 새던 누수를 차단. - 서지 목록 수록처 — 비어 있으면 출판사(학위논문은 수여기관)를 표시 — 단행본 행이 공란이던 문제.
- 디자인 시스템 동기화 — 토큰·스타일을 실사용
web/index.html에서 기계 생성(gen:styles), 프리뷰 컴포넌트 세트를 실물 기준으로 재편,check:mirror로 어긋남 검사. 손으로 색을 옮겨 적어 두 세대 뒤처졌던 원인 제거.
Fixed
- 인앱 업데이트 무증상 실패 — robocopy 는 '폴더는 있으나 접근 거부' 에서 종료코드 0 을 돌려준다(실측). 그래서 쓰기 불가한 위치(Program Files 수동 설치·폴더 잠금·백신 차단)에서는 수십 MB 를 내려받고 체크섬까지 통과한 뒤 아무것도 바뀌지 않았는데 '완료' 로 보고하고 구버전을 재실행했다. 다운로드 전 쓰기 프로브로 조기 차단, 교체 후
fc /b로 실행파일 내용을 직접 비교해 성공 판정, 백업 실패 시 설치 폴더 미변경, 결과를 상태 파일로 남겨 재시작 후 실패 사유를 팝업으로 통보. - 번들 교체 결함 4건(0.7.0 직후) — 크기·시각이 같은 파일을 건너뛰어 구버전이 잔존(
/IS), 최상위 미러링이 Inno 언인스톨러를 지울 위험(_internal만/MIR), 헬퍼 배치를 UTF-8 로 써서 한글 사용자명 경로에서 교체 전면 실패(OEM 인코딩), 앱 미종료 시 무한 대기(180초 제한). - 빌드·체크섬 신뢰성 —
.ps1에 UTF-8 BOM(없으면 PS 5.1 이 ANSI 로 읽어 한글 깨짐·파싱 실패), zip 을 OneDrive 밖에서 만들어 해시를 확정한 뒤 복사본과 대조(동기화 폴더에서Get-FileHash가 빈 값을 돌려주거나 충돌로 옛 파일이 되돌아오는 것을 탐지 — 0.7.0 의.sha256가 해시 없이 생성된 원인). 0.6.0~0.7.0 자산 체크섬 소급 보정. - 영문 논문 서지추출 — 추출값이 국·영 병기 칸에만 들어가 본 제목이 파일명으로, 저자가 공백으로 남던 문제(영문 문서로 판정되면 본 필드로 승격).
- 대용량 PDF — 100MB 급 PDF 가 열리지 않던 OOM(단일 base64 → 3MB 청크 로드), 수백 쪽 문서의 렌더 실패(전량 즉시 렌더 → 지연 렌더), 목차/본문이 따로 번호를 갖는 문서의 쪽번호 구간 추정.
- 외부 검색 20건 제한 — 모드 재설계 때 페이지 바가 외부 검색 뷰에서 누락돼 21건 이후를 볼 수 없던 것.
- 중복 점검 — 한쪽만 DOI 가 있는 동일 문헌이 안 잡히던 문제(DOI·제목 union 병합), 행 클릭 시 상세 패널이 휴지통을 가리던 문제(상세 열릴 때 목록을 밀어냄), 행 휴지통 밀도 조정.
- 목록 자동 재정렬 — 서지를 편집하면 행이 즉시 재정렬돼 화면 밖으로 사라지던 것 — 갱신 시 순서 유지, 정렬은 칼럼 헤더 클릭·뷰 진입 시에만.
- 메뉴바·'새 문헌 추가' 가 첫 클릭에 무반응(컨텍스트 요소 온디맨드 생성), 설정에서 테마를 바꾸면 설정 창에만 적용되던 문제(열린 모든 창에 전파), EndNote 임포트 키워드 뭉침 분리(기존 임포트분 소급), 별도 창(설정·도구)에서 상태 메시지가 보이지 않던 문제(토스트 폴백).
- KCI 초록 국·영 배정 —
lang="original"은 '국문'이 아니라 '등록된 대표 초록'이라 국문 논문에도 영문 초록이 들어오고(실측 2,800건 중 58%), 드물게 국·영이 뒤바뀌어 국문 초록이english태그에 실린다. 태그 대신 본문 언어(한글이 최소 20자이면서 라틴 문자보다 많은지)로 배정 — 국문 초록 복구 6건,original이 비어 헛되이 비던 초록칸 채움 23건(2,800건 기준, 손실 0). 절대 글자수로만 판정하면'-법(法)'처럼 한글 용어가 인용된 영문 초록을 국문으로 오판해 영문 초록을 잃으므로 우세 언어로 본다. ScienceON 파서의 국문 판정도 같은 규칙으로 통일.
Security
- 커밋된 KCI 인증키 마스킹 — KCI OPEN API 는 응답에 요청 인증키를 그대로 되돌려준다(
<MetaData><inputData><key>). 그 원응답 XML 3개가 초기 커밋부터 추적돼 살아 있는 키가 저장소 히스토리에 남아 있었다(배포 zip·setup.exe·번들에는 유출 없음 — 전수 확인). 파일의 키를 마스킹하고 추적을 해제,.gitignore에 원응답 덤프 제외 규칙 추가. 키는 히스토리에 남아 있으므로 발급처에서 재발급 필요.
설치
- 처음 설치:
Ibis-0.7.1-setup.exe(관리자 권한 불필요 · 사용자 영역 설치) - 압축본:
Ibis-0.7.1-win64.zip(압축을 풀고Ibis.exe실행) - 기존 사용자는 앱 안에서 업데이트 알림으로 바로 적용됩니다.
- 미서명 베타라 Windows SmartScreen 경고가 뜰 수 있습니다 — [추가 정보] → [실행]
체크섬(SHA256)은 Ibis-0.7.1-win64.zip.sha256 자산에 포함되어 인앱 업데이트가 검증합니다.