본문 바로가기

프로그래밍 기록/OSS | 컨트리뷰션

[AWS/aws-toolkit-jetbrains] 야호 나도 amazon Q 컨트리뷰터

죽어도 안고쳐줘서.. 사실 죽어도 안 고쳐줄것 같아서 직접 고쳣다 흑흑

답답하면 직접 고쳐라.. 그것이 오픈소스다

대 AI 시대. claude, cursor, gemini에 aws q까지 (솔직히… 싸서…😁) 골고루 쓰고 있다. 특히 Q 는 주력으로 쓰는편.

CLI 위주로 쓰지만, VSCode/IDEA 플러그인도 붙여서 쓴다. 나는 WSL 를 아주 사랑하므로.. WSL 에 프로젝트 만들고, 이걸 vscode 나 IDEA에서 여는데. 이론상 완벽하지만... IDEA 는 문제가 좀 많다.

[Intellj] WSL 쓸 때 generated Path 를 C:\\ 에서 찾는 문제 억지로 고치기 이런거..

WSL 에 윈도우 ide 붙여서 쓰는 사람이 별로없어서 이런 세상의 억까를 버티면서 살아야한다.

암튼.. 적당히 타협하면서 쓰면 되는데, aws q 의 idea 플러그인은 위 환경처럼 쓰면 걍 동작이 안된다..

요런문제..

기능 몇가지가 정상동작을 안한다 이런 수준이 아니라 걍 시작부터 암것도 안되서... 로그인말고는 쓸수있는 기능이 없음 ㅠㅠ

github 에 이슈달려고하니까 이미 이슈레이징이 좀 되어있어서 버타고 버티면 고쳐줄꺼라고 생각하고 cli + idea mcp 붙여서 사용하고 있었는데, 버전업이 되도 안고쳐주드라..

 

그래서 걍 고쳣다

고친 코드는 몇줄 안되는데, 원인을 모르겠어서 좀 오래 걸렸다. (플러그인이라, 디버깅 하기도 상당히 귀찮음..)

IDEA  자체는 VirtualFile 을 내부적으로 사용하는데, Q 에게 쏘기 위해서 이걸 URI 로 변경한다.

근데 URI 를 이렇게 변경하더라

return URI("file", "", file.absoluteFile.toURI().path, null)

근데 이러면 이미 UNC 경로인 WSL 경로는 

file:////wsl.localhost/Ubuntu/...

이렇게 된다

file://// 은 비표준적인 URI 이다. (윈도우 환경에서는 대충 다 처리해주는데, 엄격하게 검사하면 잘못된 URI)

그래서 Q (Q 인지 Q lsp 서버인지 그외인지 모르겠지만) 에서 바로 URI exception 이 나서, 안되는 문제..

이게, Chat 을 시작하자마자, Open 한 프로젝트 정보를 넘겨주는데 여기에 파일들도 있어서 그냥 Chat 시작하자마자 깨져버림;;

 

그래서 이런 authority 가 없는 URI 를 미리 체크하고, 잘못됫으면 

file.toPath().toAbsolutePath().normalize().toUri()

요걸로 fallback 시키도록 수정했다.

내 개인적인 생각으로는, 걍 저 방식만써도 될것같긴한데.. 뭔가 의도적으로 manually 하게 조립한것 같아서 (코드 history 를 파보면 원래 nio 의 path 함수를 이용하다가 변경됨)  fallback 하는 방식으로 했다. 그게 backward compatibility 가 완벽하게 보장되기도 하고..

오픈소스 아니었으면, 이런 마이너 환경에서의 오류 평생 안고쳐줄 삘인데.... 오픈소스라 직접 고칠수 있으니까 오히려 좋다..

fix(amazonq): Prevents Q UriError : Validate file URI and fallback to Path.toUri() for WSL by Lee-WonJun · Pull Request #5960 · aws/aws-toolkit-jetbrains

 

fix(amazonq): Prevents Q UriError : Validate file URI and fallback to Path.toUri() for WSL by Lee-WonJun · Pull Request #5960

Types of changes Bug fix (non-breaking change which fixes an issue) New feature (non-breaking change which adds functionality) Description Summary Fix repeated UriError when Amazon Q starts wit...

github.com

gradle check가 lint까지 체크해주는데, test code 성공한 걸 보고 gradle 성공인 줄 알고 lint까지 다 돈 줄 알았는데, 알고 보니까 lint는 깨져 있더라.. 메인테이너가 직접 돌려서 고쳐주었다 크흠..

 

여담) 아직 머지 안된 다른 PR 도 하나 올렸는데, 윈도우 환경에서 C 드라이브에서 안키면 놀랍게도 test code 가 실패함.. 아마존 개발자들도 하드코딩으로 박아두는 구나..

내 개발자 드라이브는 F 드라이브라고!

 

728x90