From ab24ccc6e52a754c46ab9751dc383f5ee9b1e803 Mon Sep 17 00:00:00 2001 From: Thiago Gonzaga Date: Fri, 14 Aug 2026 18:33:08 -0300 Subject: [PATCH 1/6] chore(release): prepare 0.6.2 Bumps the project version from 0.6.2-SNAPSHOT to 0.6.2 and turns the [Unreleased] changelog section into [0.6.2], dated today. The section covers what a 0.6.1 user gains: the refused-review handling from #704, the delimiter-aware span stripping in the decline re-check, mention triggers built from the configured bot login, four further injection-sink floor defeaters, and the release workflow now failing loudly when the post-release bump PR cannot be opened. The SonarCloud pass on main is behaviour-neutral and carries no entry. Also gitignores .claude/, a local tooling directory that does not belong in the project tree. --- .gitignore | 3 +++ CHANGELOG.md | 21 ++++++++++++++++----- pom.xml | 2 +- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 9db03c4f..52efed58 100644 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,6 @@ rewrite.yml website/node_modules/ website/dist/ website/.astro/ + +# Local agent tooling, not part of the project +.claude/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 793c8390..e04fb4e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,13 +4,24 @@ All notable changes to ThrillhouseBot. ## [Unreleased] -### Fixed +## [0.6.2] — 2026-08-14 + +Follow-ups to the review threads on 0.6.1, plus the first piece of the release +chain automation. A review GitHub refuses is now diagnosed and preserved, a +review whose PR moved under it stands down for the run that replaces it, and the +decline re-check and injection-sink floor each close a further set of gaps found +by the dogfood corpus. No configuration changes; upgrading is a redeploy. + +### Changed + +- **The post-release version bump fails loudly** (#11): the release workflow's bump job branched on `gh pr create` succeeding or the PR already existing, and reported success for every other outcome, so a bump lost to a permissions or API error passed silently. It now distinguishes the three cases and fails the job on the third. `docs/RELEASING.md` describes the release flow end to end, including the one-time repository settings the bump depends on -- **A review post GitHub refuses is diagnosed, abandoned when stale, and never lost** (#704): a rejected review post now logs GitHub's own response body (redacted and length-capped) instead of only the status code; a run whose PR head moved while the model call ran abandons its post — counted as a structured `HEAD_MOVED` skip, its check run concluded as skipped — because the coalesced run for the new head re-reviews and posts in its place; and a summary-only review GitHub definitely refused (a response-carrying 4xx — an ambiguous timeout/5xx still fails, since the review may have landed) falls back to posting the same body as an issue comment through the capped, paced write path, instead of discarding the generation behind a "review could not be completed" notice +### Fixed -- **Inline code spans in a decline are stripped delimiter-aware** (#697): the decline re-check now scans backtick runs the CommonMark way — an opening run of N backticks closes at the next run of exactly N — so a span whose body carries a longer backtick run (`` `a``b` ``) or one line ending is stripped whole instead of leaving quoted claim text to reopen a correct decline. An unclosed run stays literal, and a length bound still keeps a stray backtick from swallowing the reply -- **Mention-form commands follow the configured bot login** (#698): `TriggerDetector` builds the `@ ` trigger patterns from `BotIdentity.mentionNames()` instead of a hardcoded slug, so `@my-review-bot review` works on a custom-login install; the mention's `@` must open the comment or follow a non-word character, so an email local part never triggers a command. Slash forms and default-config behavior are unchanged -- **The injection-sink floor closes four residual defeater gaps** (#696): "Nothing escapes parameterization" and "Nothing escapes; the sanitizer runs on render" read as the mitigations they assert instead of over-firing the floor, a do-supported mitigation with an adverb ("does always escape") defeats the floor, a modal absence claim ("Nothing can sanitize the value") now registers and floors at high, and a comma-coordinated asserted mitigation ("Nothing escapes, but the sanitizer runs on render") defeats the floor while its denial twin ("...but the sanitizer is disabled") still floors +- **A review post GitHub refuses is diagnosed, abandoned when stale, and never lost** (#704): a rejected review post logs GitHub's own response body, redacted and length-capped, so the cause is visible; previously only the status code reached the logs. A run whose PR head moved during the model call now stands down, recorded as a structured `HEAD_MOVED` skip with its check run concluded as skipped, because the coalesced run for the new head re-reviews and posts in its place. A summary-only review that GitHub definitely refused, meaning a response-carrying 4xx, falls back to posting the same body as an issue comment through the capped and paced write path, so the generation survives. An ambiguous timeout or 5xx still fails, since the review may have landed +- **Inline code spans in a decline are stripped delimiter-aware** (#697): the decline re-check scans backtick runs the CommonMark way, where an opening run of N backticks closes at the next run of exactly N. A span whose body carries a longer backtick run (`` `a``b` ``) or one line ending is now stripped whole, so quoted claim text can no longer reopen a correct decline. An unclosed run stays literal, and a length bound keeps a stray backtick from swallowing the reply +- **Mention-form commands follow the configured bot login** (#698): `TriggerDetector` builds the `@ ` trigger patterns from `BotIdentity.mentionNames()`, so `@my-review-bot review` works on an install whose GitHub App runs under a custom login. The mention's `@` must open the comment or follow a non-word character, so an email local part never triggers a command. Slash forms and default-config behaviour are unchanged +- **The injection-sink floor closes four residual defeater gaps** (#696): "Nothing escapes parameterization" and "Nothing escapes; the sanitizer runs on render" are read as the mitigations they assert, so the floor no longer over-fires on them. A do-supported mitigation carrying an adverb ("does always escape") defeats the floor. A modal absence claim ("Nothing can sanitize the value") registers and floors at high. A comma-coordinated asserted mitigation ("Nothing escapes, but the sanitizer runs on render") defeats the floor, while its denial twin ("...but the sanitizer is disabled") still floors ## [0.6.1] — 2026-08-13 diff --git a/pom.xml b/pom.xml index 7e2dc4b4..29a46613 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ dev.thiagogonzaga.thrillhousebot thrillhousebot - 0.6.2-SNAPSHOT + 0.6.2 3.15.0 From 617b08afd4a40905af592e95f031a7d9102a3e75 Mon Sep 17 00:00:00 2001 From: Thiago Gonzaga Date: Fri, 14 Aug 2026 18:33:08 -0300 Subject: [PATCH 2/6] docs(website): freeze the 0.6.0 and 0.6.1 docs, point current at 0.6.2 versions.json listed current as v0.6.0 with archives stopping at 0.5.0, while v0.6.1 was already released. Both releases shipped without a freeze, so both are taken here: the third and fourth time this has slipped, after 0.4.0 at the 0.5.0 cut and 0.5.0 at the 0.6.0 cut. The archive script expands the include markers at archive time, so each snapshot is taken from its own tag's content rather than the working tree. README, docs/, CONTRIBUTING.md and the docs pages were restored to v0.6.0, archived, restored to v0.6.1, archived, then returned to the live tree. Worth recording: the doc sources are byte-identical between v0.6.0 and v0.6.1, so the two archives hold the same pages. That is correct rather than redundant, since both are released versions and both belong in the picker, and it is why the 0.6.1 snapshot carries no docs/RELEASING.md, which arrived with #208 after the tag. Nine pages per archive with matching assets and version metadata. Neither tag restore resurrected a deleted file. current.label moves to v0.6.2. --- website/src/assets/0.6.0/icon.png | Bin 0 -> 34512 bytes website/src/assets/0.6.0/live-streaming.png | Bin 0 -> 192704 bytes website/src/assets/0.6.0/pr-approval.png | Bin 0 -> 83787 bytes website/src/assets/0.6.1/icon.png | Bin 0 -> 34512 bytes website/src/assets/0.6.1/live-streaming.png | Bin 0 -> 192704 bytes website/src/assets/0.6.1/pr-approval.png | Bin 0 -> 83787 bytes .../src/content/docs/0.6.0/architecture.md | 296 +++++++++++ website/src/content/docs/0.6.0/commands.md | 96 ++++ website/src/content/docs/0.6.0/comparison.md | 89 ++++ .../src/content/docs/0.6.0/configuration.md | 470 ++++++++++++++++++ .../src/content/docs/0.6.0/contributing.md | 137 +++++ website/src/content/docs/0.6.0/feedback.md | 93 ++++ .../src/content/docs/0.6.0/getting-started.md | 125 +++++ website/src/content/docs/0.6.0/index.md | 78 +++ website/src/content/docs/0.6.0/providers.md | 30 ++ .../src/content/docs/0.6.1/architecture.md | 296 +++++++++++ website/src/content/docs/0.6.1/commands.md | 96 ++++ website/src/content/docs/0.6.1/comparison.md | 89 ++++ .../src/content/docs/0.6.1/configuration.md | 470 ++++++++++++++++++ .../src/content/docs/0.6.1/contributing.md | 137 +++++ website/src/content/docs/0.6.1/feedback.md | 93 ++++ .../src/content/docs/0.6.1/getting-started.md | 125 +++++ website/src/content/docs/0.6.1/index.md | 78 +++ website/src/content/docs/0.6.1/providers.md | 30 ++ website/src/content/versions/0.6.0.json | 36 ++ website/src/content/versions/0.6.1.json | 36 ++ website/versions.json | 10 +- 27 files changed, 2909 insertions(+), 1 deletion(-) create mode 100644 website/src/assets/0.6.0/icon.png create mode 100644 website/src/assets/0.6.0/live-streaming.png create mode 100644 website/src/assets/0.6.0/pr-approval.png create mode 100644 website/src/assets/0.6.1/icon.png create mode 100644 website/src/assets/0.6.1/live-streaming.png create mode 100644 website/src/assets/0.6.1/pr-approval.png create mode 100644 website/src/content/docs/0.6.0/architecture.md create mode 100644 website/src/content/docs/0.6.0/commands.md create mode 100644 website/src/content/docs/0.6.0/comparison.md create mode 100644 website/src/content/docs/0.6.0/configuration.md create mode 100644 website/src/content/docs/0.6.0/contributing.md create mode 100644 website/src/content/docs/0.6.0/feedback.md create mode 100644 website/src/content/docs/0.6.0/getting-started.md create mode 100644 website/src/content/docs/0.6.0/index.md create mode 100644 website/src/content/docs/0.6.0/providers.md create mode 100644 website/src/content/docs/0.6.1/architecture.md create mode 100644 website/src/content/docs/0.6.1/commands.md create mode 100644 website/src/content/docs/0.6.1/comparison.md create mode 100644 website/src/content/docs/0.6.1/configuration.md create mode 100644 website/src/content/docs/0.6.1/contributing.md create mode 100644 website/src/content/docs/0.6.1/feedback.md create mode 100644 website/src/content/docs/0.6.1/getting-started.md create mode 100644 website/src/content/docs/0.6.1/index.md create mode 100644 website/src/content/docs/0.6.1/providers.md create mode 100644 website/src/content/versions/0.6.0.json create mode 100644 website/src/content/versions/0.6.1.json diff --git a/website/src/assets/0.6.0/icon.png b/website/src/assets/0.6.0/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e523b0749cfd782669a484f4cc60dfc368617c77 GIT binary patch literal 34512 zcmZ^J1CS@rvhLWnZQHi(+2L<&d&k_dJ+nKuZQHhO8*l&T+;{JZhwA9A?9A`WtjemW zj_9fgB?U=%7#tWNARu^YDKVA5wg2DS4+`S%lk#m0@^1xZE-Wt$1XLRf`(XtB_ninJ zr6Lam>W_E+V90tDpB1O#+u2n58F1_XrZkkzKl_t&6gswHhEFAqfXSB3%t z0Y(7={VM_gy@0|jfx!MH0|EW@^tXWi2L2!GZ;=1C`u_&~Z`to3U>xV=ArKGD zi+zQ`FwZ-bvNL z2w*C}{9ly+Q2ht`pLX*oI$4_jP3b?0`v?Ai>HZ7P$M{cH|0B!)9>RZV|Bj&m3?Jiv z&j$gRI#}6eARr+iX)$3n58#SUNPoOx$7{WI@AlMt{40kR|18#cs01LWKwvo(YL!tK z4X3!n=YtQtF2%cdeTTRpoAEj_fzgCy@n6Em5YlmmK*$kU`@0U@#~;4mSLvPnU=dB- zz;@vTX z9(rV85x2~HuFY7_%$oVPwM6n{B*8;ctSkihk1y? zdi(i7pQQQP*|SlwWs@Iby>3746^xsfnhuR|Hlj$DpS z;7#CCVxw038nk?r7xL~&0kb$Gnj*63!Vg^0Y0`xNBt#6QQfm3D%zK;?sy`&EO7KBw z1iOQW@N;B|p%H!WCP<@!7N2n`1Tn@*lBu8r!BBN7@FJvw4 zCa5!be8URHexIo0Vnbn`7nJi%lk*aWx@0_VjxHuA2RAPxMzVwg83H*a*Lb$)-n%=g zZ$R$g38mm4cgH4rzMgaCDl_ZdX^F}9=(DvOy1QqU@v{w!NNs!=(s3(~{J4bo$(cQ@ z;07|9J}Y%15~bBYLrU}+zt&o-5FQI(ZWfNqRlTzM+0Lr@B6l~?m(F!wp)yOB!~(5D zz%Nilvi+~?iAki9!8f2#Y_K9&7r;oo=~><;q-=Hy1FB}*%oY7=!xp}YOXKL=LBJC7IO6?H#1Jx`7fab+Rr-^I6NBF^uhKZ9?7i6TS)7Gqlg-u^j z?jFnm@x79g5?+XczBiHb-&-X8YaQi2kr@10X|}Xxlq9!^lKI+%k>c~^SbajlL;g1i zSo~t&6gm`Om;GV~)2KceXSw zeZov&yk^X4MiZe7ePG)J4YPy@t_EE97pH!BKF#7C);3KOANd~@4;`8F^DKUxIHMaE z;vEYli?B=|(epySYKp+;>tq&E#M6g3y_zEE(n}E~HNARmH(!1={R z)6|lkwf%LY-IrI}o9%DEkx)Z8=12gHq=&)vxrVTM?ho2+Jk4OebM=G)gFX%m1i~GE z9*vogk+*XRQhq;X4uO|_cUH1sB~c~K&1-`XO4A67UHbvLd&CKpRe&7}nnv&i0%5>y zICKwKon|1ZeB9Q3wJaVP3>0k~>hA=gEGY_+eS@f+?D*uGk3KnC>dEFi%RvrPt9bNe zG@%rcB@%G-;W)_50OqHXx`v>uWtJ*Oxd}4=Pzp=vh&!qogsYWA0U6HlF4XkD}^9s zybq=&?@=+5Q;7JHlN+sqXU0%S-L8+9+wV;tWZu`)w#o*}S#xKZJoRq$$b)b9U{eui zwb-99{_etRiv|yAKGZvH;_Yx{X+zEt&mDnu~V}Wq+z| z=(c|+%66X7PoU*Fq30wz7jU>~1wr-4sgg?!SCn^-TQUAa~{^2U~tz>BZ3 zBQM7rBhL>ouG4uJrly=loYo7+{>{ zsGAdc^qsapaQFmkAaXz9v4v#1`9FZ+Xi!62 z&+Zf(8vz$taFq|lom^`9p3g_Tki+JM0Hx17SBm)1YELGG1$jV~1$?$ooETd>ox@e9 zbTVBNpw2o*#|qiLMdj5uQxYAM$4Q)n2Piv+n8C|JTD~C|C`?L#Yu)N!gsVm|UQq^E zr*jeTZ)v&AU07(@piHo1?^JnS>m?+od^eVuD&Ql+{U*R>m#;gMCR+aKfhpZjRyBN| zke+O(N()Q;g125{noO@RfC(KZ8T4nT07>t)uVa~BFiNR!q0C@*rfiWcueb=_sHL5x zieWMAMGhwrNioGB4!~-re#^P&bhpPb;J_R{$HhZZh)hL{upt^=iejcxd%Z^vZLgxE zLyt2pl)#Y9%Klu43csF7DSq#S4!R+Djp&RT(bpX%dB+(OP1+@Op!|TIWdTI!Oy1-E zDWGg!7sX58h1XZDFF4Jy**bQ_m;ujf!on{~2LU3bqLy0MX0*@=9xuQa?uwk~n5V1f7q_~+ zPX?v1t-O`Q6!LA(2)|h?npl>ZiGi_%~3^8t3QMFON%Y~feY!O9%Fv(3F;xovL(_ryA@tyr+T=?pLUP-BV= zlwra)DO!r-q2BFR!mZ?dS1oh;>LRVl0Cmk+@wO#~x{6dy7=A2pv8=7yfo zSZvT(?3o(BbH?HXjX4Httw2#)hLsge=@zX78Y)*u(sqzSzyYDCTovk1^*1J<^5KsL z3zP4Nq08ZZrcFv_|0w?S+m7mieC>Jdb|tNf_tUy9WP6s^3FyX|Y{r}TKNiWvzShMFS7 z_w=KLn4?6s50E~Pgb`(3)dhkZqod#ge_>Sf*`$JGnYgHU<^!T`nNqF-`}Z_iY-tF* zG{VNlM(fg@X=d$VnAqU8INczyGX}z|qE%T#EDD1?=~O^`S4pwSz_tA3_e-60o_-Ba zHFd`~prLR%9v+x&W5*s;#S0H`7D>vY%QnRm1c$`Eo2G^j@0lmqOEEe!Ty{0kA?8ij zqn~5&99oL;3xk%}F9Y#ik2*atwZ84@vPi=SAi$N^=L3SCE}pK}_Z9ty*V=LLcOzws zR-nE+Z0rTZY03w+l4}toih=!93%ZB;mSZ!JFe090frq+4QHWwKVJ|4rLpqEQ) zOJmLa*#ZD6k6@Du-O_bk?>WflViF7>moHH9;o>%)ktuN-g z@4TD5ULnMcFf!U4@ET?1DKADbyKSp4J*L{)bd^QMFJW`P%`=smr_a`{E(czJx*ZHK z@H#)0us1G{j=k$KCbn|tHdx!QSRih^BA3(Y5_PqFf!Eeb>28Mbc-yY~^1A13g}xOM z-{rQL@V1n-=R#|F$(P=V1?Ql}XKZy31E})jr!c*|rZx$yFv-IFPY;{viCLJx{)TE^g7QmcrCdOEq9bBBGek zp>iOB+ztxbxwO7*$^Y{*sx+H}X(7mo9qP#mKf)MUu3mH7Yba;yiL~AJ(72qMp(bGi z56kEm`ti|PZT+y#F|WP0xMzsE`h=MFul3P;$ct-&SJm~WF@T18f)V?nc+>R=a#10- z##;_UKk3raTF9VszqCW^(-VCDM%zcGU)Php)vt&j9)C(o$LWm( zdADjhg*_8Rh1Rr=mb7%tVsMtwk&jf%XmjyZz}nhT99r3YM;u}wga`-lm49eu*>c+I zz<|;=ObF! z9(y`KXz8=8RAq{_)nDO;RuE>QR)M0uTDun^Lc=PVc-PHRFm#l^P`oX-k>3przC_>q zu1(iIw8t-Lx4*tGdU`LL9B=tDArswdi3-3AbGsk-aYI_~lyp+%!;D69gGRL{DnrQB zIfn8kHcAgQ;&jcY?Y~Pm-R6Vbo`(>50Lj(1TEw05NS0X4Y01d|-KMJHtZaK;{SA9t z`b{#UOOlB`y=h{+?FXxBCNlEfMuI=XSoov@Ir01i(i`##?n!ip{$Yn6u9=YF#t0=y zSy3e{azBiGkWe~8Pr}jjdg2w;J;l3hyPTsZ_4shnpq%%2!~_Z-ojcD*Wv8|HJ0Gfk zPOsfROwF4k)N9R4=S%g*x0q<7iA3FC{@Iq~L^i z)zUP`O-{vFpOigXjr2xbTkd`**KIQ?yj*LaY@*9GpO^i$VXUO*&6!}ez(U&3fk@xg z)&QkvIsu`DYH?}b{70GF60A|;tbo+@uC5*mr?DwUA{|Ui98On0+9f*jBI8lYc&o;a z`b{*Y^W($Lx&`bW<=FbV6!{1vB0+V9=|<-{iDa;%!~_FZcKxn~|07kfHaCg~Vx=vw zgNi4u$%U`)C0{mOj1LI~-UPCmY7owT;>wRc7;vYr_@(^Ka8}=ijZazV=D(I%ZpQS z_>Nrs#mSo)W5w?U!Ya%V_UFKP@Y4G~db7*gnB2STUVw-<2VPl^Q&#yAZENnvoR$q` zuI_0=fFQ8Zm`}AGg##EE0*f|n{Jx&MZ7l(vZpUSV9OV@wby`F?{e2uvTo$58E>Wf% zY(hshTxtl&)-tjc2{~DjuUZqx=BHel1ZT9rsW-U127arjqU$o!{tOZgYO=bLv$hwn zCgS6y1=RzN)L%s_vI=s;rZ_uIjSO zs}eQ;QxV^O!*Lc7cwZZKzxE+5GY?8wh3A_yC!57jTpA(H9s!=I z`}0p+<~y`j{nJxuA#ynD9i9F|GNz7)t9W!8nXxlQ{f;0Gt_^!tr}}sx=%Xi5jqQaa zI2t=)s*!vg828Efd8|a%IaH0DTw7J9Nd##Ymq(Oi**FLRxOuk5hV?+pLyk%!!qj%7 zf_{HzjMH<%ngp>N_U0zx7vOMG5i2r^?(@2?u0BT~i1sKKi>s^NnZ(f3=IO4-{O;O> zy;6>Pvw%sHHtxcjjXG9Yxit?iDxE((_#H)RmrmtDrkh5 zSRc{%f$jrN>OuTUvVi^C+u8xXy3Q+dp}`bHB0T$qTgnJYA+kU0uP|}seVl>ehpNz& zmOHFw^0xz$E-@C`3*z^rX#&(l;FOOlVlSM?49E81`{s7V)A)5kln5dVY@E6Fw&x%P zaEu?^qvW6n5wEJC`!sf+NDbA9=G0K|xSk>Og=B@PVAKOp>cKHH3rh-a_7lig`23v; zUSySFz*f=_zX`k)gj{yDm9y+kUp<$`A8s#NN!?yf7`&aIWt*O7aHZmO1{ibD;pnj= zY|eJX@5F2qdn^g4Q_WUSP?PEWI5``1WMQ8m7?#Pb$|8mq#u>YQc#$jP7Oq;jyv*E& z+A{J&q#3v^7w^SS3>qok#U*fWSdTcM9*Vf>_o=C<&BO>bja+$K*IcIbgx2k~q zG4!{S3#_II!y!Djm+I@-Oz3ZamStDlyF@1@_l!g4Czw+}a*b*taQccF@<(E41)f;3 zzDj}-iXA)?ZzVHaFcUzeof98sd@xuBRjF$9HPp_~+`*=y9IZ!{(izMLp{Hab4`-Il zKH+a!@;-N)+3HPdXlYr17bGK(v1jj4M$QItWt{bZX){eMjGmYLM;|r#){2(2@*zl~L?lwwp~#q0K(^Es?7BTSvE~ZcdLwii3wrN*Pn_lslNN8z zG2f6`JpStQSr&=05K;0WUrF4#SMa~bTmYOEKJ@&1 z;rZJ%eZ@X#W&IP;E`1}G8yGkRH?LaU@pb$PbN6{;9G!@PBoH83(O1;t^z3nlzI=D@ zEWKTir)}S-iYu??plvYoIg)c4Gm;zmlImTC_Kc1mCbf3?LIcs0;z5@F#Os)hImeNb zlX=LEGRC1YsgNcub(j0J2EKA)MT{ol$-Qg6s;0Tb^L?Pe-s-oR?*7PBpEZ3~%x-4< z`KWlYavJnRi};bEo-`>E@%WZ>O=i^YO_AtJVV=gDuKf8yS*>f{?t)_Fqn-)j>d?$I z2S|xhb{LR(AgB+cZ>ljpH&5?P36TI#{UK;HsaKs1CuXmZhm;yBxir+Su>ynPqV_7S z8E$0tbWrd0JwQ(HZrC!ue2N$fG>)enN3@SWR^sC}p}FQ+Co*0FI9L zElY|?T)!oE6jNsUEK_JaTt1z)2ib^X9Tkbp9x0 zaVx3QJ--&~FPGYvM#=VZSI7Z3Fmv37i8d_yI@E>|`EEc~7u1^ctlIx4d{ z`GwZD$sa`HTTkxs{HP%cX+kcQ1Qs*rH}g5AeWb`O7auJz@#S2 zI8ZJYm>}oL5q=wBk9vbekdw+0M$OExM@Dej)t77GNbq#Dy}O!W|D;p0J<|J%9%Gsn z09JEHMO9NvHnu;hl|9D&spFeHDPf;D_H_CCcZ4B-ghD@mvT0;DGW{gM!UA`Yk_vI) z1Lh2KqXI(?VPk6&L3C*byIeVSQ?%CW3M7ouA=GyuUZQ`=E=B&nN7KAD2BDowIR;P((LaGlV}Pn4F5I~A|X;w*hs_#>0c2{#P?w< zvXl;we-wVfeuGI)lZf5H80wW32j<_eNHei7^YvGoYbkamfQH6hVT!*^_4n@ zMQGB5DaoJ@x^%HISAac-u4`x?Mj3|^q+dZ3Z(tXBxJ_Ko(bj&6fO#(P3a#K}@@CBD zBIDC#pi|Q6jk-{m>ZZ8bC;H)`07H&=67zBz>7KlX42JYR&`^a#$mla92FW0SP*q5? z03(tS5@6R|^S!C#niw4)4c=EGoo8P>!9TnSqzUbp7z8O!a=pHm=?ikdW!RGx_1mH7 zQ@3N zrPq*9Tsw|SP;Yd&RvzxC2Ase%6vDTqUB#sKaHSiJs)1Gn?8i5(2vK}+#0BKwgg^)9 zSi?YyNvl>%vm(0UvPrhuPik{zI|@#ejrX;-v#tR-+Mmm6 zPtTNHh*fa_0Vp7J1+Jau)3W=m>=4X#e?MClDWf`rTNpq)I^7&J)6SpixvI{eDSC{* ztsnxPRhr#GgCe!?r#YK+78|rV@~xT}F+(=E`=}TPRH@_ib~Xy#>5C>abOGla42~4; z%D6lb)O{Rx^oRHFRFsz+fQ36r=R8a7{8Qj^q_U(R47fFTieQuU3J=#zc;&ds^RTv? zp@+exGtdV~28L*7?;1dA$i3uW(Bmp`1C|nIO`COItn;1M>r<+YD=z>$ou$~pzl&mW z=|nLu(}#<(<-M5Z6ts{gs>-dV!P%{FG9SVjHJNil5A!M5M7gs8^4^>QvRm}B3Ck}6 z6E7cx@qPbL)^N9)CIr6`zW2x2ub9a){cvL}CPNs!#^1v#RPUVPpkqsRT0=R(UOvzn zyTCg9rZ!IO&}Wn|(nwTt6@8=7$SFkP#WqNeWVf{iNPRLT60Rr)jAV|SGSS1smq)sq zOq`Rhc=B|P0{WIF>8Kf9A)7%uD}pB&d=ShGL@XH120u@_*C4OnlOCfA*Vl`uR{uDs zR-lGRYc$zKv3;glbQUuD@9uEPRYPzCf1DMg;bm2egyT|!%Xb^=4_jP)3cia5e07tG zWIfF`)J9TQV5FES&RY=A)%yrKQe1X>GHQh9vMY;OLdh-_ca|#Uc zhV>!s-Vsc;#Gsv8D1SX|8yRe`hdENBs{Mz!856iW9uH!?Ij&Qbg)mNo#2fyWu$sid zkXJn*#y3Rfy#^zJBRzU0a;&+7Opn%D0@_`>;?dDUI$F|gSCUvIC@7L}p(}Q>@RS}$ zD(caCjU`%!Ywc3z<#QsJ80X!wHHaj4D)d$!Y31ZS0V$j%M#~c)o@j;VNif742mo=~3Uw7oZ9NSSnG8s6#tV?9Qp; zvbuCBXjI&kj2VV%FI-B!=~R_Af3OfZ6IfY0o*E!6 z#ra}ocfR6RAMy;bO}Wyq2sVb|t1D9*2Re?g=`OHcFsf9tQB#B%Se1f?FXpAP)XE$H zdPTbR$1PO|yDQL--y(Q?kmx%`324f=1qgP?9o{iKnic($?kjKL^;%=}F5}g7~%Ge&FtdNcp-81CAV5RG62!d-WvN60~dLA%NZq~c^(bhETV ztpy)ArV-(qZw5xmZ7lw(@E5Pb)PJr0T-5xYiP?9@+D9UFjY3)~z)pecK&EL1Td&j9*z)4c1uoB8-J|HiaPyrQ8J>2K2+TCReiSmqXkUS57ST$fHZC08eO z4wj$?#6+*|hMS6%JuC-3n;=Uwu18ZCqfe$H`x?);|BIk|05*Eq5Je~aJMgmSRMHPY zQ1h2Qp1el=&#Dr#b!n?yfeXAbQHs=9bN5{;P9CJ_J>Uu|hHqNKuUuHTzQuP*o6}$E zEzX#&AZkYF)q;pZSvWmVq+osE)I!rn*uAu^VZ(2i-ikhhZWlf%oNK^yxA|8D7p{Kny0&KVMUaBsYH}tIt^P5NO^utC5HN9uo}np6 z0%v>e>G4$gYg>cdBveLF^e2^G@Ih4p@?1$&5lL%YZT@X=*_$x6UK#++)y8Y~_hY}$ zT&iw*1x8eXL`Emd@kjgyDAwCOTrE}qQT(q&)|X~7eZY*bSdbitDhQGMNGWYyFM=8y zC1b#gfzaSUygww8BJ~J4G30B|Gt&Km2S(s9Rxd*OW|%?auqExB$OcJE; zAG&F-7LW2n7zS(;ihbid>g!t(h`({3f3=;dzkv7lT5HW3cwkoPWZ&=C`KO^eF+`(>E7wvMws+_ z`k-;^O5tKYi6@s;nm@mbK>@S;F&U`x11aeo|D?vx`+<<20J{eFwiUOy*wuw)S`qmj z_4TKj;Mu8m&1Wv*vQNiI(OHWNpOi9wa1XrRPq#oL@|ek1q+!HYBrB-dq{e>F_nG$_ zJf2vx6SMfC}`8dpqZ-C8!W>!&5BWv>s6n+IpE2w^@ z1n&W#@G_AicjhSDSb=-|^UFcxgE52xi7Xdkr91iFPTQ+MOAjV%+zoV0PZ0`o29!uv zuop6fOX2 zGSH;Sv>yBii^&t$TUB4!c-TYBjy>2R2lZ6l5W_8oltUALJBXI4XhLFUu)PRG5%R*J ze5~yS+MYdEoAFCymprh{*1`vK?0iK_hb$UC(TYbu*^ne?T(;(^SyKZ;o4xC%EY)6L z7=E6X_LZWJCSe>hxErT7k$d29z<&Lfm2OP*D1tCJpfzPbbOj$N)t;hT2) zk`5`B_$gfTpgZnJul)jWUk#N=Pj zt>v|cnv|9^g5d@o)2BC1Ex=Qc`dDI}WR$G^)E1Q~BXks&;OMI+ znF=>baqFt*!x(To87(3BkGUo)v8Ioc0~K^LRJp_17HW-zhsQjpD1zu~0kO7VECUsO zcyOBWOVE-W72`-PD?N@NfaxzMeBrv2^wiVa!G7&DBgk}kxD`Fxl$EfPSMd<-6oVZ5 z)6Emo2yBjQ^fuKCT#G)0KY-(-9<<0+th@w49D~R{o<)SeAFwIga0kT?&|?N2@GxzQ z>Ok`cB*#VnNEm6A68n=t$n0GIvr;_?a_;nn{PD3dtBWal#6GCOCIZ3$7c61tPXiBd zCUq!D+I1I;lxerdDg=cr^hBC^(qC6sAw(D}4%`Rwvt%Rz*ZVR=g~kh37DAVLxCkt? z(d{kVp~?h{Qbc_v2lWJjwBgS7e8t1_w&z7*7whtvww#gJqFNND58B{+pmg6)L@C*u zf+Gx4b3t5=>5!pFz0ORJ7udV3?zVMKLoaw+1m{6Y5%zo3<@Vs2^qZ1pV!ODh!ga7I~;LMb2?cyxt5mF>urk>DCN| zi>#IsLlBMb<{;Ai@8g&h%8Zu=kjN73J<3inY5qW9VRFa^3Mol+jv(f_V0qCJmsQb- z0GP=J(&DEzRmRT|7?%0f8|9;qo5BmvuDt1T-qXFJA#^tZI+1Ha<6`^R%`UHq&2Gn# zLTiWsmKo4^-BlhA4yx44wB(edmFi8`NP1r7LyVN7I!MFG4V>~)x{#A}jN=vV2z$NL zhXFB-tW`uD9>7CsWb{%Lw-?@ZF&rFg2$v_1q#{SiQk*_*-sRhqIy6y%X`a5WQ6!Tnk9`hIY;wlVt_@Cy5T_{O;O2Uq)$U7JyWd^MGsJIea3 z7o_d|op{sz0X9e2gATa{|MHS>5Omv@%hVq;dQhsCvar9~0J9O40WNTt`g2EfVb`xM z$!Kcrr`i26V8HK?!7$7Uo$V@dIA+Nn=H@2#oI^Qmn2<6?qbP9tdd2$q9OqIM z(bh;&=#S}MdOfiCZSt$L&2)Objedl#0IjdbmcJzs6io?3&W$g{UU+rwq#o9=lPP5i}BC+~{wW`Y`GwB@^eJh5U_mFr$$2v(44*UAIZO{*Uy? zr?rwCV*k;x7iRs5ywC+7&$yhGt#NAn@M*+u^T?l1qVBo`fV*?=>2=n1_kC*v6Kl;H z^vL!ilQm8*kRWs-{ldSixfVMVJP*y4j@<8BcOA=spJ%)4dS21hol&#&ROQ1)C8EPq z>xD;dnNvm4Hc5x2ovlw1lbqVH1mos7x;2-_fSGvM_8~)>U^V749HgX_j(mBJ@v#ECkt=+0kO1-HA#og# z0#TeWx*FnqyO;!dx;V6?$0t&?t`t5$PhnhxCdUqz2Ax1QF)OS48?Ac;BYqmzA!A>c zFazIkDJih`&T(dTL2Wd+bx#pys;({cfb#%>9kFn(1%YN#Cf-6;d=i?VII;hDX zAie6j{#0qScX%ZxLQ;Wwf(Lmv$>aJXUVi+_l-vJoG0eh1@}M0gQ?Q@we{+FFG}h{& z9FCJ{Pnf|FZ|U(RCW#vEQy2n#Hf3~nF?3v=u{DTb0FyLF?W)>?r_eK>WzaZ-uswnV zOI7gNvzeJzb*N*YTaG^@{&x5|e4+L;^3lM?A){4cBd*y7p?_lIthCAW(O9?J1%cAD zW)e&S$_i};kf%Jb(D&z0{j^($bD#dE_rR0`!_9ANSXYFOQZC1igiAvm@+i7Y(?u>* zDHsQ#a@!reV1>{kMxSryqn99s`)QnC+Bz|Jf!(A)wj+AMvxQBhOZex7ixVI=ZPJKbrijx)5+O zK}nFkGrr)*(nJ(fUncXP!@Mv!{amLMHI9{wE1C6*zOLB%cYG7Rb+z7{t%5<7)Ho% zV888S#rry?HI-D#;Rmm~RaV~1I-h;D=+HV9L&#^*?)QOrb+P!A4r$kz>|93I%+{xI zXQUfG?T67RknM#|F+)hygr+%dma}0s6?e&3e$P;}W5B}&=h&w0JZ>6k9P+$d;5L~p zlB9M($yo4){a(PS+!2~47BFd7&hVnyYwKDB)gb_-bUa}PfCPWvoz zY&Wfzm6yM?zzp~GbUGPX4>x{{@V;N95BnN#zpT0~)A~tzf!_N*C!4CG;7iBf4Z zO<_4Oq$*?w0Au08K39P7H)d%Nv=QVj$T_VIYB6Ffen2e$J%}-{G2xrmhSe`K-46Pg zOJ1Y-vKp;g)uyJ-NtWFT3WcW=L*8bacbxk|_Hrd@h=^%o9KUeOVdzsJep zI3~|0Nxu(sw_*I|R*7TXA6av~M{*9ab?;5VudhX=?(12v_m{YS-|kO-IX+oIq%fC> z&$fmv7ur86DXCZbccZ@_^35;Ry}l^F$B!>X316WkN7Zq<=A{VW)OIKs-!1}0bnDEb z7bmg-s>KS8)xM|Im*WTT=hHuDPC-LX;AP8bZPx?#6(SU%Jfs8{r3QkLj7~EUtgv}d zONmiNB!yT(sH?A>1}OXVfQh!*gta_iLBVsi!R7QvnBVsIqjOG(h&dL_r<4Nm?c-HD zju@Bwh0Bq=JB+i{gp#=YoN(O0@(>4K3`HuI-{!QXMlI^MDm2a~?HhaZ5OAq_4qIFL zz3#P?_pA9U2lai7Aa(P&%yVCFaqT++`K_QFNs9o`c)O%h8MY_+rG-goJbpM#Ch6eh zzK;vI;YyN@`r3A{+El_lb0a35W~Yds*Q2&>aLS*h(_c-SKc_Y1O6i~i0GPpZWm#v1 zwerUx(&-gh{KEqGuiLej^+)TPzIS|-o-TLb@h-)R7W>kH$IDyXmV#b(VYaQ`olo(K zzA&^#g@;@szk?wr@;FptmmF_fJwu*)Bn8Z#JHJ1l$XMf2pYR5&dWkVE04+ZURiM&C z2}NRc`CV+G;q??TlV2ITkYb#8EDg_SBJ&*ZQ&^(V#>b76Bc9wpd%jC_zG87#s~zRZ zlzfnjqhI=)0}H_VJg8J|BZ!5d*;Eollq^AjU z(^R?_gyr;`$xn?fd-+lzK(ijJJIDA9AY2Pr7T?|*_KoA_zVMuF^boR-FkJ7vg?zZG)hW-pp^z0%8T8Gb-CHgEsHC zo^`ss5a1W0go~o}D;|9xe@6}@tQD#j+pKN8YVg~~0|F8K_E4X`zow2a)0+|2vaK;$ zE3MtfD+^bMeP2E@Q?!*}ZUq6RFQ>QJyu6y;vu;;D>w8FmFZl8_+Yz!0-sp#LE^i!y zx0B(^R?6HO!mgW?O8pjpOT$c3V+>JY*8UI$VMZYu69AzSqD!j13wtGL%@P~gBTq?W zQTzN@alilaibFYEOeRIo3ne6t&jG@uRN4OHVmkge7mh5Z`q-0yhl&HD<>?0=6!>+Fbn?eca2)l}ug) z?M0NQp=!Ed;GxTn+F<_Yd(DcML~ty=JgOjU4(ldCkq~iB@8b#G6yNlF7cnKAXhsnT zxt=}fIVD@HI+;TUB>MC;;t`61s_D0 zMqLEs_JX`IyEPwNg{0&sd&O=mUc{W9mj&?pfiwXO2bfjlcE|Be4nz_&=KYhsxRPtZ zJ9u8l6QbgbD)-^lB|7chqH;FOs0e<-__ z?|6>S9{7*8Eu-Rb@bjsY+KN@GXqWUOGkiBLJNqu*@Swyuo7o~9+^G7k>{)YI4h?Nl z*~rVS&h4Q)tYTK}M_IVp_BopjS5d^<=FkDF!+z2KcY>aqr(nUQq7I!nyUevZd`%kFC=*KeR{eFs7(%| zDAwX2cH7P~YuZ*-64P2d^=qCp=&W=W@iM{gAZZ5DM$Krjea1q)>0`AG-JcPRD}Jv7 zn3n<-{#nPMdP&DPsbh$N$$L7b1ppJ~Oqrl`%E5UBAIwErpy|lK0wEgGeaLyt2*fZl z_C>*B)Zb7PM8QkfxZDMnlcC@orj88GKhW|g@NiFftnn?f?7Q3+p04?M4OXD(a@* zuXE*r4E-bcH6WVxnHqVA(`cTq(B*o=&0_V_XvG`R;YOup6WSJHgBs zspS%8_$8)-EG(Zq9?$6YHgn0j4v+O~Onceyc7%G}cc&&%X$=&KrcrHtQTpO6%|FZ7 zzpuksx88?U)u^Hts#_YsX<5~=ah3~GJxC@3Lo!rqkK-0eY#0icPq!8xla;-bS9ALy z&E9I$Dr+-U$jK~(rx1-uVFORV28oDQ|1{*5*;t#DLj#+;`fzBP77K8D8BspBxd;pg z^>HkpUDA9joCH+o3?ubZXOm}PjIlW~%_0h0V3{F;W`Sf-0TsG@?5@;SjTMS>?MT)4=a_&OCP|l<&d=V z@MLMuU0P$TcEBM-1~WGXQYF@tHt$aW4euOzH>cLuxgO-J^+Cfimj!*fyuQ60)B0A6 zzc4|YQWa0hX?!Z}Z1iT2nu#1ciTWqB?)9ibS$;&_6d%W#7nE8>%@GKk_a6N6ynAZ5 zt6OsB*Kq%xEg{z&syZ2d>6q#4TspbspYEb8P;3gX<9-gc&vgF@wZ({MTjz5~*S>$H z?h_Sii7zTCSRZoLp@BL2j5K<(j-I!dJHcid{y~(&+}hE#Pb85b6rCHbZ0Tj`wonWasQR->CkTs87!M=P$E9 z`ojda z8c_S3zNAdsFaushW-c^K3PMjE9Xr|UTwBjVdABPIdZAJ}8KUz}4r>MO_Q*)?)7PVW%WM?+y*b`D2aAwU`!+t|+U=4VV# z##KlY$IlGY-nLBJPjAAeH`d|`uUVALS`+TuEViey@d>Sri>AltRs!C#wz+j#SZCY) zv%;s39KEb@_n9NQ_TFFR);9g`f;N&{KASM(#cO4M&l%xA;)nh?QOvL&zT8VkeR|5Y zUt24@uS}z^=wjrG>HHmo9XbW>()FEZB{YC=fq!;dn9)X}19`*SBOA*@FFdTo(%8bDABStUg=dXg^VSjS&Njn9HQFT`%=(MpB#OEnQw0;iy1P@*xFexBuxJ1F%! z-M;luqTS)P?(*|h8n<}1n6aXvE$C%VPrzQbX`*q^eQCwRt{a|YjGSL$W=>KftOD42 z9k&{<(EJuyVxo19nr&Qa-l1p3yZ>%ggR6W3C+*n0M1rXh!>q2xhTZ)n2odn~Pdr+l{v@TJz5_);0N0^ zCG+zWXIjaa>;}Zm=GBzx9JB4WF~PNSM!xA<&MdOP;2S-E8I{-#l+gS`+H`HSb!@SB zQorx!C5NZr&!P9`H8vNZYrDhq>eG$rNb^<6>()g#B5mKBk!7Qt@sw->3)XnI!TFo$ zV2>*1(x9aBuPOxZz4qo(N&c74sw!?7=2)lh1jVNa zh_WS4TBzIps>`~(`+5U4Yc{BqR+t~=Ehvk=Co26S@$WMe2PpMous67vx2k8Zacn25 z1FXRy0XgDpbSN&e_|OE7qQgaIT>;l*`PTX@PdALv{{=!oy}y%mD_UM^`DnzC{oC_) z;JMSb?js8=#`k-B8AqtQV?((=MP${>i`k+rHO?llIZ6FK^a&cbY8pF*au(Rp$`iKl z!fPmJT9-h?Q@#lM*8ZdR@dxg(KmPQ?_CLPu zDnm?DOS2u`yU(6yI(K~EF8lO*H{1QU+~CG-S9jknfXk`i5cSg!Zm~uP_xN|dX-)O@ zw&mV?ZN|I>EUd^puA}bpTEaeX>HK+n?ZxNp#V3AhH!iHU&wuzH&NtGyKZFlJ!j3XL zb~1!jW#je^=cw&eR3~d0n!;|~c#oaGa1OUK4v3n*$R4`q)6_5BDVUlODD6bQbuZWd z3F>fV0w?mt04SBdBfD@kCG5xl+zSbDU#a zN3$%CGjK;F)>`??qW8|6VO#IH$$s#|XRZAVA68gd#5j){3d4HG2pRwYKmbWZK~!8k z-Nb>1EtXr9ZduF*7*QN@k}$Q$8d=OK=c5kOEw8K0RxQ|QyIyFg>s;>p#?B8x8j=!*i9;nY$mn>EGPR~X zj6GfHJR(X!Rw|`AtDGRE3rMg!~>ZWz{DxoV-k{sxAkeGOK! zw9r}4H2Zw(wPQA(Jz|TtR@;<09L9X6joAb6a1d>~++z>o=#ewVoVq8$8G-AVo^7yg zFFkJK*d~h7`Cc$vxXzrvWV^BA-MM16-MnZfdkOOFl|4sn_mR_fao-L*y&F8y8{`PZ zm$2-v<}+#<`dJ|kWc}Ebh}bHyhajVu^>Vn8l~EOpo3zZ1a{z5 zXi@^`kqkkDNCIe_Rf9OaMbYje4GGVs|jh4X_>5BXJcSlgm2w=H*4tF8?xg0 z_P#BjuonF94jg#XMiPEiP|hPyJiFa)TeZM7?rhHHt-1RayK~KA4qIsBTLFAN2CDIv?(l6;*)S zTj@K6vNk589Ic1LA%HjjhuP&l($mrBlr9ZOVfe&75G1S*JBDOkKZXYHEm~A6ij{1H zZBKpUoF9yDJqD4;5XL1cS+OA3mflf=Mn7&xUOaF84NMEmYwXOKi&lTE&2GGL2_JYW zu~;+4piz!5gkxr5MEcbG|G=Ki{jTlbzk_LDqpRd|J9cs8>iu>@4eJbDoth|cZ^Hb;$FXx+Xh(y4Dt9X5PAC zwVl6MOI!E@B}C^5KyvN&9YdkR^!kn_dcUl95dEoL@7U40%Wm^W6OBI(GZkXvzkTTj zd+@GbwOKXGT&p&*>2vpi*X$q%N7pyhveA{(P?#gigEuET-zulhu;q)^+KNRtT2X-x z;1&{&04ny1E3EP4c+tEQhLj|6DO@x^YAY_M1S(1iMPd31Qa;K@i#mfe3giz0qXM{R z4@xgy5{N-GB2}wqYFmH9W}GE2+mE09 zS9|J(@7l(d3+#g%mpbcRDo$Zr2}@TmFqX()fU-89&90Z2qo2fvp{XFkfy0>+cGvo) z{4KL3bE;X|UgUNy%TZ(E^6em)(upM9I_mjiStnyZ!^#^-vM1>MbLT8&-$OBLARHfG zG2NETUuDY{FkLRFbTmA5{*e9fsjt~ShP6y~XO-o%p)(UxG>+OstTnVVJ>GflWqW(? zD|W+*o9sQef0Xr)mEbB&AfO}U1Xfo)dGd&)j+VmL<#8dd>uUXlZpj6`UC#*tBPFdB z1{jl~q{y&56`Fbl?V?~Y%>ZZpKKUjvc^_^7Li) zqA!b-vEieJ6Hs&-xfH!}?I}cbPF$Y&f+gbXIQZ^{ZtHF9b-n!*y2m%3dkI~p!an!O z|Hq2**mabdXT^o(IJgvnj~X%pUP;n+v!mC=j=B>@+TZBy*5zjLdopwHi2VM>3~)e{jF?wccy){0}@^hBZi11 zqT{joQ#RzsqS>4lo|f(!ij3a&%>14+0peJyltGtZD!X04cDV1C*QP3zW3KS zL@u-~tM0bmc#ky<*V~B$r>$m9g+*B^KK%4?i}bPQU#R;01}S;H)U`t;4WANzZIe%q6F$I|=k)`eTy z&sgP{T%Vv-S#dUPW<>eS4UArmVMyN<*mLxCJ6C_&RxDi$gBJMVE?GrS)a0wf7b3$< zL(JxOytId5nW05J+f|2QJ~BK$IMn(L#{g;3oX^4wFn}sa3exG+ip9%ju*8XH5S>5` z;v|It=w%WEFqW{?{n#^)*x573>?2z~g_R)N4%F_&7=k^&t=neZG{b4&N1tK26>~t# zIgBK=?Y3^tW*kHdEp3?IFAJl@zGf2$ClTK_yBb}8;T67XX?UjFyz)QhC|gMF9;zF2tk-u>72!r7wHe~-KCvK=Y$8vx)S*rL!0i$U0lTP?_#Ee*so>A z@vWD3*c&*Je(1s9vFW4&2S%H$O85l__%kZ1T$hK|gGtMHqYS~TDzzOdFGeLJ4`g?$^ zR(0F>O6ptN4?4z@^zlu=eSBnmaJ2m!q=~~X*qt=SD?G@o4;nYtv!w`T2*aG=2QChv zs8lY!qX>--y3;JGO8F)(B2Yaet1Z`B4z<~6*PzwytFzjjm(kXTt#qK=G8^*k@V=vV znJv{BUy8%HmHHqmU<<;M0mhu}LEGE=G*9%6Q+FkK2bI_)UBJ&?Wne zZ#`)*y>$%5r_U|Ndd?M3dptvY-J6r{q7Z*Bp=!eAUR8iz)H*yu&Hhf7wi~*v<8rqR z;ny(Eczu}Z>DOL(#dcq4wuj&Q>-K?rehpF1xl1mu@=shC5p6$?G#zXyUpMa-%Zg=l zddV64*}fmxfrhuOHPUE@TlU(M`@e7dYTrUHVHq506d8=$+8MXlD!wW3#53QsGquN@ zNja>GFCnO3SWN;&yC%*=8XS=IF04<04?BRcs=5JzIMt8{_a_JvS5d30Z6eIag*`z@ zl5MGH-%89g$FUvo^$y1Dp?;P&2gYq$WR~5KvEHi3W?0)cdhwf6o8KV`rEvHxZt`@rYeTaatd9(>d;b)QFXLR_l{j-=b&tG8NjXNPTj z?FoqMxHo`Lyt`BnJ^MfXUS?;r#(m!bsFSimQ#UJMEAqDzS!hGZH~u= z&)^CX0QWz9b1(5|g1vYZcKE;^YvL%D#3;ILls)u?YpptSCI>GuPv>7zez6rN3TN2b(Kj9b!) z+woF5e36emA3I??&(vBI@zF$%)m^@T#{Mb?I^4n0FV~g;t{e!U)lm1XLtN|6HlDQN zk`mjr{$4(9S4G*lIw>gCyUbqz_1@^kz`wSpZ`=V&t$g@3elPN zwnfQ~6OTPGzOpJ^S*xnBD3jL^yZdB)PWPqX=S{~>!~&jH)RTE=KLAEB<8$3~C>tF1k2N005o4ia(4 zzGvXobR}^laq1e+V`_eaGmEM?9dr&xqYGBoaS?{-cT%dFHIS;x8h3bBZS4hH&rl($ zs>K{_8}Ax!u-6X0g(dL;D`9qVWf_jrw2?M}bTG@=!B@$37K7;N8W$Y&Z=3^ShQ~X< z#?}p4=R?v%U}p#d3<>*bgiGh@t&EQ->kK-_1Ejs`B0{$H8=0TqddpUO8(X}@*22o= zR)j?h7ZNHrg8O(M;_jloRl9>m%dia#Hseb`gY10Po}2SyduZ#YDHn6CO1f@gzH+Kh zebZTc<&CH9xmO>xi_P^mZO(ElD4#=Pj^W6WY5mL+^gW)Zk6g63&(_)uW(>2+O8MGY zE?)%AcH7Ldnf@gh%SAX9skH!k2kA_I`RMCtxQoqv1F)glE?`h;V`z(HTCG`L}n4rqS-dUN?g}y7b26enjBkK zcBfS_G!&)bjeFsYegCIluN(bj5bNd$+IS+n$_lU(q-W)_d4=t4;G@}tzD}NzKh?@`>2AJo zh?7qrabGQe;I5CebzE*}nsuO00Dl@^2m8#2f8W0I*gx2_hknYLLi(mM3MH@#3W}IL zq_G;yQFCmV6&)rBqv0FVdOl`y^n$Kl=JsA$QL|ieK|h9#GtiEzF#c08SI~s+nXJUX z91F_UFa+c$hX4)1Dp$!R1qS#+*P`V!EuBr74o(OK;*0PBhTJFw<)OH=*k;d}XZceL zY&d_|>c%*&qyC_c&0^du?6X$BsQI1`-evQ0S;XnW!^iN0FQ17^_DNjKcd*=wlSy#} z;~U>G5E`KAO5sPYco#39vVZ&OKiU&~NAM({kT03Oz^WJAh*2ZY+Smg)gecVz<}Z!+ zn4uv|b{-8!cw6%&P8Lhp4RdCp7vOiO1q2wuDTF*{u#gkMH2luF3wFMx)e?o(mRm6& z$C4WS9j0=oIy-gHcU&WhYFuGE#8}PD!r(J7*vq-cJFUL)0dr2WPH6<|89oXm!I8j!$?EX(V?nnmqZ<0OL*P?!VthtT~Ry$ zM)xafjG@Jq zR#etR?`m|4-g;IY%P|JY(^<-w4s6nKvajQ7FiKCzFX5~KHnWQ8S~HYMSdOS7zIwH+ zflfoG>JqVI)Gx}|UsSckx-ofgfBQviXu51)`m=dfF=YnQg+5H3V<^Y#mfwm0-*Pt9 z)bk!?JZIr2tJF!M?acSj*PgNWulu;gu!aJeHL)>E$El`+Eq0Owd3>zHPgek_@`VrK zdeNfKMTR`tUt%mQxlZkp311@lFWEJsSpXtOxm;G={gX@KUzrXbJ$TlZuAWau#v(C_ z3KY{MbE(-i3{U_H2U63(n>})TA8+v-TXFMp##9zXWQWHicou_I)qd+dHwSVdAY|F{F&%lbw~rxYuQu=usz59&j@hZN!LSENNj=X}_C( ziZ0;o@B%kS9IB=k2WffOKuIfxIBj)lOyQ1OEo1vayo-ylv`GSVvuby$p@rk$F0-Ac zlwCw~At-KR;O)Tr7IBTJ+N&X?Y`GS8?^<4lzzG~=il?Cy9J52m_t-nfU#A{rNE^-% zpl!5ymh~!3+7(ue&BV2*s6^m_6FcpPPkarhlo~ddu5wJL8tCwh46Ln}YU_}2QJVrh zM_3iF1n%-!$%KFO&{=RnwRiJ8!qpz4JZYW8VyjmaCxO`9^38dP@r>VM9Lww}gSO|z zUACkcZ9TovI$0EwIbs0AioA^%PFreg7p$dcmZFV!TTA05j2WzyaqP+zwC?-X-|wbL zZ|r>;24I+A=D=rA9ZtT2;DJeXbg&Obakck2I&2y1C8i6@EG`9+S;3L|cH4KU+4f#+ zu|v%D>xUASUOdC{r_6H1cXgzGY6n+W*NAFyqydC*tw5YYTnc4C-??;pmu0Z)sA@{3 z?byA|PVymXeekgu$5fp$Am2raYDvx!)=3)M&)H+oK4M>fsKbU5+lsNM=2JZiXXp(L-iKi~vv7hlbQA z7bu)p3iu;zItGIwr294U=c8R5K>c{Y) zg(Kw`1Im8V#xZXL*d^{?{yw{X{mu6F@i%Sfv3(r*vd5-Z&$4;57P-&Lr%{*A?hd|< zaKTQUKWr^c4YssqvE91(E-Q?cGqZ9?J3~}4Gvx06Ry%-0>-wAT^xG9z1MUfOhVjIbMeX)oul) z6zqCA>4K!nplsp}bZK{wuu%l7jHR)tGfq#F(|{Uo9v(6`ExyAZ|H*f3dPbSuxp*V< z?_q1?1dDXWO`SZV)wv=949!53mK|S2 zkQnM_dRSIHmuw=6ng-%Rq;xiyY{X+|*`itQ%}cZJ!oI=1_Vp)!z(P=_t)H_B8zDA=Cb?7N2Y?ri7HPB{T;?|s z)=js35%fqri7QvyODsD#V;8T&)*#K?r5oh*ZRX**3?bUwslK6MDGztB&wb)OcFWpj ze6~Hu_38l_?fyG&w(mXqygk4DZTrISew#5IznWKDJQTUNZPrNY3+>Z=pmVd_7u9&l6k9a^|B2p(Eqo!GlB22 zI`jRLeIpRUk_6e8Ad7-1f{F_&pjf+D>#nuiOsCUn>%FzNcc#<&X{VjJGxO=R<4mWW zdu#95Y8R^(S3p#deGj`3Agm!_34tV#{eQo|=e+Mf|0IC6pL-zx_q^vl%X9YUJlhHF z?oC2G)m{7j&WcK82~f8Sn}6t3B6amDFZ2uX6CD{jof#8`%q&drEYvZOb6!`b8t?wj zL%;~lJBxk1%O^qMLn>EJv4e}V4WOdfh$pR~?AE{|sT;WT?g=lfeotl3T}y1+Rf>tQ3u57Sl{xhP|Qi(4pk zoAOEiu_920W83l#q|?TXzTCF$-C}R8f7`i<<30i>6%!?cmJGLx^Q>N0EaL7%>UOQH)bDYK9LPXy5wUW1J@P z>>r>0rTzNV<+g42L0i9R7u31}w>Q)m6|J8=`-;7@YOAf?ya(fzkaiIrTef-|w1*Qk zGPBaRn9vri!FIZ)ia~@GFlKZ0{;gOmtLAi*i z9l~=ofM^f3p^kK#Hl8;g)wh8y@eHEl1NxxeM(1xJpZ{3!yxny3JbV1Uuh5F3?9tZz z564lEKL*?S6gaVLRExEp&_+;$@t-v@|pI{FaNXs3c}9sSHESO_wKa0 z({8k>qmaQL-XDq{7Cvf^Locu6Vg-(lh=q?uKd%&unNF{1=W-FT8VEnV+B!kB8cx@O zur}K8aaRC}%9mlr4rcOYm|E*^d-fl-h3{2hnXJ`Uf-}egzWl~=n}7QaHsy+Pw={Yf zj-PZR5vIoaSEX8*4wIZ7*|8~yDq`S@WjhlDvF_MDj63AQs-4W8M_3}&YD7HU@^RqA zA>=ix=PV{v6D`VwPC=G(@qjrOmv zKWl>_4S)W@uTxfENB%UywH2$Hg7yp&T2?|4;|20{6VsrFZo zeaEIwyv`QA`+NKO+Y4ZoF69P~;chl=@1cVjjS#{l2(StcZDDlT2xtxMm};+O8$cq5 zy>v*wzBUZ29*dSOvVMaguhQ`;vRX>QU|b^;< zS&S{21A#HyZw~cL35?Qv+PE-fARJ%gtsXx9=&?hv?$sxZLQkNCa)K;&l-BKC;oZZu zw@U(cG+6so8Y>sW(QmC@XuA*Z1s`a$Nu!uq6K8U*%v2jOc%+Zq4g0p+wgWq0QjN5) zeC}^BGBq1XoKLe)pMepz*2<^ch+-x)30*-Uk1`DX@jGwi(#u>JE(dMT-lGf<l$FxMw<(4&rtx<~QjG<@^&JX3aW_LqjU?Y8`# zO?J;iw*vv^azT|$puA$IOj5sjL0wUmw_>oAOj$CV(GOuVffYd>t)YkF7_-(x*1lOKM>2NIri_r_$SDvh?7J6Z?8KBSeoS- zwzsOb zoa+qikFt=zG} zIgxkFdkAalkK4#HbStCISL1mr(q=-=g;T70yMmSZ9D~%Ca&LUP3zyP~^7B7l9h6N5 zG@#5TYqY*r?BU8-3B5mgQS$IXJ{&cdgszAkdv+YLZ5#L4Ra{osE`mibr`$p&o=-A! zW)cPHwaXC$TZ7Lp_?f-C{58ApmXFy-r+>m)&*mW1s53mo9ax|$zW{81?0{)@=T+zJ zH!P_uH!ZRI=6?Z6+rzef=O%38l`&v5-1d)35yGhp9scc^1(=P`@nhg;?z@9~37g?w z_CX8zoIU^I5_|gRzqik#+t{ubGotKYU)o~Rqava0*=$EXhuz(W^-@7$EG4i-mefsmnNU%VE~cRaJoBTD+Ic& z8~6Flj@w&3CveqX@;jms^@W1vgnOW)$^gu00kPIb;=xh=S|&pCB^SP^;Fzy0k*^hR zZ^qaXN10NtlXCz)@94)tp!f&~0plYpu0sqQeGhK2r)rzM@X9kbW1f$W|g!_NkA29+vV>_yQ+w@`ULu;TVg8 zJRF~9BpkV)8UGJY|Jqip-G*rO2u=jt(S!2K+ReM+tvA?j5h2@;2;7XR;FDI~=|a8#AoH?wWC{eeYL4wx7QF9Pn}MV;aj=VJV6uw@sUkBFOc2`PfNVEE@tD z9gS#;^y#AJ)anzpsBn|h2zx+hX`2<$Etg8cno%K z2`txY4kvApSvd}Z7#1L%(<(jy4a;JctcPGfcYBUDGwo3 zC+knx(v@%6RbwXGIQZfFP$!ounyORp+p0ZFF#&tGec{0;VWMQ&kDvLTEq!|lh8X4{ zTTsU=Ln{{@#A7wJ6w_`yHZFnx-w)x9z95vvSp3o*0cs%4HwZ;g|HM9a7&W7qDbgVp z4PBjnnhPdTR|u`e7b#S@BfTR~G`z~m!~Q_!v7Ic@$mNlC7_xeKD1o$clp9tu3faKf z_S0?uh?40^zdb~EQ8u3KumN0HF}e&>d7NHuzwr|ghQ!bjeI&r3J`+w9S}cH}Hq!L= zro_v^!z$M8rmhDZHvq5zqkcUu4>FQ+sed6)MNyq4w&7vviNpyzZkhGXgWKSSqE4e2 z{wa#lJ$eu4AlRY@6B85M&)pM?y`^&{%3iwGkcYdE(=#@6xM0a^R>fTeQiki`w3ltf$ie zQVyz4wSu;;cNqe&RAbfVoGUV{}$0%lFVhWiE{?E|^H!=OM4^yxkvZ9tm4? zCR*+N%3Xft?BY$YVo&EPyX)2m{M4{|!%{d~8TQ3HK4%GzWEGV=P|rSWC(dzc15(Oo zI}W(Sa2oq+Hq<)pyXlZ<)9C<}p=DjJgU(jR%NAg}{#u*iP$GmO^E1?{Py`@^sZW5> zKk&d8fIr8o4pgCPHr^+LDvZTK+q!!rb_q~3V}%mVpm0(BGzD|ewrXrVLp?C7i!P*= zdv8@eiNgQT{(35j!t{-$;4B26MX#<#-HR)Bf!pKyuXmUVp^2Gv@njBJC?}j^D;_Rk zP1aD?lDTo?#`e)u9){t|64yoFRf)ukB6|wGhWAitS9Usk9<8dgw-&6nyYJ_oJFsmh zawr{ z%_=|`>);s-MFO`|7dp`Cr_Y>rUP2)<24b^jf{o{~Jms-R7a*-8*~S3{B?yxahDpWU zL>qo-8@H^pKYQp<KOidjVz4d`?JEDBps3vu6FfHog3Mgg)qCb`4f|RyDN+D*>!N zh8T1MYRL}33m;Tt+KGk;gFqe+@~#jsrInM*;#XJNfy!EXD;!Bfs<2XM7=<%^lrSVG zQ+@HS2qC}#sAmu5R5UZswB@v)*Z3D4-twNlYo;qWz-RkC$9_wMU; zz95N4v_MP+DD_<(9pv!j6H7M>1JkU|J`gUy>k8D8EV4F5+Hr%@hZT76W zejL=Q@XMEeV*mBRkI+XPZ};DPAF^BpEPWZHZTPV_?-q5cede|ZpNI8pU0>9p<7 z?6h&n5`OEe|Ky#W$Y{0y{M8R_`}Pg?7azHg<7b{#*I?U_9?N7YlFEBtRvz?*KJY29 zTL9fX7dT&8|2up7|NH>X^f*aK=vfDE^qczK<1^AXuHB6&SgzeX zXF60nmThLUoahI>2({z-J zp;MPm}L1J?4)skdRqex|*+{0+Nd?A11I=m72_Kn;x9*M}`FS6aiw zRUIU&kb%V0m;n=P;MFDECVrGbg{4zy14XPjL%8d&I3Eh8FR7}kw0)3|VCC3bUBgXd z$L+DX4>GW_p;`E*O}?5S0y=(hW+9zOy&K`ZEQi|HLfg8Aug44h5EAtGjk1YDldoDC zBFCUSDsLD7iNqd_QZ<}_4bh?kcyH<*+^Yu|Y2YY2#-F92gj zbrZglkGk5!pZt|VzlECBVOA3NVv}SY8(C*^)XE&HEI@!f$As+}I~8k^iXlMYTWl zDgc0bI)!-L0I~xd$I&sU6<)rSOGV|oY&ch!c}WorS`|E9NFfQITxP?|3xCbNn`tvg zjtAl4ULL3uY2XrS)Z8qta;KAuXz=3vGDxrxQ;<1qZ(-H(jtqlP4Je=F`x?2aV@PQx zbc#It?V1Jl`i6Jy(NF#*);1oY2h~Z$j_RxW41tSSkEqw1Tx+lE=5Cxal|h7YC;0O@ z=nJ^L-PERt(yF`+DwqyiPKaRKKUyiWxjJXaAd#>QP2wv1*=x_+tXX&3eRqA90qgV6 zo5I^uZNh#WyLBrnAhc~_5KF)#?ibbY!#jbPGUIsBUN3WXr~h^L@nx0XE#peAY~!BG z$1zeENd=`AkXqx^aOE3-=`}tG);AvnNZfX^&JV*ZOFE)aVWemPq&SKg%n@)8!W{3e zTVmse4Ci+4p^hoD>XAfe-Dv&^0V0gc&b*UdJ~7Hl&?xSC2t6Hb&1@|>Rt9(NH%SVrguTW(RS1ra!Q<2S_G{JQVPuJ54P((W;V_(T;$NuEa!>9=~w@YI}bbT8(;hZ7ha8Y1W*}-G$BiN zQPQ%FzPs60yt4(KL!d;4f_fI(Rs09}G)R@&2WWch*|fyzzuR?u#c3Y^Lu>QT<(7`S zBRf5Bq+q|ka*SP$d|p_848@f2tjzJClx7U7Y75n$tUq1e~cGIiomE$S?$RCnAbUbCwkIU}2R-9Y;_F$Z!M6;}PVaN8Bu&FyiwlgOy$g+3fZktHLTDHfhK|>qw$oV7E-gb>5cRK=l`e{m z-dk}A7C(mDsx2#R?auXFw^m?dQQR2VHxFuGJ4g`H!V(jcSQQKw?al2dbF@lZ2E~)U zc?ndmav`^x?W@~u|9A24pvP~r`Sb2|tDGgs`>XSNc7Ld0R8N+(B9uNSjK6~Y|B$_o zD)#X+wKf7u=O~y&xol}|5QPMXV@yCe%H;$zcmUg88MlS9?{BZ(Yya`u zZ(wFs+2ap<#XgDpS9X@JP0 zK@vmFiNU0xeew}3EtIh+ z{+MAUC2-S9q3{))xBc)BURw8ty}0TPJHruAh~52n|2eE(W^ zSY1%#i@$gOaFIsu3KoN{Ez!8Ny8ht&)kppXu1o0VWQ=>J{QdpeiQ?y2oj{SbQEP@% zcvtDkxF6c1#L5Kczr3r9^SRf44CLBbw_IhV;07)h$G32lQX05tO?B|-_u9IOrRdnL zMMdl&DrAUfk(X=h@DymGHDrRN4=EjP6S2oPb;9-V-Y-Y~zr^Fkt1VHxyHHFx4aAiU zpeEyK1&|r}Q)iCZuKinV(+*~7WrdwQdCbYkS}lb@N}e>$g_V#L2Dj=S2XUwN}l zEXT||TE!yW#;A{)L;HPgb*-&}kyeTQf^$u}Fan$^Su&CI!b2c+g)2hzA^9XEil?us zk>j*FfpgzNXLIM7Pyb>2lfUwK{OEhq-7@lPMa6|9-pH~(*EuIF`VtqHjEKj9jTM@c9M%3 z8X9EC5^7-~SF|G;JcyN{1p5O05x>sGbczH&rHm@rFXU8yx5{^W>7GIzraviYHZ`AS zFw|iN=djh*)mS~!JW@%Q3Rxld3P`oR1QV|V5ajGrz|}XZNMLYhbE=26n1`7Px zr0?CElivTia64igt@kr7B8D?HhIeobRqBUSKN)C|(Y3VsToE^X)L^@MCie%Tq@m+t zyicn2Gz--O8VntfQro0f#Wp1vq<5c}9%IUQG{d^O`G{d)krLYolZKCrjOnh*hZC}J=i zg!m;1=%qc~qIcCvGhWUI1%A*FH23R1{nEC-c|LpzzY!&(E9hiy6PD`$QfA0a$?zjUXjww&jnRF`xPMpT%DVRU&^4)zd}l_j-P z@rdYg=>^q66QcGgcPp*mZM(N0;yBslOeo<)$(HhbQ(?L!C~=3V#3-WD>My)Ikt@nm zv%fv9{_ik({100Gf;ew zlnm(QQ5LB#-cDLj*f@@C`@y}{ZbB{(nt^V;6!9hMW|A=o$sq2Gxcc3TOaU^rpbPnX z0&}4_9;Riew^R9{v*V^GfVL6^R3Rs7j@w!&dMlS~wSBv*5p_c}NG+uOEpAgn6!xb% z(j}87Jr0wQNl_;|(^?L9b~b$ZmG{40)w7IV13(d`oG3ZjF=*fkZmpcBW1(i5vKGAl zR3!P6t*-zaEuqd#MsmzUDK6xChASP&6eoi75L=F8a`nLeY9xE=Ai5-=3CPTwnASp+ zDA<#C<6J{H^y>P>EKrj@RWG($QbLd@GExZC1I9 z0j*ij@h>QnhB|bgD7^saUC5C%s-NN9e>B#iAD~-u)3fyKKZD8!@`f%7zX`w!aXhF`zQS0elZ8hwk}$ zs}RalACj*zU~%mDnFJy7gaoRSU=kTvPf0H|p}t)MzvCdbkB@K>Mcv5;JI4wZ%SQT& zm@G7$1Y^0bk8XK;C$EiAmE8 zuc01$fwhR3S06s*Th$qiP@cosWSg$aVGDE4ohOP4PL{9y$uYacSFXLkB}3*gS3m6i7Z8>MBPR=HlM8>cPm75oN}S5n$-*~Az2eaT*VQr| zsHe9;^A|p%4zD{^4?Y4tqOK7c|8vZ8NiB)%C?ydkj+SAaOvqQi8hBkT6vE^7@(=n^ zQk)*C?H6+NPaf6ZX}1tv`76KJ5z2oZiD8|cY42?K@wv3-|NZ9Hr;fxiF7`~# zeBPv|igVkuZ_UZ>^WQVl^Jc0dYAmlfrK?kVIS&(XDFY#DhZytkH5htjk{S>f5`pbA z*w=kO8R*ER^S0~(OMpXvy0Ru)cmwhVIXrbMdNu+Xw3TI{PL-nmEs00XH>L_t*ZFneJ5w2KJ^(MGe}i{?kjymu;@gmIlx*SPBxIRaU+ zLvW9}_=nUVwVUz`2^BkTGY^aN^Eld)G%Z^y+U?vA&!=}Rd~@?(W7Ob-U7XDa$0Wve zL!Zd&pEq!PexJNYScD(WNaU0T?ja4LR_y7bQ6b=cgs3tKiz?MK`UkzI0_)A}y%43+ z$52o-7*&pDg=P)AB2V>|Yx$~t{u~TX6OuaRkar2E27H19c)S{l=V_ESE=ytZN16Bw z@BcsCCECf01QwCQrQgtzIDdkp-fz#hp8I8MM*WV(TmQM~!-Al^{%Cj4gzuN3i#9bQ zGw+j$&aC^IWi9xwkoQr&WD*aQVa|>Jhbza6Ll5-&)&(BC?Tn)#m zShrw1z+KoEtwBimPkzbjr1&pVOz4UpAEPGmUc?_~r?`ZvyTUFRmg6XPk325^s_Z(K755XJKS#XDSOxh>N~TOHcGo8U~m z$>#J{T1MyLKUC~Mb^3)EF-ryF1N|xBePG;+MM$4}<=68Hno0^1`R9ivIy0_fMYx8g zX)+f;lu#LLUPxF@sJR;^m&N`bJh^mt?MTViwAjwC4-{g)22)V`tq#I z6jLtFSl{L6FJ$6h!w&&*Z$;nLDZPhNO1_?L+;wqT-LnjnKoJA(lq^edXhQpgRTSMO zf?#;Gw<2J45+T^5RApC3qGL-UBTv$aWn4FO zXm)Y`oZO5=VRoXeGruGAe80@>ewmqxv>a{)$zy-b&BQi~E{{Ou8Zx=)d{_sBc+K|V z3mn@AaEZ%Kc)BbHg0t(p$I~}C;qSq(bc&-9hAA1^PAn#3C@rsH9(fv1i?$!((jM>; zpzR7Gp7KySPl>oV36U{JrGs%4mDxdjGJ`zs`E=#04pr&uL$Yy?s3tIq!IgEn2YE|k z9okx&K;)Xmv=06#G@~876&$o(BLAH&t*xCIS($K0IvdkF&SD)Q<8)?oL35&`sWqz| n8Mh;=TVMDSXS>7Iwl`K>OX1>L3KVyT!o^y&SaG;q-0k90+^rOMDN@|swYb~G-QD%$KQr&W z`DW&=cUH2J?44hBa?VapWG6&XUJ3)12o(kf2II4|xDpHu;wKmwcz$HWSIT@uR6Yz0 zEZ7VPRI~s}0c|X8?3HanU?Xue2U|;!t0D&s3|)+8bcIZpB6e?^+OJFqHYo`SdkFC7 z57b89YCLf}WYv!SpRIX?(Y;bXsNV3r`1ro~ppIDM2l4asB4@|$Zg1wUW^cK&gyd4W zMQwO_oHT9lQt(;ZTHnAI2()Tx4=|+sVxqYUM`)oy-#$w%E&K9ZDzfn;e7P(?sL}TF z644R5$M!qpCtca)tZP-Oy zWJ~*NjZ6CDnD!6VdzQt2_ zB^9gr%qr{GBZMz2j@Et~Heb8m6J$N5>xRCM=0|8`q7;tw-z8JNfVbWAfQ8RDz|D=v z)OvmE2;k2^MRW`pSZnx=lh<^pk@{z2IXRe*uW@7;1Xv=NH?J|+S1$}p{NHg&SUMQ^ zztQ1fV1mqG5dM)z{x$sTiGKBeVg4S%{|JOZdQH83^)8uk|CJl@Qzra>#o_s1c`%~N zz|WswLuIhNk&(57sg0v#bQtz40mW8Y!vO{cpXM(Q`&sGzDGUr;p_z)hqq>|dKiI~K z8DwZ@UvWVSj7a-^B_3RT#g9l97Xr zCFHMa3A1r>3jR&R|403w3jQ6T{vQ$lO#N5H{{U32%^Zc<{~_dG$p3`;tG@h-W-dmS z8scVFuS)Q@+VT8Vz5mGiSE#Ckkv-7H>J{lI{6A{+5AZ)T{}uQ*nd<)|lY@hY`=4e0 z6YC#PL6*Nh=0APhziZClsIRIcj4H_T-)bm~>U!eP2m|v8=Cin{iVN&v3z9y`tmn}a zlGC_5HL@=SYR9tsR}jv0fw^izKZ`w8LcM@fI+(Ur`EZoQ%kI%YU`g({wvq0O3JrZo z+Rr%wqH*^VG>@Ido*xuFADN}21*v`7k4F|8Zg`xHokrRMa!t0cQ}A)HVgCXjpMv(f=#k>ThZa_##)Ov>WVACE)}7Mn z!LbIP>zf;`j8T);bj*W;Bd49+hPnx&|J*8DJe=>s>w030Q^e+3Sy|gY?S!Ej%dNTx z2YwrLUiX<+_QTkvSS2chHFE94FhlSo35p7IdEGT^w2y8EIGjtH*n~476h90d}5**AL78y}p??ND*O*OQEQjwl6d|-M|J+qC; zbDMswi(C|Z{~Z;B+~MH5Mjfc&Gwn!Le%xwIC>m&KuAPDrWUJeoo6IAK3X@t~#^;o- zO!=O(yOSDsiEnv&=KF=mDq6d%b=mZP?jEZHRI4i5VWHvW&5spM7o^VfLwr?3&=~_J zRlJ$EI5z3W++oB53;Y5Tj5BVGLTn3|@v{p>?qQZYS#Srtha?1*+O}oIVDFfg0Bih6 zS6uQ0eVrwpnF;hD?+iVpw*L6C@L|epcOl)d;PC3(TNeuptBT0$NXn2wv3G(1UY(S6i>V z15!!7a)cz7HF-)iYj)X9?Z^IyeiqzbBl&&aLd??8ymG1b(rqwJc=CtTjwWcFje$>7 zKbCe=-AckIfM-^V^Kz`T)F~_kz0QT#f0QJ{1cjP|iH3V%dEUFrHm_d zcHadUW1rC*bsgyx{4!NXpQ8gL;z9o;B(!v#Uss28?dx)IyvL?j#mBLjAS51t zr22p|{uyWtXy)#3tOh;J$iN4O$IkY$&C*Hy`+&NdOtl*I*grr9W>90S+q`tV5SP>d zLK;*_8Om?z%5>`V^JpZ4w6u)y%)j3jW6_uW08=xvF-~bVJrp;;fvAAqHIR+0#ju9H zo8@Y{r;u6Tp^S1dJ=;y7>3N`4i z*DGpkjcL;*`y$GlPVUjPsvSck2$C#`XO64E64R`ams!DzxikSg8ag{50Q4kAQgQ)APoHDOK?u*!a382?y%AOFWjkls59E5`pc%(Kd(upT&Tx+M!; zo<5Dy4KKu;n;Y8a8s(X2m`P+u^b>$dpJMRe##oX~x$Ih+1FusQ4Xe*6y5xd;fW0J1 z*jA)hO7*b8_J!BwefD`Ri zD(lL_@#iA+1c0Edrtc@1-uF!Z%U`4hXV-5zAvM*~xkMWjwj*Cr8_#_a;KIZ$JTFF_ z!^CCc&sBS)p(Ph|#W|zF!YLocGvr3e&y_U;Y(}af&o)@)J@(;n`K@6S))OGL&=)^a z{(GAns-_Mqk27r;K=Bt7IJm$t?fZ78KFTGCh;yrtm3g*NALvyY!Mu7w$@X0lcuge+ ze|%Y>YeNV36BL#(RQ+@6y}!p5wAC}^aC-I`n*2LV|NeW$cVd5+RPo3|*T5oQZ)8s) zr^{8uqEcp2L+N^^REHvl=;wVjt>UawQm8A)=vV$-5`K4vVz310po(eHQ{)~mP%))? zit~`6+x%d^f`vd$duOEfDr8i>?LDT1)^YOzbM;n@>S#%2;Jq8M4{JTLx;s>HytOuu z2=M1!SXe}b?j~oExafN#86~N30`>f^eG3Z~(>7W++lFU@RIJDxz>DuUa&%!@OZi)9 z5O`q24VEz~%HPUPOUX?HN^Z0J_`Is^@`Coj=h9F=gIMRd=8bf3?|RRA>5dT|WfrUfiOo_tL=&lJfi4shJN*?tA2@ zZqv?joD=kjVYrie2scANZK*{~WyOe;G-B+XMM-1x1d#=UrK4DGgq%Y8_A{n{k|L^3 z`G7&^!%^dWmF3i~rOcmxRvQh0%B4#!C6!zu`z~~bQmb12cior)eh}M)_KQ=(^nf%q z+rUv@Xv}1_Q)FwJFVUCG&;q*X)&A$iE&y=`Wa)E~yt z^)v_(@ebe3BdvLgyM;2T*Pq_@`Amj%^Rh<%vYf47@^tLnX2H^W zOJ#p5k;)=7#j;nig|-c?dp=I-*T4^i<3756bQqmqdFon$&NWxmIvo*T*Lh#?T+e~M zjd_+ls#H}}7HG*H>Id!c)lHTfYhJkz5oil1uFkf>YVUXKaL+BD7w=f@e`%VT(T58x zMcN9Xf5MB4Q`6NAT)!rL-hiY(t)86)2Bjc5gy4wkELl3#GjmSfVtlf`wqLh5Xrf`A zMAX&w)uYVfM9)_6Y`OK^yAg2&A}FUH3!YTmqFm@bBY;x-%4kGQ!$?Ug-)u-^)l4!S z>pX6lI5cwETJ>;60gt5obrtK=ym-1UbnN}ud{bR?&J>8HtfcP`%u%!Mg!N9tTrfTd zO&9#z&$XQp<@VH)$LsukO08`}9Or%UubP417Um`Rm?L;beZ_S}UB7?pZw5!yZqiM$ z%8yi3{&p*3WT>H*ill17m>{chh8}maUr>6waFSGVDB}8K?JbST(e6an;!WBg)e$>& zP2WBOZo=Jrr=OBh(#Gxthb)Ei&0!aXyAJ|zIpo+9>dPu5yi_;k4IZSU!+9=t-uYS@m4$ti;&M$@?gj87BtX`I1H{1Mf*H+kVOp>5ey4F$)oRoxnbd5(|@uz^s-q5?SCVm#! z#LpqC7EPX#VDfSs^%4w&dyF>0`Hei0!RrnBUSoF7;fnVq7+UEX7D3EIh8Qg^ZrXjX z;P%^JeNi`3q4X0xJUMzZdPn0^@V=?Jr4!hMtPYt#u{Uy9s>!wXWfhi|Kl0B=h27nT zzHNx@6G~7&x%y6fho9nrJ|@3eTc3NoNcpYv?ukaGjfY74`p@UI1JCP}6f8#CD9Gxt z&ojczMOoLVVgX`m0+W`p-d#~!=Ss`W=jtXnQTP_34{fYvwv(YDH)yfYv*QyTNf-w1;taf~Ed1wAy~T1rZl66l*> zii-*>t}*eY8+k_r#VC;PPyc>i*z!wvXyi7ya$~%1r-(Jn#n=OBwG-VflYe+h=)J% za>VkDBba-N)Aj$Zx6#=83)z=Lme5Mid{s4)s=x(vQyo%fj8;GlXY;?3f&KRXs zuS91^)0CznG_xTK)=jebR}=vXQiJt@?{>qEVwT+CU~Tj%onUL1PaGU(YLQJwyorSq zS#59a$i-Cq{a3H=4|10R_ZUQckat8@MEeJf0^Y@wl4wz69i{TSDpRWl8|zjBQ+u^G zC)O6mUymIOCkd;=!ftWl5Ubbv3+Q;qXf^8rHA<(&%L@~hq(`KyZ0d*g!Asg)DN0zO z&XwjCGK1wLag#G*AnBZKcOoEkYyUEu@YB7%WpHSuEn@U;J)O9h;(JN+!UcPEF*Md? z;r&N^JX~wS!ap<1(?&TsB{9haHh9yJnb6or0kFvduyN)erGF6&%zK?@rzh8lnyx%V)|HuD7eQH5M-+Xtbes%@kSf-)h~s8?Q@JG2a)?x5hMiqH4FfZC?asH7 zN@M~LIIBQvrCz_<`7c-qTIZW~s|1}fKMn&AY^qbN8^a@T_tE0_;h5zR4|k8-qJ*Bx-X+E72&vHWSb6FEtZ46RiR&DF2o=VTRIhQq!q{6%RwAmuIAYFYtNwd9I=8YPi`8lg2LbR|5)x?)fpo&Vo*1P9zc(SWX zUEagm>RQqE6MHueC4}k{Hr zyP`#>{hGui7d8dK?idO>D4EEJH9o%y!*5b~!m!2nzjwYinH7!7d*0D>au};Rau>$( za5CU^3?+|=v7QA!$dIF8j&Z2t=3s8YFMB=66_pnAW2Kp7W>^ZBE7TSFJYjeRVjl9d zUWXBG6dsY;aFoZczFhkZH@jXiB5Gcsu?TwKlcv__!5716k%_$TdqMVCe-WxL>5x@G z^fb^Zp2Q+GU-((57R09qN1Et^(FG!WU7iQbYTV}fbDrmCty;%FZ;QTfU8Jns2CDx2#tW8YLZ`Uc z8Fh{r|AbA73&s+V@{xdFWBxj_o zM8Q&oOoGPtt}IU}>L#9cn^)S=QVY^zBcp)8B$>yq=xh+rOlg&sR$U|WP!i9qb^V#- z!Qo*gZH5cnS3JD<(4VS2%PxL$$((;CBy%;m#K%2PQT5uqTDZ8{*TX#BK*5Pz7V%5A zT@k$Lgv@x;&n*u}5wm*0#-hsDNZ6={DDPXK`%&EN*bBi!tQ1)Vi`QOQeYrd6bGrE` zB@IE3w5Ib8wa%P@wl;2TZ0h*x=~_-LzJZ~rs859S=gJ`AOHr9of)HY9S|#6rrYTSm zCTUH6y4$%&4CbBNyA&xo9rM_49-Y52ttzvRM%8Uh!e|V`>mG@pr}CDs-$1YX%Cwx_ zakn)P(3R4j8-mj-0_Ers9)$_kQdNHj7P01PclG$5+)-Fhwu@VM($xi=l7>p-E-Um$ zf4dfT=Gb86zH(v(c*M*&nz@!9U zIug(#3O#QdQk&j^m@;jYI((d7@PKto33i1M+s3cL!M`b;*@du~uCj=sMHmxRy35-IYKLC1PG=V!v&XWG+xy zs_s``W-2ln(cLDQkIDW#SaPA!Z)=AOKOWoEU$+61pOloQ%Hcv0Q@^6+bdh6Zbv*33 z!Nj3jQYggD3?ViCX*73fOhK&VEn=F9{`*34B6pVbZ-o+R&+~B#`L;hIPeo?W8!|>q zr*aZQe7zl@?K_J|96hP`hXY=U?k!K(0!;WCxHH)&T)}yu-l&5to%5%am*?4;H+~p^ zeRdD|?RECi`kyDCFfe>K`m*da5pEQu>}yX*T9K+T>L`UBpj~|988paG-E5h)qWM>3 zyB{3qcHY9#YO_>J?^AE~q4QWqMMecJD_rra{eT;q`9hDm25%=S$_0VQEE!rc5; z=+oWAR_hf7(Cysb=CaCbIxoswhgA{WBXiOuWT9*vZL>Mzkggt9qw(KPwj&B5^rak} z*ZWhy4O!4cajXeFSIV|`Sl_&6d181OBJ_RoCGSiyVEo9|nS75uzE)UgTvQWJ5WGJg zGqW&hWJVtn&*RD6y>3~xZGHd~*O*6ku|3rOdBr3Lgn$C|?oQV9z(3v-Q<27H#^*&& zoTD#Km6Qy~z@wtIrKS25`sK^x0jwJ>f|A>_Qagj6i=L9^y8nc3DoN>tpt_^8lK_0T zi%Uvhw|LXlN&N+;%y+;^+vCNJ)pq#ab<(KE%tG|Kc~1$CmY0`sackDdttjQ`1@@y5 zcD&4&NDbGXJDp+|WOW{D^1{m2r!_g%UPQ| zuQhjcGjR35Kpex8L>UsTU44~qiqOr_dEeeb zUJkWx8g6~QDw~HT0Lp9fHrYK2C|>v>QZk1VfJm{K-<>{Rf}=V!&l1CW*CY}F3VE`x z`xH%wWiR&@BmL*QIZ;$^KcE6Kt)1;(_WFd)iFqsorteW^YEFRvQhsX9Eky6`Og797^+$n{ja1pZSS>$XTeBPj&a2 zii&Hp7AN{ftEN&LoJ^M#DD!GTO-bD51MC8gXU@C8ke)n4jb-1U!?~uS5)>RJ66lsX z9qMSRP~Xx|HIWx|K_>lralL^rF?zTcCVS_2+*Dk{s9~s9hHi~=DcoH@l$912>3c~8 z%WcY1nwn8K-Yoft#HRM7;=nXHpZN1g`Z4*kF~7aY$f#7TM~ z$#~{lg_=q()#*p%QZwMu+6er?UPC@eqP!DVR+7md$g`*Oh7)}(6q!%_)Kt{<-JL)~ zw-Yf!+@rmnt4bk@d3?92^v|Z_D=iL4&DxDRq`&@@Uq&IaT>D9?om<&hv{*Ltsz^>6 z!@-9R8_6skwigeb|i?l6UD;<;kDK5 zD~|*;O{ph-91W7U;_04Ks;OujZ&X&T(ytif(I;{9(@b|li;4lG&e4oav`nxxuyooP z?jUmhOlLCQ`jtHdkjqHEvAXSMIaghFBEO^HzT%}%-4Fz6@CPD7wM~;WCDmSmGf$!9AxFi($;DX z5(eBbv%lRI%L64uVL9v5PS%r}2746q=BG<*^yY0?n> z1LCsg!^;u7jXvtGUPA&uDxJXKv|SS#M|AUK>Ita@ZQg;to<0E+yM3vUkdW(Mi!y%N zzC8|;wFXag+V83zrq$qw8JTQP#lAH=K}Z&u<|;$OVMjDpw5|N77>B#b19v_Mv^wT$ zZ#i=~j~{s!Ps(tX;x@J%ShwuB2xqmA~=!MM4te&;>3)oj57peM#lb;*wbO2 zmFk@gy?|u0aDU{Q2Vq^L1T4D<>3ATU_{gjyBbZ znC`Ys02I%xXY74WOI|VR_3Us>L*VDqTx-1)Sb*)#pLch$GfyjW_Ss~Sj+rs==8EMA zPupVwDquBmX?ESi;x%6L5|;4-2WQU5IJq_x8n#mAbtjHa)9ky>yHj4>Y&}&935FORg$!$=uBKLVwuWN%9AM zFg{9{yzMwulCn*0$e?gQis?^RDlntP3@NwQpFYNq%+vf@7W!F{wao!oTH=;O3&%YT z*d}~vWbFqki--JHQ`JyLdJAsGDIMt`NQ+#<7FvCKPtK8X?m^@52gZl@){NEZQkvXK z&Jwi7^vD94{2CN%8O^M2g z26#!a(L$jVnFv`YNx%5M3c!CHO63?O1e$VgMnKLWvm3^2fD9c(Y(J;Z)WI^JgU&dp z{K5dU9C-*iY<7Z5hD)wDE%E+tfRYj>>r`j&RakMAHQq_4H)st%RvnCTBhkS`ksRHx42zr-#!IkZR)oIAlHNMd)z74zKA6TE{# zt8I=m@0%{}8@Ry+tw$`sD<+~VYKJ)no$hL( zEci7N)_Sh_lV|H7Y<(xpyrGW)!RbGLZdOi>-L?mL3)`&tsA#jXdj0I=W5q{5u0ODr zQ6RU|jBQH)wph9-5Hocz)KxR6#`T$(prX7IFF*zDYJXKD^E z0{mwp#d3Ryuk<|(=^Fr}y1&VZojiv@nvw7zZKj@MXqn%PXiH93>$2nq@7U*Zo9og2mG_H6f~XRsgSTTN z9ut#iu^d4%^)R+kb^}$}atSd|mQucNBV9KG%mJ&33yHL}&Ani)!8eylJ;04F38ul? zU(=V>Nyf~m=?~@9z6{L@gULddf(J^!p66$SmJWSvrwlNj;_%t{7AwE>YRpy`yVTEW zkYfIrodw-#6sj%Hg#FQY^OdFhM>Hk_J|H@N?p+FpNq`*D=%1+|KU8{r+$oO!M7xRc z#(n?}_M2}xYCYfD?p1@^pRRMrU;3?Eukh8|e%OIz>|)cJGF@&35$;YX400M8dR!A% zP}xqOn03Po%L}?&@8jAkpO7%;`ko(0kF-|qKbV6u9;8Gf z1kD<)>t zlS>D*`j)QyfAV$Ct}QRYdzD7mKtN{|KRkf6T3iMx9_d)>o(b!~FS8a&Fn#Z-#cTr+ z*^N#=GVItM+2gBp)btylla-gFl|!DkJ1%s_!fW!EvlHpC8f^St*VR#+7rxiw@zPJDmX$P@_!nYy_r4sd9$RLw+RoLl zQES&)J*~4xtHdt>#8!1ZQ6v_84&>!ihe>KG4pVQXIt)nD47VP1JCbil2{qjGgF`Cq zW<}tDLpaceP%EDKL_+6KAw0=|*pDHvMS|?)h zIY}8O6*9$-9kMRpJP1d&mcjbne@#$77ct;=%qNA9kAp@PPpR%~p&UB~&5T-V4!7;0 zg)Yv zfSo1vsRm{!1Xpf5U8TUvXX0Cv4VGei+NrLarHeacSk^SzY4`I1iOR_TLvFhiI$iDJ#tK~S3c~En zF$@RaZ7)EA1I_xhd4pNvbP49O?Jhw#($CSbcj$J8v|ajH z*^l=`o|nz-hUK~drBQcEWx~g!Pnu7P@w_`BXXGc7wZ8A?-q|C}nvDgrf!7Cs7iH6f#UFR+g z+b=5!QiEr#fv$%Q`7gouixB)MS-dF0dz11VKBHTggu;fc$YF>3kqwa-LdRIR1g?!W ztd|gu`@^Ls;>Oe!Gv0EX8an=vN#4qfrK7RvZ7n`@S}h(M$HJL{C7olV{#W}25FyIi zk?6e6yqG=a{Y_XNf`PdfNM_bA0kZzsnL z;?#Krjs2OD1y?FLXsL4xh9;!Koy6!Adb292zUHn}8Zn6Z^QTQ;Quvo@SvTR)5`@N5 zdjhbEwNBly_5rrOs=R3QOxl2|@?AGkQOffNK%)wK5EhwjdN1eqa$`gbBio77P0c#% zw1?rR78JW{zk&qOsM}&T4dfgKemNfbR(&_S&SPlPC@Lm-#W-?<`)O9tnvMs_OLG6~`ahMI(kn6(3gJ6qVdd>l!1Xk2-l;JE-rnJmV zqx)eiK0Z0^Z#h0_%BcFdg2w0YCA+oc0`{1;hjvRx^*TXI#MAz1)fu z@1omyP-17th>u9{a!zs8`x=G^>M!@fBVke1EF#EAI!db=y`hr+y(DL~SbwG#8vGXj z#XKN}nP`V#lx5j4DK8@E8abSjvG>XcYtg1}AhIEPn94sI)6e2&59^J*L!fmYg%Wrp z5Tg_yndx+BO~Xephk9ai3F7-zAKbUybTE{MVM8r6!yFFvbKvW-8kMfwLRQ`Uglk(` zwJb#?DC~lMyOrNujUJe3n~+^dru&9d(N2dbYWJ%hOL!)F4I}+Wd$VNb{4>8yQ$-u` z;ByWIk-h!ia33~m@RVs2*)nE>EBNU3PaK`sbW%y9nA zB$&V)4!f0Vt#~OYsGMzVP-(;9(B};R{vqA(qw-dN58@0i%+WYu!w&_(WaA9d{fJs%#Th>ITZq(D zY)x|*DH&Ik8}A0h*;z~r14yoQT0fFZQ6R-v&ahAF*bbiR;>_h(uVN%cD2!85{?ehI zvYI-yqe+CQZjy-TGww2Cd?`*vlFR^7G4&e}E6IF=xuGhZlZG55zHjIU$OD+*y|`NXht7!Nu2{=W4`kV;8bB;mv%3O2_{>twrb zXYF2K;{0x#H6}vi-5e&E75@XXB;cTOB>}v~7T$G6)n{PZxvbc>s0a51+N<1RW^$$q z=Y)(=BUIlsu^j27{1pKbEIpZ(I_)Pw{KlCy_xn;#T$nw_3B3theBO>C7CHSv3v;o4fw1ESfC54vnQQP%`I`$)*Ky~_ zy^+j+o_cD|)Z1oMBRW*Z`r|HvxG)&4*Uub^M?wIme!cOXzG4sCJZ)xJ-lrfJMj%C? zkI_Q48FEZAQrR6Ah1_%>o71IHW<_!`|0b+B2HxX0wDDMN{+OV296Ia6U9^Y0A?49I z28)?h10tVy%+yD;B2R?kP4rGTEzZy~?<)ppSZ6D-Rg*T?fVFGRY}>VluCs@ibph>D zzL$-lE<=#NjI)K`m1C`j{r0;e!Fn>G3+L#bpRa=-(+Ag|)A*LoLZu9gktv#W5&bDP z71Z`6zZ(0Ki!d9A$PM>_$@KWj>piiEvFk^p8d6Ve&DQ{+6B15pzpunZny68aUM6$@ z``o5vkdeEt(^pzD7pnT6VfdH(r>B;BeT-@hpv-u!2~LgD_V!nuHE!aNsc*#^o%iow zC%aX}dv#gD{a5&8ai%pAC+oM`x&bw~%kRRUKZ_Fa=GA0Zu-Ue4faMw$mW+zy-o6A!M+6`9}EiJXIPYr}zUpClwya$R6MkWs66dnoYqwPPuFr zrqzp&9)m#t_Ef$L9mj6svbNBTb>j*P_xi`lsMH(+PG0>(>&IQfzERf=UfaAo6Z+8= z^Tk8;Nig6XT)CQ*qH7qOLR@A;0+vwyb+NC%K&vZqYt*GcH&&eCKyZ8PcB5nB_y>rZ zpL$4=!r@-paxsFr+3&GcNwt3U9z{=|7m>&;vQxhUnILc1V4yTSCg(d6Xo!FVg9trn zYmv`sC?hahkIZR3ObIR9$G*>ic{397l~@29uj)Et_VB1~rXe+huc0BBD#@252hB=| zDwNyG4cf8oLFGJ=4+_vLfV;TZTuf_5N==0NZ?_?3(h;H;mNj4c4k`>h=2dmX<2V$3 z6AD6(10D-^U)B7FgF_5hb3-#}ns+|cn~d*-xkaGOEmj4wgy0G@X%6ols;Nednv{fL zNul+w>saz=!54I{Kd9@_glG zWP)OH-|}yLy=fMHYgWBm{U;oMNW6mz8pCSM*%)+yoj@5BgX$sgv=BWhAWw$0Vjl=g zpdP=`@S^^?!b)^WIWN@UqXm(3Jk`_e>n1GH%a;VWFb(3lJ~e(CG50UM1PuIxsgyx( zKiz*LRpBvMLjuzyZ0Uaa1V*l`5$w?DAVv{-?q{j_-DF3%qWMN2FjSo=K7f`m`PH|# zw-FPwJ?H>hCR0C1ss=k1T;!P0*Z{9wc9KMJGD^Mj?5f=_HEGXaN%nk) z`oPDBJg@Gyz(ICHsi3hG#s2(;ik=^n8_{a{OZUI2i>arO26dtWwy7Y}hCf;~7A7W-mNunm)gVY;;=W6TFO`!xeU#9Ricq_iP9kXpzc zA7*M@hyQ*8%IFdmtte~4_kxFX?yQ9I1?h?*KZ7-g?GXv0(WV;^a z>wFne|LNyyH!Mc@#g51WeRnHF-gHo$^ldubyLW?w18IXPi*3mp7a4XylBEbT~%)TmwWYJo7bPyg+24MqI4fr@l=mD*SzMf5o*B|J8J6r zL4%!~mPc}1YEe^aIe8`J13()Mhb_=-iy}c{rOA>J4ja81z zY+uGnYor+o`>LWd^2qIv#1GC{e2wGOCQ9VGCbodgmjsJ7K2gv;G8LcoCo5DUmTPKN z;;d6&eqtV?ESD>c1_riSK~XU1DGk_-S__(oTL3*sdg?=Be)5e})*gWTfKf@9gMJ@#N0y=ADoSV?x+m)~sypktQIM(~u6^|A5RV12^-HIWtyLnRO<2NgvC}w>bM`Xo zL4_qk874sm+>@XcHSqF7nUHKoFG;Q{opCLGVT%i?ku+0V!C0a!Jc<3tjNQ!&GjT13fUI*<7#z*kY+JlP5+C^vL>h>h7Eyt1rwtl4|2hyQJ* z(KWVd#%}RaJqy+v9Ub_1-tS4o-5qi6YR~#pYnM41-;(PXArW6aHB(JnoJpB@5%FsFHlzI^@m0_l;fTM!lRFr>tN1Ig~pk%Aw-^#+m` z(y>7J&mF}*4n^-Tc*9x9HB`PtqxdD`9u)le#ywCw{A@8aHrfWkhd^A_}f3j67P ztX}f&JU*u1j>vhz25;;*2HY7 zjwW3FhaOZK>K>u%H<=|0 zI(==079kAT@u9P|HY>+U^SK-A=k0!2nR${aXgJ{ekEJR)U#(7Bt8i&`kUqGy{K~=a z48^Ncms2gFSzWJjyi+pi*=TjKU-4OdeqBDBoarV!Jv)1sC+KOy4_c$#BXtn2Q$!GJ zMaTapGx(^y{&)wDB0V{Kal8D=Gk$41N9q-vUE+4lw{cVt?zZZ(?8de>*QK&mIH(vKq}iV-W;3OmqXG@3Yrp@W%RE z#Z>cbD`@Q-`dOmXTMuZOGu754Swa*mEzj)qt*N!76%GOBUQBzZ1{%JOi2zOmE1qNn zI)Pj**j;ln>AvJ`FKnB-XJggN+eyM*xKS1o-j{|j#nGc+ZAw3_Z_8`@Ih$J%J#6Cs zz4E!F-E8>*>Cm5XWL4kvTu}nnPJlQSM!aphkOM|d57N1wCdY5edGdW2MHq;&KxV=n#2zdBn@1P(4`v!B(s_SWZUl=e&exL=>N45s~Nzoy&29Z zu;Pl;D~+|^=MRmcz7027hhfRH@&M?izTSM&{l;4QuGeS=4@8P*pFhrDevG2#H6xg# zfo+XaT5`EC7j>5seDEQHhjahd<|A$GgxM5Wp$nV1W{)@DzMBfau3JF?aimlLAF^S#Zkr%3S)q5NyYl6qDEu7+{C|@!mee3H_ zOy@3a{S(Zk!N}uD>Qs6$C6po&D2Dzfeo8D2%QBP4;Hr;RM=zSU>3~pUq@#QKUFL1!h@}>DvQ2j@^9XV^JtE zjZX*XmOhwO zcQqmE0SVjeac7$ndh>dhe;9h1YV~aHxlDlFGm2eUsmi)abEoe5Pl(*90q_`(wCL3C zzNdqRi9y@U*=E9KB&piykvk;AO|FkdkVUjfu~T{-`LCxI7NQGEyU4{3}#k)am(`%g`$24(~m3bqCb0S|mYvqbTSQaq$@V+jQtzO#g8 z7-1%_4-2=`3Y5W25X;AP31Duv7f~T2@>F?F0A`3G-g1AtZ944%^m*bm(0e-1Syh=M zmi>9B4Bn|9+`f8R>Zw1%qm(W+XNTeUsgijS;(F{>&C3banoH{O zIoxJP9fQtOpNmKC2>h+R9k~E3@2B&C{w?{Pd|i=vW)SD;huwUNj{)9vjEsAyn`@Xy zy~PiI^bV2*FYotrJO@!wAF@n3G@VxO1mGc+89}92Z(O|R>L(Zdk!QA@=`3v5zmW6dBvTWBopCAsy)cS^ill*desNhl`s~z6AN@!H#RC;JB*!0*}ee z5h6pM9O#2+M`%Wxr4g9x~*y@C`R0|uHh}GQjda{vKnuD^V6o5vLMj8 zPQ(e(+r=BiUjy6-Bvv%>5^S{e=IppQvYV(G4cY53pT6uykyl>dAqn(7S>*Amay2p3 z4a#wtLF|_{Kr<5?QFsTCW|gn47#9-nJRno5kR;h_b&7#9_0kaSZ|yIJ+G za8ni>kfsyqNMNa_7Ek!)W4YO!=d3xNJn{Z20HX<2Cq*_;MMM@xV$t|}7PcpMqtoI3 z(Nz5|Fi?!O(rOXO^FCvtTf|@35+1ixQFq~Rw}vRm!ksW-jNZ$^F!X>HDCL1g>%^Kh zq#VSN$O2$rUIAMXQxe9>evh{;`BZPS-ErzEcj#SlZ>1dj_l&G5TxWB>tY;A#PaEoT z)a(x_)bc=3Y;MpL6^7B7@RhvPW-=x}bDq?cPvgddS$2*sTlskd`~e_ZF*PUcyBQ1J zAhq3?u02uYwKU2+QOH~U_(}o(?WFPHm|C0W`S1Gy$XJvIk_1-8x3EW7T4?CDHvW#Q zuz=9XKEp^f?da}nT6ot3&)=>WeXO?rQ^uvKV)5)a6*@{BSGu2Si~9<@+nNTq^2vVX zb@Z0o%~RJ)WtKC!K4yDuJ6YNXb5CIi_(NqSa8wv6URa`m2ezyap*3 z5Bx^Gh`uOQo;fJQ1b9{8>Su74kAmqY7*hTrCc(l6{Me=7vYq z7^`Efe@Z@F)?DSgN7B53$MPLr?K@zYR4b(K2-u)viEXxggF4Hir1Z|^Q>UJKXu{_4 zLMJ9g5yIs4X%p;3OI%>ynG(g%f{x$CFy%1)6IGZt_QcCeNS`pDJWqXxgs(Bzi7@om zhP$+bY!jGrpF*t?NKf%IwXT!ZQof?&CJiv5`))wrhZNxst+ z)OzhP@a*jq&ag%KsHyFgDcEf%UWEEBC(TYt^MY`O=&UdHOFbVulT%w~eeG~lSHQ4{ zKZa+^uAJQoE8=hMgjp84Efg94^ICOrYd7n0m$KZK-A4&$IjH_-Y}gCP77tNAx*$u$w+npQf}b6~%M&dFUT;&a1j8Y%!kd!u;ZRARr0}bEyzrGw-(+>F~#`rtAZoQcFEOOh-8(7ZMj6IU|o>=|x2GR9Non(^l9yQ4`LflQQ zwa<1?boKQ=S9iZ4cI48`g0=>>ZfcqF2X2Ts^mlHREwIDqN^*Udo1}mL7)Tz93r{<1 zyW-SM-8Xn|-=M61RS0}e7HtcTy<>@d2uF>ZaU~sP{Rk0Pe9lPyP`t%ayiDeEN&T%a^PdQarkaZi}>E9Y5$|O zU>=;%ij61Ye45aW@RCU)zG}hbtYM%n{QL>%8>*m{4@*$Me*8NS)o%Gte%H+!yb7!KcnwNwqfW{JQP#W-&RSM&%-d+NSI0<+lDmU zn1H76L9ek`R(^4I^%LPrtP=j3O^P+Aykjjn+oFj@b;Y`QrD|#R)P`kbrb*3@Gm8x7 z63Ws)7F$wYOyE2`@ft>uRv4qXzC2ut6IdW?M-0(EbZqnHZW)-Q{_)y0PQicC$#uyV>W0G2qIBm?Q~YMHxj2xj;;i+pNEOhs40V8Qt@fakf(a0QcJCgIq8 zZ(^w>>$F~bXuxCA>jlAWMSEq&?r+GhU^Kd(>vy@Yt0kxPCJ(6SMBYuI^h!AQOcJl* za=tS5kSb}}JDrsRvNP#%Ln7are-W1^6aZ30^pS4?}l5;fE z&NsS`{W%!F&`^qd(2XWQ_)nY6r#He&_})J#4Z)8!*VlAdWcJQAY<)9&pU4)@>a3c_ z`PF5yv<$*^8w3$U039uUodUGNsqgAoRbI>=&HG8`CY8cTY3 z6-93bQ#_b^{!E3SDGG6tfqHvLxX_;Z}xsVZ!oTHb=gQa=G9WJqf5YmO+~hb z&N1Yx&0}bKk2p#4RFu1p;bNdEm484R&qY9Umi30AgxFj3^+^D7b05#It!4P7US-qH z-gAu8jfp34mzUH>A?I^HKSw_tgWP~_nWft$2>G@8$h~34TCLDn&g9MgrYe`^TJMU{ zSvS{@jdZ(}eCt6Mqu;B-Wa;$*o<}X5mTRVtexD6|IsSWa6|J)w`~xWO@w&eJWRRel zu732rY%sL}yn9{7oi16r=<=S*H&Z7E5#&OJ2Ibz|=9@0et{@w)z|)S4E^uvw%n2_ajoj(?*?y^RRdGrt#oAB%K2) zatn)q&`LShlOE~HgzpyvVq-|lA}^V^J5yyrLtgz7LO){aT+?v@;9h5dBc^g*iqykt zbiDe*$E0PEb@YJ6PC~O0oYtC;Tb2>d#@gXYISHIQn96-|Qp<@=A7jCCeb~5G(=H%^ zPlNUb+%~Op;gS0A==2w6D1-xVX)cVF$4H&#tc;q@QYnUMKAslf34!$e$}5_V-^5Y3 zOc@rSxcMig-(w{J!IR(G@O1Z8a*@{eeZ@%b9#xd{D(frVemG2Czi2f0{0M-eBqA2W zd3Kleh_lKu0x)4W7b2zK1F|doX#O_W|BH^NLjYsVQl@}0!&~H<%M%bW(39MPMKz8K2R@S;B*~*R(u=lNkg*gJ!{Aa8 zDXc^dPLKJ#p&98BAKvl?(#WCl^nXb{VxG^Qt%=qRaESeoP8a_Li=PSi4+ns5 zK`TWbBow&?8`PlpEOeKwR0<7X|Ee;a-`q_}6hv$1Xxq=)!n^q@e%$y_)&Ft25$*Bt z*Lsz>vPBJ6!?Gw9?2GifoSNY)J-y?sgg5GPvo42@PIX=Djzk!)ZFAQ-f4lYlFT=-h z1l|^&g`Ksb)6dI*S?kXqfG8s7nnR^gQ*+HYsp->!WM%j|B~{TE{G zx|>oAtzeJiJio4(;Y1GJK*Ny~P{4I|c%Oy2xuKC2)n_h~u_I67ncjgAgk!@;4L*@Y z`5qd!kO^Y!k1+3$$s7)onQOKvKILE+_4lnj5Bm&(t1>c>W7VT-TYeG8#v}yo2bA9X z`c_sJ_kaJsTv1%MCL)@&j>`Au7DtD>a3#KxTx#MzPukTSXA_F0P8;~l5;WML9i(q3C^ec z?JI|oExpnW9Gexaj1LR5`4K#I@p;@Lc9z@$KpO>7{6EITa?4<^O8!~GUd5S{x6^pi zv#Dyb&k|Iy73bt61XeClh~~>BRaKm_a5us-%lG!c;%XU|I1 zf0M7NKg~bDh}-wAu7XM7&8>$s+>-vs9bay~UkTsGnta2&OjkS4wsjAstm^V~O;uEuB<0Bk3C z*l%Lroos?fu9~UL{KQvV{BS0G#tlm+`(&x2|7NN~b=%Mn{wX3!e1G69=9}pL6buF) zOFxobp3S^OHNbJ@$ZQGd@<{;_IyjnPJ)&i?DHhIElx&NMj^4|fIro>R< zswFW6y2rnEr51v>e1n3i(D-+5$NxGq{_7v(jzb=P!yAVg(e|%hvB_b1gWw|z_5U8< z_ut@U#PZPLN#v1ajQ+JNGA0a(WJtee&Hr4NIinLq=L4azK=*$?>0K{^K_~6Kq`|dI>b?<{y9l&qnz0AarV}-ctGh zE>C|0QbyoG*COK2w1&yQb`6o1L`=#veNXrAvk(m(zW>m+6w28Cr)~E?8l`Bc;S@Ev zf8zYxvIT==p~HjR-_Al)Z2q>S|F4$dJnSSGdS>Fee_h=kXIdzz*ja@1=zrKI|7%hu zHK0m^iy!w{_Fr{Y=r5fWqQJQMcb#SaOJ`B#`Ttc`xU>G!*{poO zn4E4*a`P9@lAsi8iX~B~StgmN2$^o~&01U^;KsV%pA~>RM=Cs(G|*Xb;yyk_ZcP^-+|lZj#N#sNhV3!8*w;(rr(gC8e`w>a_y#c4LS#tPKboco?>P*L7) zcSkA>&1|UQ&J^>A@#$;{19>ouf!J7CPjp9k_6dN-L%FA6h1o3H?C7VGI)T8`tc8iH zlhlXD2M!*FrOTlNkE~T&ZZAwK5liSJ<33kMC=UiB4h~M**RS^9zI`Li%`jDpjwU1` zayq4OnAhDf9p~Wq`0=APG$wO?diro98=WQrE?y?ZMx~a^{{l_Gu}_x!XMOJLHSlD~ zCdXqxgjTBR#7(u6=%02zWX`{Ib4dzkwJSMf8^T2bzyz=nozFb3?5qs%Mwy(N?p)^{Bjp?1+TJ#5D~cLcR902J_3Oz! zzpxZlWcV8XUitzBWoSi7sjJ6x!V9Pa_RSLE;i=7l`tEsl-01Sn*cnBZ<=nIEY_nps zLbsVzYKFvLP}(WB0#xi9?lX>lCZ6)>k?qkmJl22%PuP~_Z4#P_mD8903JTf?e6m=n z4Iqp2=-j7raII1^%FlJ1VC=V@U08{|YTWSk2P9Z|TekF$qD1K&^vpW^^QlM-3;X3= z#G9Yr@qiTjY!c)_}F27@rMpdW7*PA67ur5E&BK=1cH8reGP>`5p)tmPpSYXdT!Y1P+ z4_7)5W0K2Op(AS-;&?K%u#5m$ctt!LWWBYfes-Yt9ZVRtFA{Zu)jgjUdHg`(`#AFD zyHg@!Ij^l4Kx$wycINqXJ-oy|8-Br6$;iDBjrX~EKPCS>kzsQ_$4PrTNmexvC>JEg z80loMV*xl&*YLW#7&jJd3MF!o?1AWVHgIsv!BjYnrJ+WGaaWPLr~)PWOs>3NJM{cA zsql=?!#nowOcN3({m zH1tHg%Mx14o=uorb(1GrX|vts^{h@xPBv4#^@zM&(D}tpI3*eRg7@U}PBUnYTdlA9 z@brxWl>~-GxW|LaCt|qX3!;_1(gS9{CoW*EzIQ)5X&*VY&+Sf%y1t&C9y61gh6}ho zKY(bp#O#NOc<oJcZfDPvL8qC7uk>jkhQHos$LFjp79 z2s>SE?PncjWoP6Z^rf?08E;-UZ{7%OXL`pZXbk)ng>##n7`WPX>-2i`t_?nH#Jr1$ zl|WahL$|~)Aq?essaYt22Ww$B@}c&3Zto*b&9;ZRxjA>5Ham{7hD+^*P|G@NZ@k&& za6934U9>c2`ks)I>bqT4@aTQ@)u8v`*J%_n?En=j(ZJawo|i4|4bIYWVhI!!F@g7_ z#||3Qfal+T2(SFn#WJMV)x`(7o%+!p@hR|5w}onhiIflmSf$RWu-FK9KK2e2m>00~ z^K?j%OIUp*8H|bF%8KvzLS7kanuaUK-)1-T-&tOYRuZ8Wz%D&?Ud8+?h4CbNG+SDLavk@ zc_k8^?DN7J_hjJxRc`BM)^p(ppo)DQ6hXAK=(6o_2hN{wH1I-x(iSViue^txuQ)*| zST#4t3o94fLwWCmGroS&B1D$)S>rTnTP&R}yx<$HtAA{B&biS72W~C8K-tCRm3r;V zu5PYVY1V!F8mjTH^ZBYBFBQV|4i627^LY2HxHQ++2A=234o+RQivo_TQ}2^jyl=k| zRYdl!q2MKz`pv5xhl*QEx@@i{#rd&(39L5ho`{K!nXL0>B0|l2>A`({dyuoU6Uxy8+Qh1Tgj-kaQHQxJgnX4&or`0 zgkq(ZOd;kye7@AiZ+AMCFEf$VXNB7FXNK>j7Yh*e#D%?C&xzbX#HDY~q?T0!*>H)( zAmPP_eUW`!a{}5;ieJUC#W4?4#z9IZv&=%VfBwYl2p*-r7I)vwt2C_bTi1PxSO|!i z3GX!bnZR1zz5iG$yG2})SlXO!>_6T0czFmtJBTTIaM(l;w}4=I}|AH z(q88XER9}yL)-CPpu*sM$d%pmY;_=&9m=Pu$=O`1wLsF@%kBe+2Gw@>-mtE;d7z1L zs?{PoIXMJWdK@keocV3SoKq?A1Kt|@_;hWYuWSG#F^GkF2oNOhCSP3>%Uc&FKF#du z?01`&f2JU@xtoFKcM zTLUd;P#&%zNe;hw`04OW)de~Wet`Gh?0OxG0EbfMZ_tOYTj8)$^Dmc*tmGP4)g&nS zkB^S6125qA4JpOIJ^~Z_!Ei!Wj)+836b4D4`uzCS0YOiaj>PjtB2A0LTxrymh>NB# zyynI2uv4H#3ZrV>A)oc##)*LfGT3G!%OaDTu}#|Nc1k8!p4P)N8zO-S;iSCh{z%&% zAcHo7_Kszbq7~BRw|Swtjrt~mjrECncpn&0|F{$>afy=&$sw!c`wC3%Sity@1ShPe z1n#@yT093rn7{h93NeljSu9i;o#v|pNlz1cg`{x3m?h0OzwtWvNHTx@@d${HkFJ+6 z>)<|ol)(aoZR9)a+PnE1hE(cyZK-6s0GjThXw!yADr6_Oa1Q;N9)N&jhF9mB&jJPb zN9nCkR=rIk;AU34O31RF#5Wc-5sAuwY8}oBWkr!e);m||hr}DMyn8UR-*vKrz4`>@ z5i>g}YATeDvcSvNu8*-ymdKO+<%?r%KD-67*g8_eH!R@EHuSQn>#aMtnWZRdq-*QM zu8Yht{m}^zpe%$W{tDjLRL9VlLollByci_Q@j^zbEo1#>KbNx{iXyCw+{I5<99sZ< zDRF+|(>CxWHj?TH9ft4q$4qG2x{-)iqf8`Lo3sDS&dBYJQy^R`sjuHK4P$Lp_*4@n z$eWh>ZOI3b;urMStKjyt2qf8vfWzGGgS4X#HC$JK{~0K9jV>Q?A54nAu8o2f^!>X& zve7oRth^9=*yrzJ9(5j}UP@Ad!Icrk9m;!|X2p2{Z`t=Ykj$KrbkB5XRj>;mG&Yrs zVU@dI;7*iZFS(kK`nEU>np$vsC6FH@pDB3lGmIq85g~1+QS^jFQ8M7M?`@uw4U<3+ z8d!t5Zs_HjDfV*`>y?O`wTXqvDms``U~aQpkuB=!BhJ2pBCdI5J6qxv`aUB!aV);rY|q{%o(@Yk||46|8_Sk@&sheKJs)F zlmFS7aEUUo$<8Z!99EEktuCIpy#c;@jfsBS=hzD<@xlULAuXOR+f~W6x3xwhvNr0+ z-474j`dLgLHwi-C=teH9$o*0DmMH#FIF4LDAaK>?E}5x-PBmXNo++3=4o)zO67-e% z@NwR^Do12hhROzGJIQQa#PcjHi^ZfaGryudk~hpBn;9)&OE-iGai35`Zt}M+g-SHT0QEbs zKf^P(tO8A``uI+T@XipWjUv7rtrn-CX>BL>Z(4wz4^pxn=H9=R6oST=kO@@OBcKs3 zUlxy1lZ&I61t?}1ph#VMEEqX07<$E{rL%-l@_RO{MLElV;Md5K3^KqnJIpa^Px^h& z0uj)yf#&W>#z<4lrOwSan=}EyAfz?Fyy-XqI#YO^On#A)JaR>+AEXyGfG@1_adL;M zxAr~i^~h+1)iVWWDW+)W1;Yw2VNB%js&Agx2Rz7j&5v09COl902zL$kHjWXAflqkY z@DSJHHw17250)$auh%|0fncaLlsG=JbgD96Wn_a;a@C2+%6ITVQaz_L5f_FDIGJV#%Z zK;0gRf>?2N5Mc(X@^t8Y!FAz+qW8l5j}HCc3?gh7?-r-k`!&0Xxr37iqz}a5K(&iq zu`J2hzL2B2u~fW3O5!>RHk}^jZ3k3@Ju>XiaiH(C1=0(}3ewGIYpZaeDUeK)>+U;m zs<7+3xkhLSBohg5@#~AOI$zY6vb&>rXIuW3W@EI$*-Wr>9&Bt(+T(dQ)xFZ59)AJ@ zUBcv=sAmt~7D49gWo!nT0U5&U`}s~t=Xto+Ij4@iCTLoV#%cXAWhhYwlzeO~{^0|G z=gEPlL8GgWVstp3o(Zr)7|kMb!5Tz-vd}E?kbLTJD>%J3;KY6_AUGnmMJ4cvl-&Up z+|4rgdbaga?EEib#yBCbTve*1x;i_6HewIp;>6j`; z42oW*xu367xWQT=S1*Z2C@D|oMQX~tUSv`-qA%^C@^*}4`}IfghYd^P6>i?wI~)s$ z241$X`F?NI2gdxTDE~j-Jp?q=SV?RlA5vo^kLe}L9Z=`6BvEiVPkxxw)6w^kSG9>Dye1fIU#0 zd_4K7Qdt>up2qjS4XS5wBw~sHk z_i}g4C{GlxRWf5gAFYEUWR>|DXa3V|mfo<^g=qKfsn@D?eVZ%lgkvU z=S4St`hK)6LS`}IWmbZb>81UL1LPfpmZ6v16F1YYjg*PROriCwv?;uZ)pSlH^VgeD zD(aJ&KrAJGn_I)jhvu$bl<{L6t*9Z@Y>~NCUX_IPjur^~SB7h9Z&I@_rO;xT2`K^C zzZ1y;^XJM*D%r*`R>)X4zfE%GTT1o;pvR(V`+ z{d-ce1V-wOp&#*N*%TX@+-3z#{3ToApixvbHM*>2X|L3gi8DJdS_OpghpMOOxR4pE z(12HoE;O$E$`{H`s;;&1WpPL2?eI z76_F1d+EvP9RTyCV`F~N+E+<6DE)T?M!rA2nAcO-g`$5hw5(u)9b>skgEPz?saW}h z_F`g=hR~YZ`EwP$#Vg66{n(zv?elry(A5RFQ(P}#mF$R=S)A4xbFzIK&TCOyUEFNN z%f8t|V?I?1g%D$aC{>LF47(-l=jPV2R+zlOC?Y~=fpsrFMVSyyy1Jb_tdkPt?EQp! zxR{@EbGkCA7nTt1yo;5pbvEFh1I^_9X9r`8A$-xBRzvy^iO3B&u=p*61gUQiF%T}$ zU1XGOIKrl?yBuhoZ2E~zk17BZ;pWmRl>F4pS zs*!)Co10^xRAa&p`tul?t6jR5udRTrK9)R|w@4Wd8!|HWt(=-P?ZFEBtUd4h%&av7 zYzQcYNqrF*`095%|Am3`sVW#d>z*GGi!vnapmUWh57Xg14lG$VoajQTl$l9%n~j>j z@pPnfJ51M&qU7m
    Ih{elqIVAcTUsV$DyCttdhJV&fON8Hl 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 z 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 literal 0 HcmV?d00001 diff --git a/website/src/assets/0.6.0/pr-approval.png b/website/src/assets/0.6.0/pr-approval.png new file mode 100644 index 0000000000000000000000000000000000000000..1767740c3f58da2d54c19b9bb4e7f80c622642a0 GIT binary patch literal 83787 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 N1(R2k%a$?m`5(u42hacj literal 0 HcmV?d00001 diff --git a/website/src/assets/0.6.1/icon.png b/website/src/assets/0.6.1/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e523b0749cfd782669a484f4cc60dfc368617c77 GIT binary patch literal 34512 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

      Ih{elqIVAcTUsV$DyCttdhJV&fON8Hl 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 z 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 literal 0 HcmV?d00001 diff --git a/website/src/assets/0.6.1/pr-approval.png b/website/src/assets/0.6.1/pr-approval.png new file mode 100644 index 0000000000000000000000000000000000000000..1767740c3f58da2d54c19b9bb4e7f80c622642a0 GIT binary patch literal 83787 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 N1(R2k%a$?m`5(u42hacj literal 0 HcmV?d00001 diff --git a/website/src/content/docs/0.6.0/architecture.md b/website/src/content/docs/0.6.0/architecture.md new file mode 100644 index 00000000..ab34707c --- /dev/null +++ b/website/src/content/docs/0.6.0/architecture.md @@ -0,0 +1,296 @@ +--- +slug: 0.6.0/architecture +title: Architecture +description: One-page overview of how the bot is structured and how a review flows through it. +--- + + + + +One-page overview of how the bot is structured and how a review flows through it. + +ThrillhouseBot is a Quarkus application that runs as a GitHub App. A webhook +arrives when a pull request changes, the bot builds a review with an +OpenAI-compatible model, and it posts the result back as a PR review plus a +check run. A dashboard streams what is happening live. + +## Components + +```mermaid +flowchart TB + subgraph GH[GitHub.com] + IN[PR push, /review, @mention] + OUT[PR reviews · check runs · comments] + end + + subgraph BOT[ThrillhouseBot · Quarkus] + WH[webhook/
      WebhookController] + RO[review/
      ReviewOrchestrator] + AI[review/ai/
      AiReviewService] + GHC[github/
      REST clients] + DB[dashboard/ + frontend/] + + WH --> RO --> AI + RO --> GHC + AI -.->|live tokens / review.batch| DB + end + + IN -->|POST /api/webhook
      HMAC-verified| WH + GHC --> OUT +``` + +The `github/` clients wrap the GitHub REST surface the bot uses: installation +tokens, pull diffs and prior reviews, check runs, PR reviews with inline +comments, issue comments, and the instructions-file fallback chain +(`.github/thrillhousebot.md`, `.github/copilot-instructions.md`, `CLAUDE.md`, +`AGENTS.md`, `AGENT.md`). + +## Request flow + +```mermaid +flowchart TD + GH[GitHub: PR opened / synced / comment] -->|webhook| WH[webhook/] + WH -->|verify HMAC, filters, rate limit, 👀 ack| RO[review/ ReviewOrchestrator] + RO -->|fetch diff, instructions, prior findings| GHC[github/ API clients] + RO -->|budget plan · stream or batch| AI[review/ai/ LangChain4j] + AI -->|parse findings| RO + RO -->|verify findings — 2nd AI call per batch, on by default| AI + RO -->|post review + check run| GHC --> GH + AI -.->|live tokens or review.batch| DB[dashboard/ broadcaster] + DB -->|WebSocket| FE[frontend/ Next.js UI] + RO -->|persist session, cost, tokens| PG[(H2 / PostgreSQL)] + AI -->|traces, token & cost metrics| OT[(OpenTelemetry)] +``` + +Automatic triggers (`pull_request` opened / synchronize, and similar) are subject +to `AUTO_REVIEW_MIN_INTERVAL`: if the same PR was auto-reviewed too recently, +the webhook path skips the review silently. Manual `/review` always bypasses that +window. Slash and mention **commands** get a best-effort 👀 reaction before +pause/authorization; conversational `@thrillhousebot` mentions (no command word) +are answered without a reaction. + +## Review lifecycle + +### First review (PR opened) + +```mermaid +sequenceDiagram + actor Dev + participant GH as GitHub + participant TB as ThrillhouseBot + participant AI as AI Provider + + Dev->>GH: git push (PR opened) + GH->>TB: POST /api/webhook (pull_request: opened) + + Note over TB: Verify HMAC → JWT → install token + Note over TB: Auto-review rate limit (skip if within AUTO_REVIEW_MIN_INTERVAL) + + TB->>GH: POST check-runs → status: queued + TB->>GH: PATCH check-run → status: in_progress + + par Fetch context + TB->>GH: GET /pulls/{pr}/files (diff) + TB->>GH: GET /compare/{base}...{head} (regression context) + end + + TB->>GH: GET /pulls/{pr}/reviews (check if already reviewed this SHA) + GH-->>TB: no prior reviews → first run + + Note over TB: DiffBudgetPlanner — single-call or token-budgeted batches + + alt Diff fits one call + TB->>AI: POST chat (diff + base comparison + review prompt) — live tokens to dashboard + AI-->>TB: findings + risk levels + suggestions + opt Findings found and REVIEW_VERIFIER_ENABLED (default) + TB->>AI: POST chat (re-check each finding against the diff) + AI-->>TB: confirmed / downgraded / dropped findings + end + else Large diff — multi-call + loop Each batch in parallel (up to REVIEW_MAX_AI_CALLS − 1) + TB-->>TB: review.batch progress (no per-token stream) + TB->>AI: POST chat (batch diff) + AI-->>TB: batch findings + opt Findings and verifier on + TB->>AI: POST chat (verify batch findings) + end + end + TB->>AI: POST chat (summary rollup of aggregated findings) + AI-->>TB: PR-level summary + previous-findings status + Note over TB: Any files that still won't fit are disclosed by name + end + + alt AI fails + TB->>GH: PATCH check-run → conclusion: failure + TB->>GH: POST comment: retry hint (no internal details) + else AI succeeds + issues found + TB->>GH: POST PR review (REQUEST_CHANGES or COMMENT) with inline suggestions + TB->>GH: PATCH check-run → conclusion: failure (critical/high) or neutral + TB->>GH: POST comment: PR summary (risk table + key findings) + else AI succeeds + zero issues + TB->>GH: POST PR review → APPROVE (no body) + TB->>GH: PATCH check-run → conclusion: success + TB->>GH: POST comment: PR summary (celebration inside) + end +``` + +### Follow-up review (new push) + +```mermaid +sequenceDiagram + actor Dev + participant GH as GitHub + participant TB as ThrillhouseBot + participant AI as AI Provider + + Dev->>GH: git push (PR synchronize) + GH->>TB: POST /api/webhook (pull_request: synchronize) + + Note over TB: Verify → auth → rate limit → create check run (in_progress) + + par Fetch context + TB->>GH: GET /pulls/{pr}/files (diff) + TB->>GH: GET /compare/{base}...{head} + and Fetch prior review + TB->>GH: GET /pulls/{pr}/reviews (find ThrillhouseBot's last review) + GH-->>TB: previous findings + thread status + end + + Note over TB: Prompt includes diff + prior findings + "check if each was addressed" + Note over TB: Same single-call or map-reduce path as first review + + TB->>AI: POST chat (one or more review calls ± verifier ± summary) + AI-->>TB: resolved / unresolved / new findings + + alt AI fails + Note over TB: Same sanitized error path as first review + else AI succeeds + TB->>GH: POST PR review (suggestions for unresolved + new issues) + TB->>GH: PATCH check-run → conclusion based on risk + Note over TB: No summary comment on follow-up (only on first run) + end +``` + +### Manual trigger (`/review` or `@Thrillhousebot review`) + +```mermaid +sequenceDiagram + actor Dev + participant GH as GitHub + participant TB as ThrillhouseBot + + Dev->>GH: Comments "/review" + GH->>TB: POST /api/webhook (issue_comment: created) + + Note over TB: Verify → parse trigger → 👀 ack (bounded wait) → auth + Note over TB: Manual /review bypasses AUTO_REVIEW_MIN_INTERVAL + Note over TB: Fetch diff, compare, and prior reviews + Note over TB: Full re-review even if this SHA was already reviewed +``` + +### Conversational reply (`@thrillhousebot` mention) + +```mermaid +sequenceDiagram + actor Dev + participant GH as GitHub + participant TB as ThrillhouseBot + + Dev->>GH: Mentions @thrillhousebot (in a PR thread or finding reply) + GH->>TB: POST /api/webhook (pull_request_review_comment or issue_comment: created) + + Note over TB: Bot-loop guard → mention detected (no command) → ACK 200 + Note over TB: No 👀 reaction — conversational mentions are answered, not reacted to + Note over TB: Async on review executor: authorize (write access) + Note over TB: Build threaded prompt (finding + diff hunk + thread) + TB->>GH: POST reply in the review thread (or a PR comment) +``` + +## Packages + +| Package | Responsibility | Notable classes | +|---|---|---| +| `webhook/` | Receives GitHub events, verifies the HMAC signature, decides whether an event triggers a review (trigger filters, per-PR pause state, auto-review rate limit), acks slash/mention commands with 👀, runs the comment commands (`/help`, `/summary`, `/describe`, `/changelog`, `/add-docs`, `/improve`, `/generate-tests`, `/resolve`, `/pause`, `/resume`), and schedules finding-feedback capture on review-thread replies | `WebhookController`, `WebhookVerifier`, `TriggerDetector`, `ReviewTriggerFilter`, `AckReactionService`, `CommentCommandService`, `PrPauseService` | +| `review/` | Orchestrates a review: plans the token budget and the per-review spend ceiling, calls the AI layer (single-call or map-reduce), maps findings to a risk level and review state, re-checks a maintainer's decline against the reviewed code, writes the summary comment, optionally labels the PR, answers maintainer replies/mentions in PR threads, and persists maintainer finding feedback (👍/👎 / reply heuristics) for a future learnings pipeline | `ReviewOrchestrator`, `ReviewDispatcher`, `DiffBudgetPlanner`, `FindingPipeline`, `AutoReviewRateLimiter`, `ReviewDiffFormatter`, `FollowUpAnalyzer`, `FindingFeedbackCaptureService`, `FindingFeedbackService`, `PrSummaryGenerator`, `PrLabeler`, `MaintainerReplyService`, `MaintainerReplyDispatcher`, `PrImprovementService`, `PatchCoverage`, `ConfigKeyContextResolver`, `RebuttalContradiction`, `SummarySurfaceDeduplicator`, `VerdictBuilder` | +| `review/ai/` | The LangChain4j layer: streams or batches model responses, parses findings, runs a second pass to verify them, applies generation/reasoning customizers, and writes conversational replies | `PrReviewer`, `AiReviewService`, `ChatModelCustomizers`, `FindingVerifier`, `FindingVerificationService`, `ReviewResponseParser`, `ReplyAssistant`, `TruncatedResponseSalvager`, `FindingVerifierPrompts` | +| `github/` | Talks to the GitHub REST and GraphQL APIs: app auth, pull requests, reviews, check runs, comments, labels, reactions (create + list), and reading the repo instructions file | `GitHubAuthClient`, `GitHubReviewClient`, `GitHubCheckRunClient`, `GitHubLabelClient`, `GitHubReactionClient`, `InstructionsResolver`, `GitHubWriteRetry` | +| `dashboard/` | The live UI backend: OAuth login (in-memory sessions), WebSocket broadcaster (`review.stream` / `review.batch`), review session persistence, and finding-feedback aggregates | `AuthResource`, `DashboardSessionStore`, `SessionEventBroadcaster`, `ReviewSessionRepository`, `DashboardResource` | +| `config/` | Wiring: the outbound HTTP client, the review thread pool, typed config, active-model settings (caps, generation params), fail-fast startup validation, and the shared bot-identity used to recognize the bot's own activity | `HttpClientProducer`, `ReviewExecutorProducer`, `ThrillhouseConfig`, `ActiveModelSettings`, `StartupConfigValidator`, `BotIdentity` | +| `frontend/` | The Next.js dashboard, built to a static export and served by Quarkus | — | + +## Notes + +PR reviews carry inline comments and suggestions; check runs carry pass/fail +status for branch protection (no inline annotations on the check run itself). + +**AI call budget** — a review that reports findings makes **two** model calls +by default: the review call plus a skeptical verification pass +(`FindingVerifier`) that re-sends the diff and each candidate finding, dropping +or downgrading what it can't confirm. It fails open — a verifier error keeps +the original findings, so a broken verifier can never block a review. Under +token-aware budgeting on large PRs this becomes N batch review calls + N +per-batch verification calls + one summary call. `REVIEW_VERIFIER_ENABLED=false` +skips only the AI pass (a deterministic hedging-language guard still runs) and +trades cost for more false positives. Expect two model spans per flagged +single-call review (or N+N+1 under budgeting) in the traces and in the +dashboard's session totals. Multi-call reviews do not stream tokens to the +dashboard; they emit `review.batch` progress events instead. Batches run +concurrently on virtual threads; a failed batch is retried once after the +parallel pass completes. + +**Cost ceiling** — `REVIEW_MAX_TOKENS_PER_REVIEW` bounds the tokens one review may +spend across every call it makes, counting retries, the verifier and the summary. +Once reached, remaining batches are disclosed as not reviewed by name and the +summary degrades to counts rather than making further calls. `0`, the default, +leaves it unbounded. The summary, the verifier and maintainer replies run on a +separate `concise` model binding with its own response cap +(`REVIEW_CONCISE_MAX_OUTPUT_TOKENS`) and its own reasoning effort, so they never +share a cap sized for batch review output. + +**Coverage honesty** — a file the review never read does not pass silently. A +file GitHub reported with changes but no patch text, a file that did not fit any +batch, and a file whose batch call failed are each disclosed by name and withhold +APPROVE. A response the model cut at its length cap keeps the findings that +completed before the cut rather than being discarded whole. + +**Patch coverage as review context** — when a PR's CI publishes a coverage +report, `PatchCoverage` reads the changed lines it does not cover and gives them +to the review, so new code with no test behind it can be named as such. Off +unless `REVIEW_PATCH_COVERAGE_ENABLED` is set. + +**Repository-supplied configuration** — `.github/thrillhousebot.yml` carries a +repository's own ignore globs and path-scoped review instructions, read from the +default branch and cached for five minutes. Ignore globs are additive to the +deployment list; a repository can narrow its own review scope but cannot restore +a file the deployment excludes. Every failure mode (missing file, invalid YAML, +unexpected shape, uncompilable glob) is logged and skipped, leaving the +deployment configuration in force. + +**Write pacing** — content-creating GitHub calls are spaced process-wide by +`GITHUB_WRITE_MIN_INTERVAL` so a burst of comments never reaches the secondary +rate limit in the first place, with `GITHUB_WRITE_MAX_WAIT` capping how long any +one caller waits. + +Each AI call is bounded by `AI_TIMEOUT` (LangChain4j) and +`thrillhousebot.review.ai-timeout-seconds`. Cost and token metrics come from +OpenTelemetry. OAuth login sessions are opaque IDs in cookies with tokens kept +server-side; review history persists in the database. Maintainer finding +feedback (reactions and reply heuristics) is documented in +[Finding feedback](https://devops-thiago.github.io/ThrillhouseBot/feedback/) +(source: [docs/FEEDBACK.md](https://github.com/devops-thiago/ThrillhouseBot/blob/main/docs/FEEDBACK.md)). See +[SECURITY.md](https://github.com/devops-thiago/ThrillhouseBot/blob/main/SECURITY.md) +for the reporting process. + +## Adding an AI provider + +There is no provider-specific code. The model is reached through LangChain4j's +OpenAI-compatible client, so a new provider is configuration: point `AI_BASE_URL` +and `AI_MODEL` at it. Add a `thrillhousebot.ai.pricing..*` pair for cost +tracking (without it the bot warns once and flags sessions as "no pricing" +instead of `$0`). Optionally set `thrillhousebot.ai.models..*` for the +model's input cap and generation parameters, and `AI_REASONING_ENABLED` / +`AI_REASONING_EFFORT` when the model supports reasoning. See the +[provider table](https://devops-thiago.github.io/ThrillhouseBot/providers/) and +the [configuration reference](https://devops-thiago.github.io/ThrillhouseBot/configuration/). + + diff --git a/website/src/content/docs/0.6.0/commands.md b/website/src/content/docs/0.6.0/commands.md new file mode 100644 index 00000000..37e659fb --- /dev/null +++ b/website/src/content/docs/0.6.0/commands.md @@ -0,0 +1,96 @@ +--- +slug: 0.6.0/commands +title: Commands +description: Drive the bot directly from a PR with comment commands. +--- + + + +Drive the bot directly from a PR by commenting one of these. Each also accepts the +mention form, e.g. `@Thrillhousebot review`. The bot acknowledges every command +instantly with a 👀 reaction on your comment while the work runs in the background; +a conversational `@thrillhousebot` mention (no command word) gets an answer instead, +not a reaction. + +| Command | What it does | Access | +|---|---|---| +| `/help` | List the available commands | anyone | +| `/review` | Run (or re-run) a full review of the PR | write | +| `/summary` | Post the PR summary if it isn't already on the PR — regenerates it if the comment was deleted, otherwise no-op | write | +| `/describe` | Suggest an improved PR title and description generated from the diff, as a comment to copy in (never overwrites the PR) | write | +| `/changelog` | Draft a CHANGELOG entry for the PR from the diff (Added/Changed/Fixed/Security…), as a comment to copy into `CHANGELOG.md` (never commits) | write | +| `/add-docs` | Generate docstrings/inline docs for the symbols changed in the PR, posted as committable suggestions (or a note with the drafted docs when a multi-line declaration can't be pinned to a single diff hunk) | write | +| `/improve` | Run a whole-PR improvement pass over the diff and post the improvements as committable suggestions (with copy-paste blocks for the ones that can't be pinned to the diff) | write | +| `/generate-tests` | Propose unit tests for the code the PR changed, as a comment with one ready-to-paste code block per test file (never commits) | write | +| `/resolve` | Resolve ThrillhouseBot's outstanding finding threads on the PR | write | +| `/pause` | Silence the bot on the PR | write | +| `/resume` | Re-enable the bot on a paused PR | write | +| `@thrillhousebot resolved :` | Close a previous finding that has no review thread to reply on, so it stops holding approval (see **Clearing a finding with no thread** under Configuration) | write | + +**Access** — every command except `/help` requires the commenter to hold write access to +the repository (or to be named in +`THRILLHOUSEBOT_REVIEW_MANUAL_TRIGGER_ALLOWED_LOGINS`), since reviews spend the operator's +AI budget. + +**`@thrillhousebot resolved`** — a directive, not a slash command: it has no `/resolved` +form, and it is read by the *next* review rather than acted on immediately. The bot replies +straight away to say what that review will evaluate — and, when the comment names no +`path:line` at all, to say plainly that nothing will be cleared, so a mistyped locator shows +up immediately instead of as a review that changes nothing. It is a statement, never a +question: `@thrillhousebot resolved?` is asking, not deciding, and clears nothing. Do not +confuse it with `/resolve`, which resolves GitHub review threads and does nothing to a +finding that never opened one. Its access check is the commenter's GitHub +`author_association` on that comment — `OWNER`, `MEMBER` or `COLLABORATOR` — and +`THRILLHOUSEBOT_REVIEW_MANUAL_TRIGGER_ALLOWED_LOGINS` does *not* extend it. + +**Pause** — while a PR is paused, ThrillhouseBot skips automatic reviews on new commits, +ignores `/review`, `/summary`, `/describe`, `/changelog`, `/add-docs`, `/improve` and +`/generate-tests`, and does not answer `@thrillhousebot` mentions (it replies once to say it is +paused). `/resume` lifts the pause. +`/help` and `/resolve` keep working while paused. + +**`/describe` and `/changelog`** — both read the whole change set rather than the first +`REVIEW_MAX_DIFF_LINES` of it. The changed files are packed into batches that each fit +`REVIEW_MAX_INPUT_TOKENS`, one model call per batch, and the per-batch results are then reduced +to a single answer: `/describe` composes the partial descriptions into one coherent title and +description, `/changelog` merges the candidate entries into one entry. That reduce step costs one +extra model call, reserved out of `REVIEW_MAX_AI_CALLS` and spent only when the PR actually needed +more than one batch, so a run never exceeds the same ceiling as one review. Any file the budget +could not cover is named in a partial-coverage note under the suggestion. + +**`/add-docs`** — on demand, the bot reads the diff and proposes documentation comments for +the public symbols changed in the PR, honoring the repository instructions and each file's +language. Each suggestion is a committable `suggestion` block placed on the symbol's +declaration (spanning the whole signature when it wraps), so it only inserts docs without +rewriting code. When a multi-line declaration can't be pinned to a single diff hunk, the bot +posts a note with the drafted docs to add manually instead of a committable suggestion. It +spends AI budget per run; operators can turn it off with `REVIEW_ADD_DOCS_ENABLED=false`. + +**`/improve`** — on demand, the bot runs an improvement pass over the whole PR and proposes +concrete changes the author can commit: clearer naming, dead or duplicated code, simpler +control flow, missing error handling, avoidable work in loops, and gaps in the tests covering +the change. It is deliberately separate from `/review`: `/review` looks for defects, +`/improve` proposes better code even when nothing is broken. Like a review, the pass is +token-budgeted rather than line-capped: the changed files are packed into batches that each fit +`REVIEW_MAX_INPUT_TOKENS`, one model call per batch, so a long diff only loses coverage once it +exceeds the whole budget. Each improvement whose quoted code anchors onto the diff is posted as +an inline committable `suggestion` block on the lines it replaces; the rest are listed as +copy-paste blocks in the run's summary comment, together with a partial-coverage note naming +any file the budget could not cover. Nothing is ever committed for you. It spends AI budget per +run — at most `REVIEW_MAX_AI_CALLS` model calls, the same ceiling as one review — and operators +can turn it off with `REVIEW_IMPROVE_ENABLED=false`. + +**`/generate-tests`** — on demand, the bot reads the diff and proposes unit tests for the +behavior the PR added or changed, in the test framework the project already uses. A proposed +test is usually a whole new file, which has no diff line for GitHub to anchor a committable +`suggestion` block to, so each one is posted as a code block headed by the path it belongs at +— ready to paste into a new file, or to merge into an existing test file. Nothing is committed +and no file is edited. Like a review, the pass is token-budgeted rather than line-capped: the +changed files are packed into batches that each fit `REVIEW_MAX_INPUT_TOKENS`, one model call +per batch, and the per-batch proposals are unioned by path — so "nothing here warrants a test" +is never a verdict on code that was too far down a long diff to be read. Any file the budget +could not cover is named in a partial-coverage note. It spends AI budget per run — at most +`REVIEW_MAX_AI_CALLS` model calls, the same ceiling as one review — and operators can turn it +off with `REVIEW_GENERATE_TESTS_ENABLED=false`. + + diff --git a/website/src/content/docs/0.6.0/comparison.md b/website/src/content/docs/0.6.0/comparison.md new file mode 100644 index 00000000..7624761d --- /dev/null +++ b/website/src/content/docs/0.6.0/comparison.md @@ -0,0 +1,89 @@ +--- +slug: 0.6.0/comparison +title: How it compares +description: An honest look at where ThrillhouseBot sits next to other AI code-review tools. +--- + + + + +A quick, honest look at where ThrillhouseBot sits next to other AI code-review +tools. Facts verified June 2026 from the sources linked below; vendor +capabilities change, so check the source if a detail matters to you. + +The table covers ThrillhouseBot, [CodeRabbit][cr], the open-source +[PR-Agent][pra], [GitHub Copilot code review][cop], the [PRSense][prs] CLI, and +[Kit][kit] (cased-kit). PR-Agent's commercial hosted sibling, Qodo Merge, is +left out because its self-hosting and model details sit behind enterprise sales +and could not be verified from public docs. PRSense and Kit are included because +they overlap on self-hosting and bring-your-own-model workflows; they differ in +how reviews are triggered and how cost visibility is surfaced. + +| | ThrillhouseBot | CodeRabbit | PR-Agent | Copilot review | PRSense | Kit | +|---|---|---|---|---|---|---| +| License | Apache-2.0 | Proprietary | Apache-2.0 [^pra-lic] | Proprietary | Apache-2.0 [^prs-lic] | MIT [^kit-lic] | +| Self-host | Yes | Enterprise only, 500+ seats [^cr-sh] | Yes | Models no; self-hosted runners yes [^cop-run] | Yes (CLI) [^prs] | Yes (CLI / Actions) [^kit] | +| Bring your own model | Any OpenAI-compatible endpoint | Yes: OpenAI, Azure OpenAI, Bedrock, Anthropic [^cr-llm] | Yes, via OpenAI-compatible / LiteLLM | No, GitHub-managed | Yes [^prs] | Yes [^kit] | +| Local models (Ollama) | Yes | No [^cr-llm] | Yes, with config caveats | No | Yes [^prs] | Yes [^kit] | +| Cost / token dashboard | Built-in web UI | No | No | GitHub billing only | Token counts in CLI only [^prs] | Per-review cost in CLI [^kit] | +| Footprint | ~50 MB native binary | SaaS or self-hosted container | Python app / container | SaaS plus Actions minutes [^cop-bill] | Node.js CLI [^prs] | Python app [^kit] | +| Cost model | Free; you pay your own API usage | Freemium | Free | Paid [^cop-bill] | Free; you pay your own API usage | Free; you pay your own API usage | + +## Where ThrillhouseBot fits + +Among the tools in the table above, ThrillhouseBot is the only one that combines +a GitHub App (webhook-driven reviews with inline PR comments), a built-in web +dashboard for cost and token analytics, token-budgeted map-reduce reviews for +large PRs, and a small native footprint, all under an OSI-approved license. If you want reviews to run on your own infrastructure +against a local Ollama model so that no code leaves your network, and you want +ongoing cost visibility in a dashboard rather than per-run CLI output, that is +the niche it targets. + +CodeRabbit and Copilot are more polished hosted products with broader reach. +ThrillhouseBot reviews GitHub pull requests only, with no GitLab or Bitbucket +support, and there is no managed hosting option: you run it yourself. + +PR-Agent, PRSense, and Kit are the closest in spirit for self-hosting with your +own model. PR-Agent is the most established open-source GitHub review bot in this +set. PRSense emphasizes grounded findings tied to the diff and ships as a CLI. +Kit adds rich repository context, local diff review, and per-run cost output in +the terminal or CI logs. None of those three ship a GitHub App plus web +dashboard in one package the way ThrillhouseBot does. + +Pick CodeRabbit or Copilot if you want a hosted product and don't need to bring +your own model. Pick PR-Agent, PRSense, or Kit if you prefer CLI or workflow +integration. Pick ThrillhouseBot if you want a GitHub App with automatic reviews, +a live dashboard, and a small native binary. + +[cr]: https://www.coderabbit.ai/ +[pra]: https://github.com/qodo-ai/pr-agent +[cop]: https://docs.github.com/en/copilot/concepts/agents/code-review +[prs]: https://prsense.org/ +[kit]: https://kit.cased.com/pr-reviewer/ + +[^pra-lic]: PR-Agent was moved to a community-owned GitHub organization and + relicensed under Apache-2.0 in April 2026. +[^cr-sh]: CodeRabbit docs: "The self-hosted option is only available for + CodeRabbit Enterprise customers with 500 user seats or more." + <https://docs.coderabbit.ai/self-hosted/github> +[^cr-llm]: Self-hosted CodeRabbit requires your own LLM credentials for OpenAI, + Azure OpenAI, AWS Bedrock, or Anthropic; its docs do not list local models + or Ollama. <https://docs.coderabbit.ai/self-hosted/github> +[^cop-run]: Copilot code review uses GitHub-managed models; you cannot supply + your own. It can run on self-hosted or larger GitHub-hosted runners. + <https://docs.github.com/en/copilot/concepts/agents/code-review> +[^cop-bill]: From June 1, 2026, Copilot code review is billed as AI credits for + token use plus GitHub Actions minutes for the review infrastructure. + <https://github.blog/changelog/2026-04-27-github-copilot-code-review-will-start-consuming-github-actions-minutes-on-june-1-2026/> +[^prs]: PRSense ships as the `@prsense/cli` npm package (Apache-2.0). Reviews + run locally or in CI; output includes token counts but there is no web + dashboard. Supports Ollama and cloud providers. + <https://prsense.org/> · <https://www.npmjs.com/package/@prsense/cli> +[^prs-lic]: `@prsense/cli` is published under Apache-2.0 on npm. +[^kit]: Kit (cased-kit) is a MIT-licensed Python CLI and library. Reviews can + run from the terminal, against local diffs, or from GitHub Actions; each run + reports LLM cost in stdout, not in a separate dashboard. + <https://kit.cased.com/pr-reviewer/> · <https://github.com/cased/kit> +[^kit-lic]: cased-kit is published under MIT on PyPI and GitHub. + + diff --git a/website/src/content/docs/0.6.0/configuration.md b/website/src/content/docs/0.6.0/configuration.md new file mode 100644 index 00000000..d9dcb6eb --- /dev/null +++ b/website/src/content/docs/0.6.0/configuration.md @@ -0,0 +1,470 @@ +--- +slug: 0.6.0/configuration +title: Configuration +description: Every environment variable the bot reads, with defaults. +--- + + + +Configuration is read from environment variables (see `.env.example`). Short +names (`AI_*`, `REVIEW_*`, `WEBHOOK_*`, ...) are explicit aliases; every other +`thrillhousebot.*` key is settable through the standard Quarkus env-var mapping +— uppercase with `.`/`-` replaced by `_` (e.g. `thrillhousebot.review.ignored-files` +→ `THRILLHOUSEBOT_REVIEW_IGNORED_FILES`). The AI variables are the ones you +will change per provider: + +| Variable | Purpose | Default | +|---|---|---| +| `AI_API_KEY` | API key for the AI provider | _(required)_ | +| `AI_BASE_URL` | OpenAI-compatible base URL | `https://api.deepseek.com/v1` | +| `AI_MODEL` | Chat model name | `deepseek-chat` | +| `AI_PROVIDER` | Provider label for telemetry (`gen_ai.provider.name`); derived from `AI_BASE_URL` when unset | _(derived)_ | +| `AI_TIMEOUT` | Per-request timeout | `300s` | +| `AI_REASONING_ENABLED` | Send a reasoning hint to reasoning-capable models; when `false` no reasoning parameter is sent and the provider default applies | `false` | +| `AI_REASONING_EFFORT` | Effort sent while enabled: `none`/`low`/`medium`/`high`/`xhigh`/`max` (`none` explicitly asks the model not to reason; `xhigh`/`max` are the extended tiers newer reasoning models expose above `high`); reasoning tokens are billed as output tokens | `low` | +| `AI_REASONING_EFFORT_CONCISE` | Effort for the fixed-shape calls on the `concise` model (final summary, finding verifier, replies), which do **not** follow `AI_REASONING_EFFORT`: reasoning tokens count against `REVIEW_CONCISE_MAX_OUTPUT_TOKENS`, so a high effort there lets the verifier reason its whole allowance away and return an empty response. Same accepted values; unset means `low`, lowered to `AI_REASONING_EFFORT` when that is set below `low` | `low` | +| `GITHUB_APP_ID` | GitHub App ID | _(required)_ | +| `GITHUB_PRIVATE_KEY` | GitHub App private key (PEM) | _(required)_ | +| `GITHUB_WEBHOOK_SECRET` | Webhook HMAC secret | _(required)_ | +| `GITHUB_BOT_LOGINS` | Comma-separated bot account login(s) the bot skips to avoid replying to itself; override when deployed under a different App slug (`<app-slug>[bot]`) | `thrillhousebot[bot],thrillhouse-bot[bot]` | +| `GITHUB_WRITE_MIN_INTERVAL` | Duration spacing two content-creating GitHub calls (comments, review comments, thread replies, reviews), shared process-wide. GitHub secondary-rate-limits rapid content creation and answers `403`; pacing keeps the bot inside that envelope instead of discovering it by rejection — its published guidance is no more than one such request per second. `0` disables pacing | `1s` | +| `GITHUB_WRITE_MAX_WAIT` | Duration ceiling on how long one caller waits for its content-creation slot. Past it the call goes out unpaced and the bounded backoff handles a refusal, so a long queue never parks a finished command | `60s` | +| `WEBHOOK_DEDUP_TTL` | Webhook deduplication time-to-live for GitHub redeliveries | `24h` | +| `THRILLHOUSEBOT_REVIEW_MANUAL_TRIGGER_ALLOWED_LOGINS` | Comma-separated allowlist of logins permitted to trigger manual `/review` without repo access | _(empty)_ | +| `MANUAL_TRIGGER_AUTH_TIMEOUT` | Upper bound on the manual-trigger write-access check on the webhook ACK thread; fails closed (denies) if GitHub is slower | `5s` | +| `ACK_REACTION_TIMEOUT` | Upper bound on the 👀 command-ack reaction on the webhook ACK thread; the wait is abandoned (reaction may land late) if GitHub is slower | `3s` | +| `AUTO_REVIEW_MIN_INTERVAL` | Minimum interval between automatic reviews of the same PR — pushes within the window are skipped silently, even on a new head SHA (in-memory, per replica). A manual `/review` always bypasses; unset or `0` reviews every push | `0` (disabled) | +| `REVIEW_CI_GATING` | How strictly CI status factors into APPROVE: `strict` holds approval while required CI is pending, failing, or unreadable (fail-closed, safest); `warn` allows APPROVE but notes CI uncertainty in the summary/check; `off` skips CI entirely (findings-only). Prefer `strict` unless flaky CI or incomplete required-context resolution makes soft modes necessary | `strict` | +| `WEBHOOK_SKIP_DRAFTS` | Skip auto-review while a PR is a draft (reviewed once marked ready / on later pushes) | `false` | +| `WEBHOOK_REQUIRED_LABELS` | Comma-separated labels; only auto-review PRs carrying at least one (case-insensitive) | _(empty — no gate)_ | +| `WEBHOOK_EXCLUDED_LABELS` | Comma-separated labels; skip auto-review of PRs carrying any (wins over required) | _(empty)_ | +| `WEBHOOK_BASE_BRANCHES` | Comma-separated globs; only auto-review PRs whose base branch matches one (e.g. `main,release/*`). Globs are gitignore-style: `*` does **not** cross `/`, so use `**` to span slashes (`**` alone matches every branch) | _(empty — all branches)_ | +| `WEBHOOK_IGNORED_BASE_BRANCHES` | Comma-separated globs; skip auto-review of PRs whose base branch matches one (wins over allowlist; same `*`/`**` rule — match nested branches with `**`, e.g. `dependabot/**`) | _(empty)_ | +| `REVIEW_VERIFIER_ENABLED` | Second, skeptical AI pass that re-checks each finding against the diff before posting, dropping or downgrading what it can't confirm (see [AI call budget](#ai-call-budget)); fails open — a verifier error keeps the original findings | `true` | +| `REVIEW_DECLINE_RECHECK_ENABLED` | Re-check a maintainer's decline against the reviewed code before a prior finding is recorded "justified" (see [Re-checking declines](#re-checking-declines)); the finding stays open for one more round only when the reviewed diff plainly contradicts the stated reason. `false` makes a maintainer reply close the finding unconditionally | `true` | +| `REVIEW_BLOCKING_STRICTNESS` | When findings escalate to `REQUEST_CHANGES`: `balanced` (CRITICAL/HIGH + HIGH confidence), `strict` (any CRITICAL/HIGH), or `lenient` (CRITICAL + HIGH confidence only). See [Blocking strictness](#blocking-strictness) | `balanced` | +| `REVIEW_CONVERSATIONAL_REPLIES_ENABLED` | Answer `@thrillhousebot` mentions in PR threads (including finding replies) with an AI reply | `true` | +| `REVIEW_ADD_DOCS_ENABLED` | Allow the on-demand `/add-docs` command to generate docstrings as committable suggestions | `true` | +| `REVIEW_IMPROVE_ENABLED` | Allow the on-demand `/improve` command to run a whole-PR improvement pass and post committable suggestions | `true` | +| `REVIEW_GENERATE_TESTS_ENABLED` | Allow the on-demand `/generate-tests` command to propose unit tests for the changed code | `true` | +| `REVIEW_DIAGRAM_ENABLED` | Include an opt-in Mermaid control-flow diagram in the PR summary | `false` | +| `REVIEW_PATCH_COVERAGE_ENABLED` | Feed patch coverage into the review context: the added lines the repository's own coverage report records as never executed (see [Repository configuration](#repository-configuration)). Only takes effect for a repository that names its coverage artifact in `.github/thrillhousebot.yml` | `false` | +| `REVIEW_FOLLOW_UP_SUMMARY_ENABLED` | Post a short delta comment on follow-up reviews with the new-finding, resolved, and still-open counts. Only the first review posts the full summary; a follow-up pass with no delta (nothing new, nothing resolved) posts nothing | `false` | +| `REVIEW_LARGE_PR_NUDGE_ENABLED` | Add a note to the PR summary when a large PR's review opened **no inline finding** — it may be genuinely clean, or the pass may have been shallow — pointing at `/review` and `/improve`. Costs no extra AI call and never changes the verdict; a PR under both thresholds below is unaffected | `false` | +| `REVIEW_LARGE_PR_NUDGE_MIN_FILES` | Changed files at or above which the nudge applies (PR-level total, so ignored files still count). `0` switches this dimension off | `20` | +| `REVIEW_LARGE_PR_NUDGE_MIN_CHANGED_LINES` | Changed lines (additions + deletions) at or above which the nudge applies; either dimension triggers it on its own. `0` switches this dimension off — with both at `0` the nudge never fires | `1000` | +| `REVIEW_MAX_INPUT_TOKENS` | Per-call input-token budget for review, `/improve`, `/describe` and `/changelog` calls; large PRs are split into batches that each fit it. Bounded by the active model's input cap (see [Per-model AI settings](#per-model-ai-settings)). `0` disables token budgeting | `48000` | +| `REVIEW_OUTPUT_BUFFER_TOKENS` | Tokens reserved out of the input budget for the model's response | `8192` | +| `REVIEW_CONCISE_MAX_OUTPUT_TOKENS` | Response cap (`max_tokens`) for the fixed-shape/short AI calls — the final summary of a multi-call review, the finding verifier, and maintainer replies — which run on the `concise` named model so they don't share a cap sized for batch review output (see [Per-model AI settings](#per-model-ai-settings)). Hitting it surfaces as a truncation error naming this variable, never as a silently cut summary; set it empty to drop the cap and use the provider default | `8192` | +| `REVIEW_MAX_AI_CALLS` | Cap on AI calls per review (batch calls plus the final summary call), per `/describe` and `/changelog` run (batch calls plus one reduce call, spent only when the PR needed more than one batch), and per `/improve`, `/generate-tests` or `/add-docs` run (batch calls only — their results are merged locally); files that still don't fit are reported by name as omitted | `6` | +| `REVIEW_TOKEN_SAFETY_MARGIN` | Fraction of the input budget actually used, absorbing token-estimate error | `0.9` | +| `REVIEW_MAX_TOKENS_PER_REVIEW` | Ceiling on the tokens one review may consume across every AI call it makes — actual input+output as the provider reports them, counting retries and the final summary call, where `REVIEW_MAX_AI_CALLS` only counts planned calls. Once reached no further review call is made: remaining batches are disclosed by name as not reviewed (the verdict holds and the summary names the ceiling as the reason) and the summary degrades to a counts-only rendering that keeps the findings already paid for. `0` disables the ceiling. Review path only — the on-demand commands keep their own call cap | `0` | +| `REVIEW_MAX_DIFF_LINES` | Line cap on single-call diff renders (replies, base comparison, budgeting-disabled review). Token-budgeted reviews and the batched commands — `/improve`, `/describe`, `/changelog`, `/generate-tests`, `/add-docs` — ignore it (the planner owns coverage by tokens); `0` disables the cap | `5000` | +| `THRILLHOUSEBOT_REVIEW_MAX_REVIEW_COMMENTS` | Maximum inline comments posted per review; findings over the cap are surfaced in the summary instead of dropped | `50` | +| `THRILLHOUSEBOT_REVIEW_MAX_AI_RETRIES` | Attempts per failed AI call before the review errors out | `5` | +| `THRILLHOUSEBOT_REVIEW_AI_RETRY_BASE_DELAY_MS` | Base delay of the exponential retry backoff, in milliseconds | `2000` | +| `THRILLHOUSEBOT_REVIEW_AI_TIMEOUT_SECONDS` | Client-side wait per AI streaming attempt; keep it >= `AI_TIMEOUT` so timed-out attempts don't leave orphaned provider streams | `300` | +| `THRILLHOUSEBOT_REVIEW_INSTRUCTIONS_FILE` | Repo-relative path of the per-repo instructions file read on each review | `.github/thrillhousebot.md` | +| `THRILLHOUSEBOT_REVIEW_IGNORED_FILES` | Comma-separated gitignore-style globs excluded from review — lockfiles, generated code, build output. `*` does not cross `/`; use `**` to span directories. Replaces (not extends) the default list, so re-include the defaults you still want | `**/pom.xml,**/package-lock.json,**/*.lock,**/*.generated.*,**/target/**` | +| `THRILLHOUSEBOT_REVIEW_REPO_CONFIG_ENABLED` | Let each repository extend the ignore list with globs of its own, scope review rules to a path, and name its coverage-report artifact, from `.github/thrillhousebot.yml` (see [Repository configuration](#repository-configuration)). Both are additive; set `false` to make the deployment list and the global instructions the only ones that count | `true` | +| `REVIEW_LABELS_ENABLED` | Opt in to context-aware PR labels (see [PR labels](#pr-labels)) | `false` | +| `REVIEW_LABELS_APPLY` | When labels are enabled, add them to the PR instead of only suggesting them in a comment | `false` | +| `REVIEW_LABELS_ALLOW_CREATE` | Allow the bot to create suggested labels that don't exist yet | `false` | +| `REVIEW_LABELS_MAX` | Maximum labels applied or suggested per PR | `3` | +| `GITHUB_CLIENT_ID` / `GITHUB_CLIENT_SECRET` | OAuth credentials for dashboard login | _(required for dashboard)_ | +| `DASHBOARD_URL` | Public dashboard URL (OAuth callback base) | `http://localhost:8080` | +| `DATASOURCE_DB_KIND` | `h2` or `postgresql`. Quarkus fixes the datasource kind at build time, so this picks the driver when the app is built, not when a prebuilt image starts — released images are built for PostgreSQL and ignore an `h2` value | `h2` (dev), `postgresql` (`%prod`) | +| `HTTP_CONNECT_TIMEOUT` | Outbound HTTP connect timeout (GitHub API, OAuth) | `10s` | +| `HTTP_REQUEST_TIMEOUT` | Outbound HTTP request timeout (GitHub API, OAuth) | `10s` | +| `WEBSOCKET_KEEPALIVE_MS` | Dashboard WebSocket keepalive interval in ms; `0` or negative disables it (and stale replay-buffer eviction) | `25000` | + +### AI call budget + +A review that reports findings makes **two** model calls by default, not one: +the review call itself plus a verification call that re-sends the diff and the +candidate findings, so budget roughly **2× tokens** per flagged review. On +large PRs under token-aware budgeting this becomes N batch review calls + N +per-batch verification calls + one summary call. Set +`REVIEW_VERIFIER_ENABLED=false` to skip only the AI verifier — cheaper, at the +cost of more false positives; a deterministic hedging guard still runs, and a +verifier failure never blocks the review (it fails open, keeping the original +findings). + +The on-request commands are budgeted the same way. `/improve`, `/describe`, +`/changelog` and `/generate-tests` each split a large PR into batches under +`REVIEW_MAX_INPUT_TOKENS` and spend one call per batch, capped by +`REVIEW_MAX_AI_CALLS`. `/describe` and `/changelog` additionally reserve one call +of that cap for the step that reduces the per-batch results to a single +description or entry, and only spend it when the PR needed more than one batch — +so a single-batch PR still costs exactly one call. `/improve` and +`/generate-tests` reserve nothing, because their reductions are assembled locally +(a union of suggestions, and a union of proposed test files deduplicated by +path). When the cap is reached before every file has been batched, the uncovered +files are named in the partial-coverage note rather than dropped silently. + +### Re-checking declines + +When a maintainer replies to a finding to decline it, the follow-up analysis +records that finding as **justified** and the bot moves on. A dismissal is a +claim, though, not ground truth — a correct finding can be closed by an +incorrect rebuttal, and the rebuttal often names the very mechanism that makes +the bug real ("it only runs after the webhook is acked, so there's no race" — +on an executor that starts a thread per event). + +`REVIEW_DECLINE_RECHECK_ENABLED=true` (the default) therefore traces a decline's +stated reason against the code the review actually saw. When the reviewed diff +**plainly contradicts** that reason, the finding is kept **open for one more +round** with a note quoting both the claim and the contradicting line, instead +of being recorded justified. It is deliberately conservative: + +- Trusting the maintainer is the default. A rebuttal about house style, intent, + accepted risk, or priority — anything not refutable from the code — is + respected, as is any premise whose supporting code is not in the diff. +- **One push-back, then defer.** The re-check only fires while the thread carries + a single maintainer reply; replying again always ends it, so the bot can never + keep re-opening the same finding round after round. +- The re-opened finding is never re-posted as a new comment — it stays tracked in + *Previous Findings Status*, so nobody is asked to answer the same comment twice. +- The override holds approval (`APPROVE` → `COMMENT`) exactly like any other + unresolved previous finding; it never invents a new blocking finding. + +Set it to `false` to make a maintainer's reply final, unconditionally. + +### Clearing a finding with no thread + +Replying on a finding's review thread is the usual way to close it — but a +**LOW**-confidence finding at **MEDIUM** or **LOW** risk never opens one. It is +listed under **Things to double-check** in the summary instead, so there is no +thread to reply on, while follow-up reviews keep reporting it unresolved and +holding approval (`APPROVE` → `COMMENT`). To close one, comment on the PR +conversation: + +``` +@thrillhousebot resolved src/main/java/com/example/Widget.java:42 — Missing null check +``` + +Write it as plain text in the comment — pasted back inside a code fence or +backticks it reads as documentation and does nothing (see the quoting rule +below). + +Closing a finding wrongly is worse than leaving it open, so the match is strict +and **when the naming is ambiguous the finding stays held**. All of the +following must hold: + +- **The comment states `@thrillhousebot resolved`.** `resolve` (the thread + command) is not it, and a mention alone is not it — an ordinary question about + a finding is engagement, not a decision. Nor is the interrogative: + `@thrillhousebot resolved?` *asks* whether a finding was fixed, so it clears + nothing even when the rest of the comment names one. A question mark anywhere + later is fine — only one straight after the directive words makes it a question. +- **You name the finding by *both* its `path:line` locator and its own content** + — its title, or its description when it has no title. Each **Things to + double-check** row already prints both, the title first and then the locator in + backticks, so copying the row is the reliable way to get them right. Naming only + one of the two clears nothing. Locators match whole, so `Widget.java:42` never + closes a different finding at `Widget.java:4`. +- **You hold write access.** The comment's GitHub `author_association` must be + `OWNER`, `MEMBER` or `COLLABORATOR`; a fork-PR author's or a drive-by + commenter's comment is ignored. The bot's own comments are ignored too — its + summary reproduces every finding verbatim. +- **You *use* the directive rather than quote it.** `@thrillhousebot resolved` + counts as an instruction only when those words are plain text. Marking them up + — as `` `@thrillhousebot resolved` ``, inside a fenced block, or on a `>` + quoted line — reads as documentation, so a comment that *explains* the feature + (the fenced example above, or a colleague pasting one) clears nothing. The + **locator and title may still be in backticks**, which is how the summary + prints them; only the directive words themselves may not be. +- **Quoted blocks do not count at all.** Blockquote lines and fenced code are + dropped before anything is matched, so GitHub's *Quote reply* on the summary — + which reproduces every double-check row — names no finding either. + +One comment may name several findings; each is matched independently, and one it +does not name stays open. A finding with neither a title nor a description can +never be named this way, so it stays held — fix it, or reply on its thread if it +has one. The clearing is applied by the next review, which records the finding +**resolved**. + +The bot answers the directive as soon as it sees it, but only with what is +knowable that early: it has no review loaded and no findings to match against, so +it says what the next review will evaluate rather than reporting an outcome. The +one exception is a directive naming no `path:line` at all — that provably clears +nothing, so the reply says so outright and shows the shape to use. A locator that +is present but wrong still gets the general reply, and the review is what reports +the finding still unresolved. + +**Conversation read ceiling.** A review reads the PR conversation in pages of +100, up to 10 pages — 1000 comments — so one review can never turn a runaway +thread into hundreds of API calls. GitHub serves these comments oldest first and +offers no reverse order on that endpoint, so on a PR past the ceiling the +**newest** comments are the ones left unread, and a directive among them will not +clear anything that round. The bot logs a warning naming the ceiling whenever it +is reached, so this shows up as a log line rather than as the feature quietly +doing nothing; push a commit to re-review, or reply on the finding's thread if it +has one. + +### Blocking strictness + +By default (`REVIEW_BLOCKING_STRICTNESS=balanced`), only **CRITICAL** or **HIGH** +risk findings that the model reports at **HIGH** confidence escalate the PR +review to `REQUEST_CHANGES` (and fail the check run). Medium/low-confidence +severity findings still post as comments with a neutral check. + +| Mode | Blocks merge when | +|---|---| +| `balanced` (default) | CRITICAL or HIGH risk **and** HIGH confidence | +| `strict` | CRITICAL or HIGH risk, **any** confidence | +| `lenient` | CRITICAL risk **and** HIGH confidence only | + +**Security-team recommendation:** use `strict` so a CRITICAL/HIGH finding cannot +slip through as a comment just because confidence was demoted. Be aware that +under `strict`, the finding verifier's confidence demotions (hedged claims → +medium/low) no longer prevent a merge block — only risk reduction or dropping +the finding does. Stay on `balanced` if you want verifier demotions to keep +speculative severity findings non-blocking. + +This knob controls the **review verdict** only. Where findings are posted +(inline thread vs summary) is separate confidence gating tracked in +[#105](https://github.com/devops-thiago/ThrillhouseBot/issues/105); when that +lands, low-confidence findings can move out of the inline stream without +changing these blocking rules. + +The app validates configuration at startup and **fails fast** if a required value +(`GITHUB_APP_ID`, `GITHUB_PRIVATE_KEY`, `GITHUB_WEBHOOK_SECRET`, `AI_API_KEY`) is missing or — for +the private key — not a valid PEM RSA key, naming every offending variable in one message instead of +surfacing later on the first webhook or review. Dashboard OAuth (`GITHUB_CLIENT_ID` / +`GITHUB_CLIENT_SECRET`) is optional: leave both unset and the dashboard login is simply disabled. + +Cost tracking uses per-model pricing keyed by the model name, for example: + +```properties +thrillhousebot.ai.pricing.deepseek-chat.input-per-1k=0.00014 +thrillhousebot.ai.pricing.deepseek-chat.output-per-1k=0.00028 +``` + +If you switch to a different `AI_MODEL`, add a matching +`thrillhousebot.ai.pricing.<model>.*` pair so the dashboard can compute cost. +Without an entry the bot still records tokens, but warns once and flags sessions +as "no pricing" instead of showing `$0`. + +### Per-model AI settings + +Model-specific settings live under `thrillhousebot.ai.models.<model>.*`, keyed +by the model name (the `AI_MODEL` value) like the pricing map. Only the active +model's entry is read, so you can keep entries for every model you use and +switch `AI_MODEL` freely: + +```properties +# Input hard cap. The effective review budget is min(REVIEW_MAX_INPUT_TOKENS, +# cap); models without an entry get a 128000 cap. +thrillhousebot.ai.models.deepseek-chat.max-input-tokens=64000 +# The model's total context window. On a shared window the prompt and the +# completion are both charged to it, so boot fails when max-input-tokens + +# max-output-tokens do not fit inside it. Omit it and the ceiling isn't checked. +thrillhousebot.ai.models.deepseek-chat.context-tokens=128000 +# Per-model overrides of REVIEW_OUTPUT_BUFFER_TOKENS / REVIEW_TOKEN_SAFETY_MARGIN +thrillhousebot.ai.models.deepseek-chat.output-buffer-tokens=8192 +thrillhousebot.ai.models.deepseek-chat.token-safety-margin=0.9 +# Generation parameters, sent on every chat call when set +thrillhousebot.ai.models.deepseek-chat.temperature=0.2 +thrillhousebot.ai.models.deepseek-chat.top-p=0.95 +thrillhousebot.ai.models.deepseek-chat.max-output-tokens=8192 +thrillhousebot.ai.models.deepseek-chat.frequency-penalty=0.1 +thrillhousebot.ai.models.deepseek-chat.presence-penalty=0.1 +thrillhousebot.ai.models.deepseek-chat.seed=42 +# Set true only when the provider really bills the response outside the context +# window (1M in with 384K out on top, rather than 384K carved out of the 1M) — +# it switches off both the reservation and the context-tokens ceiling +thrillhousebot.ai.models.some-separate-budget-model.separate-output-budget=true +``` + +Notes: + +- **`max-input-tokens` is a cap, not the budget.** `REVIEW_MAX_INPUT_TOKENS` + stays the spend knob; the per-model value keeps it from overshooting the + model's real window. To use a large-context model beyond 128k, raise both. + Startup logs a warning whenever the cap lowers your configured budget. +- **`context-tokens` is the window itself**, and declaring it is what lets the + bot refuse an impossible request instead of paying for one. On a shared + window the provider charges the prompt *and* the completion to that one + context, so boot fails when `max-input-tokens + max-output-tokens` exceed it, + and again when your effective budget (`REVIEW_MAX_INPUT_TOKENS` clamped by the + cap) plus the largest response cap in play — `max-output-tokens` or + `REVIEW_CONCISE_MAX_OUTPUT_TOKENS` — exceeds it. Without it, an over-large + pair is only discovered when the provider rejects every call for length. + It is optional: a model that doesn't declare one is simply not checked. +- **Quote keys with `.` or `/`** (`thrillhousebot.ai.models."gpt-5.5".…`), the + same rule as the pricing map. Override via env — hyphen-only keys use underscores + (`THRILLHOUSEBOT_AI_MODELS_DEEPSEEK_V4_PRO_MAX_INPUT_TOKENS=1000000`); dotted keys use the + quoted-key form (`THRILLHOUSEBOT_AI_MODELS__GPT_5_5__MAX_INPUT_TOKENS=256000`). + `application.properties` ships empty stubs for known models so SmallRye can + disambiguate hyphenated keys — [Quarkus env mapping](https://quarkus.io/guides/config-reference#environment-variables). + For a model without a stub, add an empty + `thrillhousebot.ai.models."<model>".max-input-tokens=` line (external + `application.properties` or `-D`) alongside the env var. +- **`top_k` is not available** on the OpenAI-compatible wire; it becomes + relevant only with native provider integrations. +- **`max-output-tokens` no longer caps every call.** The final summary of a + multi-call review, the finding verifier, and maintainer replies run on a + second model binding — the `concise` named model + (`quarkus.langchain4j.openai.concise.*`) — that points at the same provider, + credentials, and model through the same `AI_*` variables and follows the + active model's temperature tuning, but carries its own response cap, + `REVIEW_CONCISE_MAX_OUTPUT_TOKENS` (default `8192`), and its own reasoning + effort, `AI_REASONING_EFFORT_CONCISE` (default `low`). Those responses are + fixed-shape or short, so they don't need — and shouldn't be licensed to + spend — a cap sized for batch review output. The review itself and the + command generators (`/describe`, `/changelog`, `/add-docs`, `/improve`, + `/generate-tests`), whose outputs scale with the diff, stay on the default + model and its `max-output-tokens`. +- **Reasoning effort is per lane.** Reasoning tokens are billed as output and + count against the response cap, so on the `concise` model a high effort can + consume the whole allowance and leave no content — the verifier then reports + that it kept its findings unverified. That tail is variable-length, not a + size threshold, so raising `REVIEW_CONCISE_MAX_OUTPUT_TOKENS` only shifts the + odds. Keep `AI_REASONING_EFFORT_CONCISE` low (the default) and spend the + effort budget on `AI_REASONING_EFFORT`, which drives the review itself. +- **`max-output-tokens` vs `output-buffer-tokens`**: `max-output-tokens` is the + hard response-length cap sent to the provider; `output-buffer-tokens` only + reserves input-budget headroom for the map-reduce budgeter. On a shared-window + model, keep the buffer at least as large as the output cap so a response the + model is allowed to produce always has reserved room — set both when capping + output. Boot fails if you don't. +- **`separate-output-budget`** (default `false`) says which contract the model is + on. Left off, prompt and completion share one window: the budgeter reserves + `output-buffer-tokens` out of the input budget, and the buffer must cover + `max-output-tokens`. Set it `true` for a model that publishes a response + allowance *on top of* its input window rather than inside it — then the + budgeter stops reserving (the response never draws on the diff budget), the + buffer no longer has to cover the cap, and the completion stops counting + against `context-tokens`. Getting it wrong is expensive in one direction and + unbootable in the other, so it is explicit rather than inferred: a + 384000-token cap on a 1M window silently costs ~40% of every call's diff + budget if the model is wrongly marked shared — while marking a genuinely + shared model separate turns off every guard and the provider rejects the + calls instead, which is how `deepseek-v4-flash` shipped its wrong pair. + Verify against the provider's own documented window before setting it. +- **`seed`** is a best-effort determinism hint (same seed + same parameters aims + for the same sampling) on providers that support it; unsupported providers + ignore it. For deterministic reviews, prefer a low `temperature` first. +- **Generation-parameter validation** happens at boot: temperature must be in + `[0, 2]`, `top-p` in `(0, 1]`, penalties in `[-2, 2]`, token counts positive — + a typo in any entry (even an inactive model's) fails startup with a message + naming the key. + + + + + +## Repository configuration + +The instructions file (`.github/thrillhousebot.md`) is prose for the model. +Structured settings live in a separate, optional `.github/thrillhousebot.yml` +(`.github/thrillhousebot.yaml` also works) — kept apart on purpose, because the +instructions fallback chain may land on a file owned by another tool, and its whole +content is fed to the model as untrusted prose: + +```yaml +review: + # Extra paths this repository never wants reviewed, on top of the deployment default. + ignored-files: + - "docs/generated/**" + - "**/*.snap" + - "testdata/**" + + # Review rules for one path only, on top of the prose in .github/thrillhousebot.md + # (which keeps applying everywhere). + path-instructions: + - path: "payments/**" + instructions: | + Money is handled in integer cents; flag any floating-point arithmetic. + Every state change must be idempotent under retry. + - path: "**/generated/**" + instructions: "Generated code: style and naming findings do not apply." + + # Name of the workflow artifact holding this repository's JaCoCo XML coverage report. + # Only read when the deployment sets REVIEW_PATCH_COVERAGE_ENABLED=true. + coverage-artifact: "coverage-report" +``` + +**Precedence: the effective ignore list is the union of both — global ∪ per-repo.** +A file is skipped if it matches *either* the deployment-wide +`thrillhousebot.review.ignored-files` list *or* a glob the repository declared. A +repository can therefore take more files out of review scope, but never put back a +file the deployment excludes, and a repository that ships no config file gets the +global list exactly as before. Globs use the same gitignore-style syntax as the +global key (`*` does not cross `/`; use `**` to span directories). + +**Precedence: the review rules for a file are the global instructions plus every +matching path scope.** The prose in `.github/thrillhousebot.md` (or whichever file the +fallback chain lands on) applies to every file exactly as before. On top of that, each +`path-instructions` scope whose glob matches a changed file contributes its rules *for +that file only* — the model is shown each scope alongside the files it governs, so +`payments/` strictness is never carried over to generated code. Scopes are additive and +may overlap: a file matching two scopes gets both, in declaration order, and where a +scope and the global instructions conflict, the scope wins for its own files. A scope +matching nothing in the pull request is not sent at all, and a file the ignore list +already excluded is never scoped — ignore rules run first. Path globs use the same +syntax and the same matcher as `ignored-files`. + +**Patch coverage: `coverage-artifact` names a report, and nothing is assumed without +it.** The bot never builds the pull request, so it cannot measure coverage itself. When +the deployment sets `REVIEW_PATCH_COVERAGE_ENABLED=true` *and* a repository names an +artifact here, each review looks for that artifact on a **completed workflow run for the +exact head commit** (GitHub's `head_sha` filter), downloads it, and intersects the +report's never-executed lines with the lines the diff adds. The reviewer is then shown a +short "uncovered changed lines" list and told two things: changed logic nothing exercises +is reportable, and a correctness claim about such a line must not be softened by the +usual "but a test in this diff covers it" check — no test runs that line. + +For this to work the workflow must upload the report, e.g. + +```yaml +- run: ./mvnw clean test jacoco:report +- uses: actions/upload-artifact@v7 + with: + name: coverage-report # must match review.coverage-artifact + path: target/site/jacoco/jacoco.xml +``` + +Only JaCoCo XML is understood today. **A repository that names no artifact — the common +case — contributes nothing, and its review is exactly what it was before.** The same is +true when the run uploaded nothing by that name, the artifact has expired, the download +fails, or the report is in another format: the section is omitted rather than guessed at. +Nothing about coverage is ever inferred from the diff, and a line's *absence* from the +list is explicitly not evidence that a test covers it. Files the ignore list already +excluded are never reported as under-tested. + +The file is read from the repository's default branch on each review and cached for +five minutes. Everything about it fails soft: a missing file, invalid YAML, an +unexpected shape, an uncompilable glob, or a malformed `path-instructions` entry is +logged and skipped, leaving the global ignore list and the global instructions in force +— it never fails a review. A repository may declare at most 25 scopes, each with at most +4000 characters of rules; the rest is dropped with a warning. Operators who do not want +repositories adjusting their own review scope or rules can turn the whole mechanism off +with `THRILLHOUSEBOT_REVIEW_REPO_CONFIG_ENABLED=false`. + + + + + +## PR labels + +ThrillhouseBot can suggest context-aware labels (area, change type, risk) drawn +from the diff. The feature is **off by default**; turn it on with +`REVIEW_LABELS_ENABLED=true`. + +When enabled, the model is shown the repository's existing labels and picks the +few that best describe the PR — it only ever chooses from labels that already +exist, so it respects whatever label scheme the repo already uses. What happens +next depends on `REVIEW_LABELS_APPLY`: + +- `false` (default): the suggestions are posted as a one-line comment on the + first review, leaving the decision to a maintainer. +- `true`: the labels are added to the PR automatically. + +Set `REVIEW_LABELS_ALLOW_CREATE=true` to let the bot create a suggested label +that doesn't exist yet (off by default, so it never invents labels), and +`REVIEW_LABELS_MAX` to cap how many labels it applies or suggests (default `3`). +Labelling is best-effort — a failure here never blocks or fails the review. + + diff --git a/website/src/content/docs/0.6.0/contributing.md b/website/src/content/docs/0.6.0/contributing.md new file mode 100644 index 00000000..812a5827 --- /dev/null +++ b/website/src/content/docs/0.6.0/contributing.md @@ -0,0 +1,137 @@ +--- +slug: 0.6.0/contributing +title: Contributing +description: Development setup and the CI bar for contributions. +--- + + + + +This project follows the [Contributor Covenant](https://github.com/devops-thiago/ThrillhouseBot/blob/main/CODE_OF_CONDUCT.md). By taking +part you agree to uphold it. + +## Where to start + +- **[GitHub Discussions](https://github.com/devops-thiago/ThrillhouseBot/discussions)** — questions, setup help, and general conversation. Start with the pinned [welcome post](https://github.com/devops-thiago/ThrillhouseBot/discussions/1) if you are new. +- Issues labeled [`good first issue`](https://github.com/devops-thiago/ThrillhouseBot/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) are well-scoped and explained in detail. +- Issues labeled [`help wanted`](https://github.com/devops-thiago/ThrillhouseBot/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) are larger but ready to be picked up. +- For bugs and feature requests, use the [issue templates](https://github.com/devops-thiago/ThrillhouseBot/issues/new/choose). For larger changes, open an issue first so we can discuss the approach before you invest time. + +## Development setup + +Prerequisites: **Java 25+**, **Node.js 22+** (dashboard only), **Docker** (native builds only). Maven is bundled via the wrapper. + +Follow the [README Quick Start](https://github.com/devops-thiago/ThrillhouseBot#quick-start) for cloning, credentials, dev mode, and webhook forwarding — it is the single source of truth for setup commands. Contributor-specific extras: + +```bash +cd frontend && npm install && npm run dev # dashboard with hot reload +``` + +## Before you open a PR + +Run the Java verification locally before opening a PR: + +```bash +./mvnw spotless:apply # google-java-format; CI runs spotless:check +./mvnw verify # tests + JaCoCo coverage gate + SpotBugs +``` + +If you changed the dashboard, also run `cd frontend && npm ci && npm run test && npm run build`. + +To exercise the UI without a backend, run `cd frontend && npm run dev:mock`. +CI additionally runs Dependency Review (required), SonarCloud, Trivy, and a Docker +build check on pull requests — see **Dual-gate merge policy** below. +To build a disposable test image for a branch or PR (JVM or native, without +touching `latest`), use the **Docker test image** workflow in Actions +(`.github/workflows/docker-test-image.yml`). + +The bar, enforced by CI: + +- **All tests pass** — and new code comes with tests. Test behavior, not implementation: prefer asserting observable outcomes over `assertDoesNotThrow`, and avoid reflection on private members (relax to package-private instead if a test genuinely needs the seam). +- **Coverage doesn't drop** — JaCoCo, Codecov patch coverage, and the SonarCloud quality gate all run on every PR. +- **SpotBugs clean** at `effort=Max`/`threshold=Low`. If you hit a false positive, prefer restructuring; document any exclusion in `config/spotbugs-exclude.xml` with a justification comment. +- **No new Sonar issues** — the quality gate requires an A reliability/security rating on new code. + +## Dual-gate merge policy + +ThrillhouseBot's LLM review and the repo's static CI gates are **complementary**, not substitutes. Merge only when **both** are green (or explicitly waived by a maintainer with a written reason on the PR). + +| Gate | What it catches | Required on this repo | +|------|-----------------|------------------------| +| **Static** | Dependency CVEs/license regressions ([Dependency Review](https://github.com/devops-thiago/ThrillhouseBot/blob/main/.github/workflows/dependency-review.yml)), filesystem CVEs (Trivy), format/tests/frontend, SpotBugs/Sonar/CodeQL | Yes — `format`, `test`, `frontend`, `trivy`, and `dependency-review` are required status checks on `main`/`develop` | +| **ThrillhouseBot** | Diff narrative, incomplete fixes, framework-context issues static tools miss | Soft gate — wait for the **ThrillhouseBot Review** check / posted review when the App is installed; do not merge solely because CI is green if the bot flagged open threads | + +Optional third signal: Cursor Bugbot (or similar) may run on PRs. It is **not** a merge requirement here — useful when present, never a replacement for the two gates above. + +This policy does **not** fold linters into the LLM prompt ([#34](https://github.com/devops-thiago/ThrillhouseBot/issues/34)); that work stays separate. The static gate is the CI safety net for supply-chain and compile-time classes of bug the bot can miss. + +### When the gates disagree + +Maintainers triage; do not "average" the signals away. + +| Static | ThrillhouseBot | What to do | +|--------|----------------|------------| +| Red | Green / quiet | **Fix or formally suppress the static finding.** LLM silence is not evidence the CVE is safe. Prefer a real version bump; if the advisory does not apply to this codebase, document the hold with the file the failing tool actually reads — Dependency Review: `allow-ghsas` or `.github/dependency-review-config.yml`; Trivy: `.trivyignore`; OpenSSF Scorecard / osv-scanner: `osv-scanner.toml` (Jackson GHSA pattern in [#308](https://github.com/devops-thiago/ThrillhouseBot/pull/308)). | +| Green | Red / open threads | **Address or refute the bot findings** in the PR discussion before merge. Static green does not clear logic/copy/incomplete-fix issues. | +| Red | Red | Clear the **static** gate first (often blocks merge already), then resolve bot threads. | +| Same area, conflicting severity | — | Prefer the **static** tool for dependency/CVE/license facts; prefer the **bot** for intent, call-site context, and "did the PR actually finish the fix?" Prefer neither blindly — leave a short maintainer note on the PR. | + +Waivers (rare): only a maintainer may merge with a red soft gate or a documented static suppression, and the PR must record who waived what and why. + +## Commit messages + +The project uses [Conventional Commits](https://www.conventionalcommits.org/): `feat:`, `fix:`, `perf:`, `test:`, `docs:`, `ci:`, `deps:`. One logical change per commit; explain the *why* in the body when it isn't obvious. + +## Architecture + +See the [architecture overview](https://devops-thiago.github.io/ThrillhouseBot/architecture/) +(source: [docs/ARCHITECTURE.md](https://github.com/devops-thiago/ThrillhouseBot/blob/main/docs/ARCHITECTURE.md)). Package flow: +`webhook/` → `review/` (`review/ai/`) → `github/` → `dashboard/` (`frontend/`). + +## Adding an AI provider + +There is no provider-specific code to write. The model is reached through +LangChain4j's OpenAI-compatible client, so a new provider is configuration: point +`AI_BASE_URL` and `AI_MODEL` at the endpoint, and add a matching +`thrillhousebot.ai.pricing.<model>.input-per-1k` / `.output-per-1k` pair in +`application.properties` if you want the dashboard to track its cost. The +[README provider table](https://github.com/devops-thiago/ThrillhouseBot#provider-support) lists the ones that are known +to work. + +## Prompt eval corpus + +Changes to the review or verifier prompts (`PrReviewPrompts`, `FindingVerifierPrompts`) +should be checked against the labeled regression corpus in +`src/test/resources/evalcorpus/` before they ship. Each case directory pins a real +dogfood outcome — a `case.json` spec plus `diff.txt` in the exact format the review +pipeline sends to the model: + +- **verifier** cases feed a candidate finding through the second-pass audit and assert + the expected verdict (`confirmed` / `downgraded` / `rejected`); +- **generator** cases run the first-pass review prompt over a diff and assert that a + finding matching the case's keywords is (`must-find`) or is not (`must-not-find`) + raised on the target file. + +The corpus schema is validated by `EvalCorpusTest` in every build. The live suite is +opt-in — it calls the configured AI provider: + +```bash +QUARKUS_LANGCHAIN4J_OPENAI_API_KEY=<key> ./mvnw test -Peval -Dtest=PromptEvalTest +``` + +Point `AI_BASE_URL` / `AI_MODEL` at the provider you want to evaluate (defaults apply +otherwise). Each case is sampled `-Deval.samples` times (default 3) and judged by +majority; `-Deval.tolerated` (default 0) allows a known-unfixed label — one tracked by +an open prompt-hardening issue — to fail without blocking unrelated prompt work. + +To add a case, create a new directory under `evalcorpus/` with `case.json` and +`diff.txt` (see an existing case for the shape). Source new cases from resolved PR +review threads: a refuted false positive becomes `expectedVerdicts: ["rejected"]`, a +confirmed true positive `["confirmed"]`, and note the provenance in `why`. + +## Reporting security issues + +Please **do not** open a public issue — see +[SECURITY.md](https://github.com/devops-thiago/ThrillhouseBot/blob/main/SECURITY.md). + + diff --git a/website/src/content/docs/0.6.0/feedback.md b/website/src/content/docs/0.6.0/feedback.md new file mode 100644 index 00000000..b79c4369 --- /dev/null +++ b/website/src/content/docs/0.6.0/feedback.md @@ -0,0 +1,93 @@ +--- +slug: 0.6.0/feedback +title: Finding feedback +description: Data model, privacy, and retention for maintainer finding feedback signals. +--- + + + + +ThrillhouseBot records lightweight maintainer signals about review findings so a +future cross-review learnings store ([#38](https://github.com/devops-thiago/ThrillhouseBot/issues/38)) +has training data. This is the precursor shipped for +[#324](https://github.com/devops-thiago/ThrillhouseBot/issues/324); it does **not** +yet inject preferences into review prompts. + +## Why poll instead of a reaction webhook? + +GitHub Apps do not receive a `reaction` webhook event. The bot therefore lists +👍 (`+1`) and 👎 (`-1`) on finding comments via the +[Reactions REST API](https://docs.github.com/en/rest/reactions/reactions) when: + +1. A human **replies** on an inline review thread (`pull_request_review_comment` + with `in_reply_to_id`), or +2. A **follow-up review** already loaded inline comments — every bot finding-root + comment across prior rounds is scanned (capped, ordered by comment id), not + only findings from the immediately previous AI response. + +Capture is best-effort and never fails the webhook `200` or the review. + +## Signals + +| Signal | Source | Meaning | +|--------|--------|---------| +| `useful` | `reaction` (`+1`) | Maintainer marked the finding comment 👍 | +| `not_useful` | `reaction` (`-1`) | Maintainer marked the finding comment 👎 | +| `not_useful` | `reply_heuristic` | Reply body matched a conservative phrase (`not useful`, `false positive`, `noise`, 👎, `:-1:`) | + +Only comments that carry the hidden `<!-- thrillhousebot:finding=N -->` marker are +eligible. The bot's own reactions (e.g. 👀 command ack) are ignored. + +## Data model + +Table `finding_feedback` (Hibernate schema-update; no Flyway): + +| Column | Type | Notes | +|--------|------|-------| +| `id` | bigint | Panache / sequence PK | +| `repository` | string | `owner/repo` | +| `prNumber` | int | PR on that repository | +| `githubCommentId` | bigint | Finding root review-comment id | +| `findingIndex` | int (nullable) | 1-based index from the marker | +| `signal` | string | `useful` or `not_useful` | +| `source` | string | `reaction` or `reply_heuristic` | +| `reactorLogin` | string | GitHub login only (lower-cased) | +| `githubReactionId` | bigint (nullable) | Unique when present (idempotent re-poll) | +| `createdAt` | instant | Insert time | + +Unique constraints: + +- `githubReactionId` (when non-null) — reaction redeliveries / re-polls +- `(githubCommentId, reactorLogin, signal, source)` — one logical event per actor + +## Privacy + +Stored PII is limited to the **GitHub login** already present on webhook and API +payloads. No email, display name, IP, or reaction text beyond the fixed emoji +content codes (`+1` / `-1`) is persisted. Finding title/description are not +copied into this table. + +## Retention + +Rows are retained for the lifetime of the deployment database. There is no +automatic purge. Operators may `DELETE` rows or drop the table when +decommissioning an installation. Uninstalling the GitHub App does not currently +auto-delete feedback rows (same posture as `ReviewSession` history). + +## Aggregation API (ContextProvider seam) + +`FindingFeedbackService.summarize(repository)` and `summarizeAll()` return +per-repo `useful` / `not_useful` counts for a future `ContextProvider`. The +dashboard exposes the same aggregates at `GET /api/dashboard/feedback` (session +cookie required; optional `?repository=owner/repo`). + +## Notable classes + +- `FindingFeedback` / `FindingFeedbackRepository` / `FindingFeedbackService` +- `FindingFeedbackCaptureService` — poll + heuristics +- `GitHubReactionClient.listReviewCommentReactions` +- `WebhookController` — schedules capture on review-thread replies +- `ReviewOrchestrator` — capture pass on follow-up reviews + + + diff --git a/website/src/content/docs/0.6.0/getting-started.md b/website/src/content/docs/0.6.0/getting-started.md new file mode 100644 index 00000000..18f556e6 --- /dev/null +++ b/website/src/content/docs/0.6.0/getting-started.md @@ -0,0 +1,125 @@ +--- +slug: 0.6.0/getting-started +title: Getting started +description: Create the GitHub App, configure the bot, and start it with Docker Compose. +--- + +Everything you need to go from zero to a bot reviewing your pull requests: +create the GitHub App, configure the bot, and start it with Docker Compose. + +## Prerequisites + +- [Docker & Docker Compose](https://docs.docker.com/compose/install/) +- An API key for any [OpenAI-compatible provider](/ThrillhouseBot/providers/) +- A public hostname where GitHub can reach the bot (for local development, + a [Smee.io](https://smee.io/) channel works) + +## 1. Create the GitHub App + +The bot authenticates as a GitHub App, so the app must exist before the bot +starts. The easiest path is the +**[hosted installer](/ThrillhouseBot/install.html)**: type the public hostname +where the bot will run and click **Create ThrillhouseBot GitHub App** — the +page builds the app manifest for you and sends it to GitHub. No local server +needed. + +After GitHub creates the app: + +1. Note the **App ID** (app settings → About). +2. Generate a **private key** (downloads a `.pem` file). +3. Set a **webhook secret**. +4. Copy the **Client ID** and **Client secret** from *Identifying and + authorizing users* (needed for dashboard login). +5. Install the app on your account or organization. + +Alternatively, grab the `code` query parameter GitHub appends to the +post-creation redirect and generate `.env` automatically from the manifest +conversion response: + +```bash +gh api --method POST /app-manifests/<code>/conversions \ + | java scripts/GenEnv.java --host <your-host> +``` + +:::note[Smee setups] +The hosted installer registers Smee webhooks at the channel root and the +OAuth callback at `http://localhost:8080/api/auth/callback`. If you use +`GenEnv.java`, don't pass the Smee URL as `--host` (that writes +`DASHBOARD_URL=https://<host>`); run it without `--host` and then set +`DASHBOARD_URL=http://localhost:8080` in the generated `.env` — dashboard +login only works when `DASHBOARD_URL` matches the registered callback. + +Webhooks land on the Smee channel, so also run the relay client to +forward them to the bot (keep it running alongside the bot): + +```bash +npx smee-client -u https://smee.io/YOUR_CHANNEL -t http://localhost:8080/api/webhook +``` +::: + +:::note[Manual registration instead] +Prefer to register the app by hand? Create it at +<https://github.com/settings/apps/new> with these settings: + +| Setting | Value | +|---|---| +| Webhook URL | `https://<your-host>/api/webhook` | +| Webhook Secret | Random string | +| Repository Permissions | Pull Requests: R/W, Checks: R/W, Contents: Read, Issues: R/W, Actions: Read, Commit Statuses: Read | +| Subscribe to Events | Pull Request, Issue comment, Pull request review comment | +| Identifying & authorizing users | Enabled (for dashboard login) | +| Callback URL | `https://<your-host>/api/auth/callback` | + +For a Smee channel, register the channel URL itself as the Webhook URL (no +`/api/webhook` suffix — Smee delivers only at the channel root) and +`http://localhost:8080/api/auth/callback` as the Callback URL, since OAuth +redirects happen in your browser against the local bot. +::: + +:::tip[Re-registering later] +Once the bot is running, `install.html` on the bot's own URL +(`https://<your-host>/install.html` behind a reverse proxy, or +`http://localhost:8080/install.html` when hitting it directly) builds the +manifest from the detected host automatically — handy for adding the app to +another account. Smee-based dev setups should re-register through the +[hosted installer](/ThrillhouseBot/install.html) instead: the bot's own page +registers the origin it's served from, without the Smee webhook-root handling. +::: + +## 2. Clone and configure + +```bash +git clone https://github.com/devops-thiago/ThrillhouseBot.git && cd ThrillhouseBot +cp .env.example .env +``` + +Edit `.env` with the credentials from step 1: + +| Variable | Value | +|---|---| +| `GITHUB_APP_ID` | From GitHub App settings → About | +| `GITHUB_PRIVATE_KEY` | The `.pem` downloaded when you generated a private key — on one line, newlines as `\n`, unquoted | +| `GITHUB_WEBHOOK_SECRET` | The webhook secret you set | +| `GITHUB_CLIENT_ID` | From app settings → Identifying and authorizing users | +| `GITHUB_CLIENT_SECRET` | From app settings → Identifying and authorizing users | +| `AI_API_KEY` | Your AI provider's API key | + +## 3. Start the bot + +```bash +docker compose up -d +``` + +The bot is running on `http://localhost:8080`. Point your reverse proxy at it +and you're done — the next pull request on an installed repository gets +reviewed automatically. + +## Next steps + +- Tune the bot with the + [configuration reference](/ThrillhouseBot/configuration/) — auto-review + triggers, labels, timeouts, and more. +- Drive it from a PR with the [comment commands](/ThrillhouseBot/commands/). +- Customize reviews per repository with a `.github/thrillhousebot.md` + instructions file (fallback chain: `.github/copilot-instructions.md` → + `CLAUDE.md` → `AGENTS.md` → `AGENT.md`). diff --git a/website/src/content/docs/0.6.0/index.md b/website/src/content/docs/0.6.0/index.md new file mode 100644 index 00000000..64b7e23a --- /dev/null +++ b/website/src/content/docs/0.6.0/index.md @@ -0,0 +1,78 @@ +--- +slug: 0.6.0 +title: ThrillhouseBot +description: Self-hosted AI pull-request reviewer — a GraalVM-native GitHub App built with Quarkus. +--- + +> **"Everything's coming up Thrillhouse!"** + +A self-hosted, GraalVM-native PR review bot, built as a GitHub App with Quarkus. +It reviews pull requests using any OpenAI-compatible chat API, so the review is +language-agnostic and you can pick the provider that suits you — including a +local Ollama model, so no code has to leave your network. + +![ThrillhouseBot approving a clean pull request](../../../assets/0.6.0/pr-approval.png) + +## Features + + + +- Reviews diffs for correctness, security, regressions, stale comments, and code quality +- Token-budgeted whole-PR review for large diffs — split into parallel map-reduce batches with omitted files named, not silently dropped +- Configurable auto-review triggers — skip drafts, gate on labels, or filter by base branch — plus an optional per-PR auto-review interval (`AUTO_REVIEW_MIN_INTERVAL`) when you want to cap spend on noisy PRs (off by default; use `/pause` to silence a PR) +- Inline code suggestions on review comments that you can apply with one click +- Every finding is tagged `critical`, `high`, `medium`, or `low` +- Follow-up reviews track whether earlier findings were addressed or justified +- Every finding can be closed by a maintainer: reply on its review thread, or — for one raised below the inline-posting bar, which has no thread — comment `@thrillhousebot resolved <path>:<line> — <title>` on the PR +- Maintainer 👍/👎 (and "not useful" replies) on finding comments are recorded for a future learnings pipeline — see [Finding feedback](https://devops-thiago.github.io/ThrillhouseBot/feedback/) +- Conversational replies: `@thrillhousebot` it in a PR thread or finding reply and the bot answers in context +- A summary comment on the first run, with a risk breakdown and a changed-files walkthrough +- Operable from the PR with comment commands — `/help`, `/review`, `/summary`, `/describe`, `/changelog`, `/add-docs`, `/improve`, `/generate-tests`, `/resolve`, `/pause`, `/resume` +- Live dashboard (Next.js) with a WebSocket activity feed, cost charts, and token tracking +- OpenTelemetry traces, token histograms, cost counters, and latency metrics +- Optional reasoning-effort dial and per-model generation/budget caps for OpenAI-compatible endpoints +- Reads per-repo instructions from `.github/thrillhousebot.md`, falling back to Copilot/Claude/Agents files +- Lets each repository add its own ignore globs in `.github/thrillhousebot.yml`, unioned with the deployment default, and scope extra review rules to a path glob +- Compiles ahead-of-time with GraalVM/Mandrel, so it starts fast and stays small + + + +## Where to go next + +- **[Getting started](/ThrillhouseBot/getting-started/)** — create the GitHub + App with the [hosted installer](/ThrillhouseBot/install.html) and run the bot + with Docker Compose. +- **[Commands](/ThrillhouseBot/commands/)** — drive the bot from a PR: + `/review`, `/describe`, `/changelog`, `/add-docs`, `/improve`, + `/generate-tests`, and more. +- **[Configuration](/ThrillhouseBot/configuration/)** — every environment + variable, with defaults. +- **[AI providers](/ThrillhouseBot/providers/)** — point the bot at the + OpenAI-compatible endpoint of your choice. +- **[Architecture](/ThrillhouseBot/architecture/)** — how a review flows + through the system. +- **[Finding feedback](/ThrillhouseBot/feedback/)** — maintainer 👍/👎 capture + for the learnings pipeline. +- **[How it compares](/ThrillhouseBot/comparison/)** — an honest look at where + ThrillhouseBot sits next to other AI code-review tools. +- **[Contributing](/ThrillhouseBot/contributing/)** — development setup and the + CI bar. + +## Dashboard + +The built-in dashboard (Next.js, served by the bot itself) shows summary cards, +a live activity feed that streams the model's output as a review runs, cost +charts by model, token breakdowns, and a paginated session history: + +![Dashboard Overview with summary cards, live model-output panel, and recent activity](../../../assets/0.6.0/live-streaming.png) + +## Community and license + +Questions and setup help belong in +[GitHub Discussions](https://github.com/devops-thiago/ThrillhouseBot/discussions); +bugs and feature requests in +[Issues](https://github.com/devops-thiago/ThrillhouseBot/issues/new/choose). + +Licensed under the +[Apache License 2.0](https://github.com/devops-thiago/ThrillhouseBot/blob/main/LICENSE) +(SPDX: `Apache-2.0`). diff --git a/website/src/content/docs/0.6.0/providers.md b/website/src/content/docs/0.6.0/providers.md new file mode 100644 index 00000000..366290ce --- /dev/null +++ b/website/src/content/docs/0.6.0/providers.md @@ -0,0 +1,30 @@ +--- +slug: 0.6.0/providers +title: AI providers +description: Point the bot at any OpenAI-compatible chat endpoint. +--- + + + +ThrillhouseBot talks to any endpoint that implements the OpenAI chat-completions +API. Point `AI_BASE_URL` and `AI_MODEL` at your provider of choice: + +| Provider | `AI_BASE_URL` | Example `AI_MODEL` | +|---|---|---| +| DeepSeek | `https://api.deepseek.com/v1` | `deepseek-chat` | +| OpenRouter | `https://openrouter.ai/api/v1` | `openai/gpt-4o-mini` | +| Alibaba Cloud (Model Studio) | `https://dashscope-intl.aliyuncs.com/compatible-mode/v1` | `qwen-plus` | +| OpenAI | `https://api.openai.com/v1` | `gpt-4o-mini` | +| Ollama (local) | `http://localhost:11434/v1` | `llama3.2` | + +The default is DeepSeek, used only because it is inexpensive; nothing in the bot +is tied to it. + + + +There is no provider-specific code in the bot — a new provider is just +configuration. See +[Adding an AI provider](/ThrillhouseBot/architecture/#adding-an-ai-provider) +in the architecture notes, and add a `thrillhousebot.ai.pricing.<model>.*` pair +(see [Configuration](/ThrillhouseBot/configuration/)) if you want cost tracking +for the model. diff --git a/website/src/content/docs/0.6.1/architecture.md b/website/src/content/docs/0.6.1/architecture.md new file mode 100644 index 00000000..372021b7 --- /dev/null +++ b/website/src/content/docs/0.6.1/architecture.md @@ -0,0 +1,296 @@ +--- +slug: 0.6.1/architecture +title: Architecture +description: One-page overview of how the bot is structured and how a review flows through it. +--- + + + + +One-page overview of how the bot is structured and how a review flows through it. + +ThrillhouseBot is a Quarkus application that runs as a GitHub App. A webhook +arrives when a pull request changes, the bot builds a review with an +OpenAI-compatible model, and it posts the result back as a PR review plus a +check run. A dashboard streams what is happening live. + +## Components + +```mermaid +flowchart TB + subgraph GH[GitHub.com] + IN[PR push, /review, @mention] + OUT[PR reviews · check runs · comments] + end + + subgraph BOT[ThrillhouseBot · Quarkus] + WH[webhook/<br/>WebhookController] + RO[review/<br/>ReviewOrchestrator] + AI[review/ai/<br/>AiReviewService] + GHC[github/<br/>REST clients] + DB[dashboard/ + frontend/] + + WH --> RO --> AI + RO --> GHC + AI -.->|live tokens / review.batch| DB + end + + IN -->|POST /api/webhook<br/>HMAC-verified| WH + GHC --> OUT +``` + +The `github/` clients wrap the GitHub REST surface the bot uses: installation +tokens, pull diffs and prior reviews, check runs, PR reviews with inline +comments, issue comments, and the instructions-file fallback chain +(`.github/thrillhousebot.md`, `.github/copilot-instructions.md`, `CLAUDE.md`, +`AGENTS.md`, `AGENT.md`). + +## Request flow + +```mermaid +flowchart TD + GH[GitHub: PR opened / synced / comment] -->|webhook| WH[webhook/] + WH -->|verify HMAC, filters, rate limit, 👀 ack| RO[review/ ReviewOrchestrator] + RO -->|fetch diff, instructions, prior findings| GHC[github/ API clients] + RO -->|budget plan · stream or batch| AI[review/ai/ LangChain4j] + AI -->|parse findings| RO + RO -->|verify findings — 2nd AI call per batch, on by default| AI + RO -->|post review + check run| GHC --> GH + AI -.->|live tokens or review.batch| DB[dashboard/ broadcaster] + DB -->|WebSocket| FE[frontend/ Next.js UI] + RO -->|persist session, cost, tokens| PG[(H2 / PostgreSQL)] + AI -->|traces, token & cost metrics| OT[(OpenTelemetry)] +``` + +Automatic triggers (`pull_request` opened / synchronize, and similar) are subject +to `AUTO_REVIEW_MIN_INTERVAL`: if the same PR was auto-reviewed too recently, +the webhook path skips the review silently. Manual `/review` always bypasses that +window. Slash and mention **commands** get a best-effort 👀 reaction before +pause/authorization; conversational `@thrillhousebot` mentions (no command word) +are answered without a reaction. + +## Review lifecycle + +### First review (PR opened) + +```mermaid +sequenceDiagram + actor Dev + participant GH as GitHub + participant TB as ThrillhouseBot + participant AI as AI Provider + + Dev->>GH: git push (PR opened) + GH->>TB: POST /api/webhook (pull_request: opened) + + Note over TB: Verify HMAC → JWT → install token + Note over TB: Auto-review rate limit (skip if within AUTO_REVIEW_MIN_INTERVAL) + + TB->>GH: POST check-runs → status: queued + TB->>GH: PATCH check-run → status: in_progress + + par Fetch context + TB->>GH: GET /pulls/{pr}/files (diff) + TB->>GH: GET /compare/{base}...{head} (regression context) + end + + TB->>GH: GET /pulls/{pr}/reviews (check if already reviewed this SHA) + GH-->>TB: no prior reviews → first run + + Note over TB: DiffBudgetPlanner — single-call or token-budgeted batches + + alt Diff fits one call + TB->>AI: POST chat (diff + base comparison + review prompt) — live tokens to dashboard + AI-->>TB: findings + risk levels + suggestions + opt Findings found and REVIEW_VERIFIER_ENABLED (default) + TB->>AI: POST chat (re-check each finding against the diff) + AI-->>TB: confirmed / downgraded / dropped findings + end + else Large diff — multi-call + loop Each batch in parallel (up to REVIEW_MAX_AI_CALLS − 1) + TB-->>TB: review.batch progress (no per-token stream) + TB->>AI: POST chat (batch diff) + AI-->>TB: batch findings + opt Findings and verifier on + TB->>AI: POST chat (verify batch findings) + end + end + TB->>AI: POST chat (summary rollup of aggregated findings) + AI-->>TB: PR-level summary + previous-findings status + Note over TB: Any files that still won't fit are disclosed by name + end + + alt AI fails + TB->>GH: PATCH check-run → conclusion: failure + TB->>GH: POST comment: retry hint (no internal details) + else AI succeeds + issues found + TB->>GH: POST PR review (REQUEST_CHANGES or COMMENT) with inline suggestions + TB->>GH: PATCH check-run → conclusion: failure (critical/high) or neutral + TB->>GH: POST comment: PR summary (risk table + key findings) + else AI succeeds + zero issues + TB->>GH: POST PR review → APPROVE (no body) + TB->>GH: PATCH check-run → conclusion: success + TB->>GH: POST comment: PR summary (celebration inside) + end +``` + +### Follow-up review (new push) + +```mermaid +sequenceDiagram + actor Dev + participant GH as GitHub + participant TB as ThrillhouseBot + participant AI as AI Provider + + Dev->>GH: git push (PR synchronize) + GH->>TB: POST /api/webhook (pull_request: synchronize) + + Note over TB: Verify → auth → rate limit → create check run (in_progress) + + par Fetch context + TB->>GH: GET /pulls/{pr}/files (diff) + TB->>GH: GET /compare/{base}...{head} + and Fetch prior review + TB->>GH: GET /pulls/{pr}/reviews (find ThrillhouseBot's last review) + GH-->>TB: previous findings + thread status + end + + Note over TB: Prompt includes diff + prior findings + "check if each was addressed" + Note over TB: Same single-call or map-reduce path as first review + + TB->>AI: POST chat (one or more review calls ± verifier ± summary) + AI-->>TB: resolved / unresolved / new findings + + alt AI fails + Note over TB: Same sanitized error path as first review + else AI succeeds + TB->>GH: POST PR review (suggestions for unresolved + new issues) + TB->>GH: PATCH check-run → conclusion based on risk + Note over TB: No summary comment on follow-up (only on first run) + end +``` + +### Manual trigger (`/review` or `@Thrillhousebot review`) + +```mermaid +sequenceDiagram + actor Dev + participant GH as GitHub + participant TB as ThrillhouseBot + + Dev->>GH: Comments "/review" + GH->>TB: POST /api/webhook (issue_comment: created) + + Note over TB: Verify → parse trigger → 👀 ack (bounded wait) → auth + Note over TB: Manual /review bypasses AUTO_REVIEW_MIN_INTERVAL + Note over TB: Fetch diff, compare, and prior reviews + Note over TB: Full re-review even if this SHA was already reviewed +``` + +### Conversational reply (`@thrillhousebot` mention) + +```mermaid +sequenceDiagram + actor Dev + participant GH as GitHub + participant TB as ThrillhouseBot + + Dev->>GH: Mentions @thrillhousebot (in a PR thread or finding reply) + GH->>TB: POST /api/webhook (pull_request_review_comment or issue_comment: created) + + Note over TB: Bot-loop guard → mention detected (no command) → ACK 200 + Note over TB: No 👀 reaction — conversational mentions are answered, not reacted to + Note over TB: Async on review executor: authorize (write access) + Note over TB: Build threaded prompt (finding + diff hunk + thread) + TB->>GH: POST reply in the review thread (or a PR comment) +``` + +## Packages + +| Package | Responsibility | Notable classes | +|---|---|---| +| `webhook/` | Receives GitHub events, verifies the HMAC signature, decides whether an event triggers a review (trigger filters, per-PR pause state, auto-review rate limit), acks slash/mention commands with 👀, runs the comment commands (`/help`, `/summary`, `/describe`, `/changelog`, `/add-docs`, `/improve`, `/generate-tests`, `/resolve`, `/pause`, `/resume`), and schedules finding-feedback capture on review-thread replies | `WebhookController`, `WebhookVerifier`, `TriggerDetector`, `ReviewTriggerFilter`, `AckReactionService`, `CommentCommandService`, `PrPauseService` | +| `review/` | Orchestrates a review: plans the token budget and the per-review spend ceiling, calls the AI layer (single-call or map-reduce), maps findings to a risk level and review state, re-checks a maintainer's decline against the reviewed code, writes the summary comment, optionally labels the PR, answers maintainer replies/mentions in PR threads, and persists maintainer finding feedback (👍/👎 / reply heuristics) for a future learnings pipeline | `ReviewOrchestrator`, `ReviewDispatcher`, `DiffBudgetPlanner`, `FindingPipeline`, `AutoReviewRateLimiter`, `ReviewDiffFormatter`, `FollowUpAnalyzer`, `FindingFeedbackCaptureService`, `FindingFeedbackService`, `PrSummaryGenerator`, `PrLabeler`, `MaintainerReplyService`, `MaintainerReplyDispatcher`, `PrImprovementService`, `PatchCoverage`, `ConfigKeyContextResolver`, `RebuttalContradiction`, `SummarySurfaceDeduplicator`, `VerdictBuilder` | +| `review/ai/` | The LangChain4j layer: streams or batches model responses, parses findings, runs a second pass to verify them, applies generation/reasoning customizers, and writes conversational replies | `PrReviewer`, `AiReviewService`, `ChatModelCustomizers`, `FindingVerifier`, `FindingVerificationService`, `ReviewResponseParser`, `ReplyAssistant`, `TruncatedResponseSalvager`, `FindingVerifierPrompts` | +| `github/` | Talks to the GitHub REST and GraphQL APIs: app auth, pull requests, reviews, check runs, comments, labels, reactions (create + list), and reading the repo instructions file | `GitHubAuthClient`, `GitHubReviewClient`, `GitHubCheckRunClient`, `GitHubLabelClient`, `GitHubReactionClient`, `InstructionsResolver`, `GitHubWriteRetry` | +| `dashboard/` | The live UI backend: OAuth login (in-memory sessions), WebSocket broadcaster (`review.stream` / `review.batch`), review session persistence, and finding-feedback aggregates | `AuthResource`, `DashboardSessionStore`, `SessionEventBroadcaster`, `ReviewSessionRepository`, `DashboardResource` | +| `config/` | Wiring: the outbound HTTP client, the review thread pool, typed config, active-model settings (caps, generation params), fail-fast startup validation, and the shared bot-identity used to recognize the bot's own activity | `HttpClientProducer`, `ReviewExecutorProducer`, `ThrillhouseConfig`, `ActiveModelSettings`, `StartupConfigValidator`, `BotIdentity` | +| `frontend/` | The Next.js dashboard, built to a static export and served by Quarkus | — | + +## Notes + +PR reviews carry inline comments and suggestions; check runs carry pass/fail +status for branch protection (no inline annotations on the check run itself). + +**AI call budget** — a review that reports findings makes **two** model calls +by default: the review call plus a skeptical verification pass +(`FindingVerifier`) that re-sends the diff and each candidate finding, dropping +or downgrading what it can't confirm. It fails open — a verifier error keeps +the original findings, so a broken verifier can never block a review. Under +token-aware budgeting on large PRs this becomes N batch review calls + N +per-batch verification calls + one summary call. `REVIEW_VERIFIER_ENABLED=false` +skips only the AI pass (a deterministic hedging-language guard still runs) and +trades cost for more false positives. Expect two model spans per flagged +single-call review (or N+N+1 under budgeting) in the traces and in the +dashboard's session totals. Multi-call reviews do not stream tokens to the +dashboard; they emit `review.batch` progress events instead. Batches run +concurrently on virtual threads; a failed batch is retried once after the +parallel pass completes. + +**Cost ceiling** — `REVIEW_MAX_TOKENS_PER_REVIEW` bounds the tokens one review may +spend across every call it makes, counting retries, the verifier and the summary. +Once reached, remaining batches are disclosed as not reviewed by name and the +summary degrades to counts rather than making further calls. `0`, the default, +leaves it unbounded. The summary, the verifier and maintainer replies run on a +separate `concise` model binding with its own response cap +(`REVIEW_CONCISE_MAX_OUTPUT_TOKENS`) and its own reasoning effort, so they never +share a cap sized for batch review output. + +**Coverage honesty** — a file the review never read does not pass silently. A +file GitHub reported with changes but no patch text, a file that did not fit any +batch, and a file whose batch call failed are each disclosed by name and withhold +APPROVE. A response the model cut at its length cap keeps the findings that +completed before the cut rather than being discarded whole. + +**Patch coverage as review context** — when a PR's CI publishes a coverage +report, `PatchCoverage` reads the changed lines it does not cover and gives them +to the review, so new code with no test behind it can be named as such. Off +unless `REVIEW_PATCH_COVERAGE_ENABLED` is set. + +**Repository-supplied configuration** — `.github/thrillhousebot.yml` carries a +repository's own ignore globs and path-scoped review instructions, read from the +default branch and cached for five minutes. Ignore globs are additive to the +deployment list; a repository can narrow its own review scope but cannot restore +a file the deployment excludes. Every failure mode (missing file, invalid YAML, +unexpected shape, uncompilable glob) is logged and skipped, leaving the +deployment configuration in force. + +**Write pacing** — content-creating GitHub calls are spaced process-wide by +`GITHUB_WRITE_MIN_INTERVAL` so a burst of comments never reaches the secondary +rate limit in the first place, with `GITHUB_WRITE_MAX_WAIT` capping how long any +one caller waits. + +Each AI call is bounded by `AI_TIMEOUT` (LangChain4j) and +`thrillhousebot.review.ai-timeout-seconds`. Cost and token metrics come from +OpenTelemetry. OAuth login sessions are opaque IDs in cookies with tokens kept +server-side; review history persists in the database. Maintainer finding +feedback (reactions and reply heuristics) is documented in +[Finding feedback](https://devops-thiago.github.io/ThrillhouseBot/feedback/) +(source: [docs/FEEDBACK.md](https://github.com/devops-thiago/ThrillhouseBot/blob/main/docs/FEEDBACK.md)). See +[SECURITY.md](https://github.com/devops-thiago/ThrillhouseBot/blob/main/SECURITY.md) +for the reporting process. + +## Adding an AI provider + +There is no provider-specific code. The model is reached through LangChain4j's +OpenAI-compatible client, so a new provider is configuration: point `AI_BASE_URL` +and `AI_MODEL` at it. Add a `thrillhousebot.ai.pricing.<model>.*` pair for cost +tracking (without it the bot warns once and flags sessions as "no pricing" +instead of `$0`). Optionally set `thrillhousebot.ai.models.<model>.*` for the +model's input cap and generation parameters, and `AI_REASONING_ENABLED` / +`AI_REASONING_EFFORT` when the model supports reasoning. See the +[provider table](https://devops-thiago.github.io/ThrillhouseBot/providers/) and +the [configuration reference](https://devops-thiago.github.io/ThrillhouseBot/configuration/). + + diff --git a/website/src/content/docs/0.6.1/commands.md b/website/src/content/docs/0.6.1/commands.md new file mode 100644 index 00000000..b4943fe9 --- /dev/null +++ b/website/src/content/docs/0.6.1/commands.md @@ -0,0 +1,96 @@ +--- +slug: 0.6.1/commands +title: Commands +description: Drive the bot directly from a PR with comment commands. +--- + + + +Drive the bot directly from a PR by commenting one of these. Each also accepts the +mention form, e.g. `@Thrillhousebot review`. The bot acknowledges every command +instantly with a 👀 reaction on your comment while the work runs in the background; +a conversational `@thrillhousebot` mention (no command word) gets an answer instead, +not a reaction. + +| Command | What it does | Access | +|---|---|---| +| `/help` | List the available commands | anyone | +| `/review` | Run (or re-run) a full review of the PR | write | +| `/summary` | Post the PR summary if it isn't already on the PR — regenerates it if the comment was deleted, otherwise no-op | write | +| `/describe` | Suggest an improved PR title and description generated from the diff, as a comment to copy in (never overwrites the PR) | write | +| `/changelog` | Draft a CHANGELOG entry for the PR from the diff (Added/Changed/Fixed/Security…), as a comment to copy into `CHANGELOG.md` (never commits) | write | +| `/add-docs` | Generate docstrings/inline docs for the symbols changed in the PR, posted as committable suggestions (or a note with the drafted docs when a multi-line declaration can't be pinned to a single diff hunk) | write | +| `/improve` | Run a whole-PR improvement pass over the diff and post the improvements as committable suggestions (with copy-paste blocks for the ones that can't be pinned to the diff) | write | +| `/generate-tests` | Propose unit tests for the code the PR changed, as a comment with one ready-to-paste code block per test file (never commits) | write | +| `/resolve` | Resolve ThrillhouseBot's outstanding finding threads on the PR | write | +| `/pause` | Silence the bot on the PR | write | +| `/resume` | Re-enable the bot on a paused PR | write | +| `@thrillhousebot resolved <path>:<line> — <title>` | Close a previous finding that has no review thread to reply on, so it stops holding approval (see **Clearing a finding with no thread** under Configuration) | write | + +**Access** — every command except `/help` requires the commenter to hold write access to +the repository (or to be named in +`THRILLHOUSEBOT_REVIEW_MANUAL_TRIGGER_ALLOWED_LOGINS`), since reviews spend the operator's +AI budget. + +**`@thrillhousebot resolved`** — a directive, not a slash command: it has no `/resolved` +form, and it is read by the *next* review rather than acted on immediately. The bot replies +straight away to say what that review will evaluate — and, when the comment names no +`path:line` at all, to say plainly that nothing will be cleared, so a mistyped locator shows +up immediately instead of as a review that changes nothing. It is a statement, never a +question: `@thrillhousebot resolved?` is asking, not deciding, and clears nothing. Do not +confuse it with `/resolve`, which resolves GitHub review threads and does nothing to a +finding that never opened one. Its access check is the commenter's GitHub +`author_association` on that comment — `OWNER`, `MEMBER` or `COLLABORATOR` — and +`THRILLHOUSEBOT_REVIEW_MANUAL_TRIGGER_ALLOWED_LOGINS` does *not* extend it. + +**Pause** — while a PR is paused, ThrillhouseBot skips automatic reviews on new commits, +ignores `/review`, `/summary`, `/describe`, `/changelog`, `/add-docs`, `/improve` and +`/generate-tests`, and does not answer `@thrillhousebot` mentions (it replies once to say it is +paused). `/resume` lifts the pause. +`/help` and `/resolve` keep working while paused. + +**`/describe` and `/changelog`** — both read the whole change set rather than the first +`REVIEW_MAX_DIFF_LINES` of it. The changed files are packed into batches that each fit +`REVIEW_MAX_INPUT_TOKENS`, one model call per batch, and the per-batch results are then reduced +to a single answer: `/describe` composes the partial descriptions into one coherent title and +description, `/changelog` merges the candidate entries into one entry. That reduce step costs one +extra model call, reserved out of `REVIEW_MAX_AI_CALLS` and spent only when the PR actually needed +more than one batch, so a run never exceeds the same ceiling as one review. Any file the budget +could not cover is named in a partial-coverage note under the suggestion. + +**`/add-docs`** — on demand, the bot reads the diff and proposes documentation comments for +the public symbols changed in the PR, honoring the repository instructions and each file's +language. Each suggestion is a committable `suggestion` block placed on the symbol's +declaration (spanning the whole signature when it wraps), so it only inserts docs without +rewriting code. When a multi-line declaration can't be pinned to a single diff hunk, the bot +posts a note with the drafted docs to add manually instead of a committable suggestion. It +spends AI budget per run; operators can turn it off with `REVIEW_ADD_DOCS_ENABLED=false`. + +**`/improve`** — on demand, the bot runs an improvement pass over the whole PR and proposes +concrete changes the author can commit: clearer naming, dead or duplicated code, simpler +control flow, missing error handling, avoidable work in loops, and gaps in the tests covering +the change. It is deliberately separate from `/review`: `/review` looks for defects, +`/improve` proposes better code even when nothing is broken. Like a review, the pass is +token-budgeted rather than line-capped: the changed files are packed into batches that each fit +`REVIEW_MAX_INPUT_TOKENS`, one model call per batch, so a long diff only loses coverage once it +exceeds the whole budget. Each improvement whose quoted code anchors onto the diff is posted as +an inline committable `suggestion` block on the lines it replaces; the rest are listed as +copy-paste blocks in the run's summary comment, together with a partial-coverage note naming +any file the budget could not cover. Nothing is ever committed for you. It spends AI budget per +run — at most `REVIEW_MAX_AI_CALLS` model calls, the same ceiling as one review — and operators +can turn it off with `REVIEW_IMPROVE_ENABLED=false`. + +**`/generate-tests`** — on demand, the bot reads the diff and proposes unit tests for the +behavior the PR added or changed, in the test framework the project already uses. A proposed +test is usually a whole new file, which has no diff line for GitHub to anchor a committable +`suggestion` block to, so each one is posted as a code block headed by the path it belongs at +— ready to paste into a new file, or to merge into an existing test file. Nothing is committed +and no file is edited. Like a review, the pass is token-budgeted rather than line-capped: the +changed files are packed into batches that each fit `REVIEW_MAX_INPUT_TOKENS`, one model call +per batch, and the per-batch proposals are unioned by path — so "nothing here warrants a test" +is never a verdict on code that was too far down a long diff to be read. Any file the budget +could not cover is named in a partial-coverage note. It spends AI budget per run — at most +`REVIEW_MAX_AI_CALLS` model calls, the same ceiling as one review — and operators can turn it +off with `REVIEW_GENERATE_TESTS_ENABLED=false`. + + diff --git a/website/src/content/docs/0.6.1/comparison.md b/website/src/content/docs/0.6.1/comparison.md new file mode 100644 index 00000000..6fd4c8ad --- /dev/null +++ b/website/src/content/docs/0.6.1/comparison.md @@ -0,0 +1,89 @@ +--- +slug: 0.6.1/comparison +title: How it compares +description: An honest look at where ThrillhouseBot sits next to other AI code-review tools. +--- + + + + +A quick, honest look at where ThrillhouseBot sits next to other AI code-review +tools. Facts verified June 2026 from the sources linked below; vendor +capabilities change, so check the source if a detail matters to you. + +The table covers ThrillhouseBot, [CodeRabbit][cr], the open-source +[PR-Agent][pra], [GitHub Copilot code review][cop], the [PRSense][prs] CLI, and +[Kit][kit] (cased-kit). PR-Agent's commercial hosted sibling, Qodo Merge, is +left out because its self-hosting and model details sit behind enterprise sales +and could not be verified from public docs. PRSense and Kit are included because +they overlap on self-hosting and bring-your-own-model workflows; they differ in +how reviews are triggered and how cost visibility is surfaced. + +| | ThrillhouseBot | CodeRabbit | PR-Agent | Copilot review | PRSense | Kit | +|---|---|---|---|---|---|---| +| License | Apache-2.0 | Proprietary | Apache-2.0 [^pra-lic] | Proprietary | Apache-2.0 [^prs-lic] | MIT [^kit-lic] | +| Self-host | Yes | Enterprise only, 500+ seats [^cr-sh] | Yes | Models no; self-hosted runners yes [^cop-run] | Yes (CLI) [^prs] | Yes (CLI / Actions) [^kit] | +| Bring your own model | Any OpenAI-compatible endpoint | Yes: OpenAI, Azure OpenAI, Bedrock, Anthropic [^cr-llm] | Yes, via OpenAI-compatible / LiteLLM | No, GitHub-managed | Yes [^prs] | Yes [^kit] | +| Local models (Ollama) | Yes | No [^cr-llm] | Yes, with config caveats | No | Yes [^prs] | Yes [^kit] | +| Cost / token dashboard | Built-in web UI | No | No | GitHub billing only | Token counts in CLI only [^prs] | Per-review cost in CLI [^kit] | +| Footprint | ~50 MB native binary | SaaS or self-hosted container | Python app / container | SaaS plus Actions minutes [^cop-bill] | Node.js CLI [^prs] | Python app [^kit] | +| Cost model | Free; you pay your own API usage | Freemium | Free | Paid [^cop-bill] | Free; you pay your own API usage | Free; you pay your own API usage | + +## Where ThrillhouseBot fits + +Among the tools in the table above, ThrillhouseBot is the only one that combines +a GitHub App (webhook-driven reviews with inline PR comments), a built-in web +dashboard for cost and token analytics, token-budgeted map-reduce reviews for +large PRs, and a small native footprint, all under an OSI-approved license. If you want reviews to run on your own infrastructure +against a local Ollama model so that no code leaves your network, and you want +ongoing cost visibility in a dashboard rather than per-run CLI output, that is +the niche it targets. + +CodeRabbit and Copilot are more polished hosted products with broader reach. +ThrillhouseBot reviews GitHub pull requests only, with no GitLab or Bitbucket +support, and there is no managed hosting option: you run it yourself. + +PR-Agent, PRSense, and Kit are the closest in spirit for self-hosting with your +own model. PR-Agent is the most established open-source GitHub review bot in this +set. PRSense emphasizes grounded findings tied to the diff and ships as a CLI. +Kit adds rich repository context, local diff review, and per-run cost output in +the terminal or CI logs. None of those three ship a GitHub App plus web +dashboard in one package the way ThrillhouseBot does. + +Pick CodeRabbit or Copilot if you want a hosted product and don't need to bring +your own model. Pick PR-Agent, PRSense, or Kit if you prefer CLI or workflow +integration. Pick ThrillhouseBot if you want a GitHub App with automatic reviews, +a live dashboard, and a small native binary. + +[cr]: https://www.coderabbit.ai/ +[pra]: https://github.com/qodo-ai/pr-agent +[cop]: https://docs.github.com/en/copilot/concepts/agents/code-review +[prs]: https://prsense.org/ +[kit]: https://kit.cased.com/pr-reviewer/ + +[^pra-lic]: PR-Agent was moved to a community-owned GitHub organization and + relicensed under Apache-2.0 in April 2026. +[^cr-sh]: CodeRabbit docs: "The self-hosted option is only available for + CodeRabbit Enterprise customers with 500 user seats or more." + <https://docs.coderabbit.ai/self-hosted/github> +[^cr-llm]: Self-hosted CodeRabbit requires your own LLM credentials for OpenAI, + Azure OpenAI, AWS Bedrock, or Anthropic; its docs do not list local models + or Ollama. <https://docs.coderabbit.ai/self-hosted/github> +[^cop-run]: Copilot code review uses GitHub-managed models; you cannot supply + your own. It can run on self-hosted or larger GitHub-hosted runners. + <https://docs.github.com/en/copilot/concepts/agents/code-review> +[^cop-bill]: From June 1, 2026, Copilot code review is billed as AI credits for + token use plus GitHub Actions minutes for the review infrastructure. + <https://github.blog/changelog/2026-04-27-github-copilot-code-review-will-start-consuming-github-actions-minutes-on-june-1-2026/> +[^prs]: PRSense ships as the `@prsense/cli` npm package (Apache-2.0). Reviews + run locally or in CI; output includes token counts but there is no web + dashboard. Supports Ollama and cloud providers. + <https://prsense.org/> · <https://www.npmjs.com/package/@prsense/cli> +[^prs-lic]: `@prsense/cli` is published under Apache-2.0 on npm. +[^kit]: Kit (cased-kit) is a MIT-licensed Python CLI and library. Reviews can + run from the terminal, against local diffs, or from GitHub Actions; each run + reports LLM cost in stdout, not in a separate dashboard. + <https://kit.cased.com/pr-reviewer/> · <https://github.com/cased/kit> +[^kit-lic]: cased-kit is published under MIT on PyPI and GitHub. + + diff --git a/website/src/content/docs/0.6.1/configuration.md b/website/src/content/docs/0.6.1/configuration.md new file mode 100644 index 00000000..c5178913 --- /dev/null +++ b/website/src/content/docs/0.6.1/configuration.md @@ -0,0 +1,470 @@ +--- +slug: 0.6.1/configuration +title: Configuration +description: Every environment variable the bot reads, with defaults. +--- + + + +Configuration is read from environment variables (see `.env.example`). Short +names (`AI_*`, `REVIEW_*`, `WEBHOOK_*`, ...) are explicit aliases; every other +`thrillhousebot.*` key is settable through the standard Quarkus env-var mapping +— uppercase with `.`/`-` replaced by `_` (e.g. `thrillhousebot.review.ignored-files` +→ `THRILLHOUSEBOT_REVIEW_IGNORED_FILES`). The AI variables are the ones you +will change per provider: + +| Variable | Purpose | Default | +|---|---|---| +| `AI_API_KEY` | API key for the AI provider | _(required)_ | +| `AI_BASE_URL` | OpenAI-compatible base URL | `https://api.deepseek.com/v1` | +| `AI_MODEL` | Chat model name | `deepseek-chat` | +| `AI_PROVIDER` | Provider label for telemetry (`gen_ai.provider.name`); derived from `AI_BASE_URL` when unset | _(derived)_ | +| `AI_TIMEOUT` | Per-request timeout | `300s` | +| `AI_REASONING_ENABLED` | Send a reasoning hint to reasoning-capable models; when `false` no reasoning parameter is sent and the provider default applies | `false` | +| `AI_REASONING_EFFORT` | Effort sent while enabled: `none`/`low`/`medium`/`high`/`xhigh`/`max` (`none` explicitly asks the model not to reason; `xhigh`/`max` are the extended tiers newer reasoning models expose above `high`); reasoning tokens are billed as output tokens | `low` | +| `AI_REASONING_EFFORT_CONCISE` | Effort for the fixed-shape calls on the `concise` model (final summary, finding verifier, replies), which do **not** follow `AI_REASONING_EFFORT`: reasoning tokens count against `REVIEW_CONCISE_MAX_OUTPUT_TOKENS`, so a high effort there lets the verifier reason its whole allowance away and return an empty response. Same accepted values; unset means `low`, lowered to `AI_REASONING_EFFORT` when that is set below `low` | `low` | +| `GITHUB_APP_ID` | GitHub App ID | _(required)_ | +| `GITHUB_PRIVATE_KEY` | GitHub App private key (PEM) | _(required)_ | +| `GITHUB_WEBHOOK_SECRET` | Webhook HMAC secret | _(required)_ | +| `GITHUB_BOT_LOGINS` | Comma-separated bot account login(s) the bot skips to avoid replying to itself; override when deployed under a different App slug (`<app-slug>[bot]`) | `thrillhousebot[bot],thrillhouse-bot[bot]` | +| `GITHUB_WRITE_MIN_INTERVAL` | Duration spacing two content-creating GitHub calls (comments, review comments, thread replies, reviews), shared process-wide. GitHub secondary-rate-limits rapid content creation and answers `403`; pacing keeps the bot inside that envelope instead of discovering it by rejection — its published guidance is no more than one such request per second. `0` disables pacing | `1s` | +| `GITHUB_WRITE_MAX_WAIT` | Duration ceiling on how long one caller waits for its content-creation slot. Past it the call goes out unpaced and the bounded backoff handles a refusal, so a long queue never parks a finished command | `60s` | +| `WEBHOOK_DEDUP_TTL` | Webhook deduplication time-to-live for GitHub redeliveries | `24h` | +| `THRILLHOUSEBOT_REVIEW_MANUAL_TRIGGER_ALLOWED_LOGINS` | Comma-separated allowlist of logins permitted to trigger manual `/review` without repo access | _(empty)_ | +| `MANUAL_TRIGGER_AUTH_TIMEOUT` | Upper bound on the manual-trigger write-access check on the webhook ACK thread; fails closed (denies) if GitHub is slower | `5s` | +| `ACK_REACTION_TIMEOUT` | Upper bound on the 👀 command-ack reaction on the webhook ACK thread; the wait is abandoned (reaction may land late) if GitHub is slower | `3s` | +| `AUTO_REVIEW_MIN_INTERVAL` | Minimum interval between automatic reviews of the same PR — pushes within the window are skipped silently, even on a new head SHA (in-memory, per replica). A manual `/review` always bypasses; unset or `0` reviews every push | `0` (disabled) | +| `REVIEW_CI_GATING` | How strictly CI status factors into APPROVE: `strict` holds approval while required CI is pending, failing, or unreadable (fail-closed, safest); `warn` allows APPROVE but notes CI uncertainty in the summary/check; `off` skips CI entirely (findings-only). Prefer `strict` unless flaky CI or incomplete required-context resolution makes soft modes necessary | `strict` | +| `WEBHOOK_SKIP_DRAFTS` | Skip auto-review while a PR is a draft (reviewed once marked ready / on later pushes) | `false` | +| `WEBHOOK_REQUIRED_LABELS` | Comma-separated labels; only auto-review PRs carrying at least one (case-insensitive) | _(empty — no gate)_ | +| `WEBHOOK_EXCLUDED_LABELS` | Comma-separated labels; skip auto-review of PRs carrying any (wins over required) | _(empty)_ | +| `WEBHOOK_BASE_BRANCHES` | Comma-separated globs; only auto-review PRs whose base branch matches one (e.g. `main,release/*`). Globs are gitignore-style: `*` does **not** cross `/`, so use `**` to span slashes (`**` alone matches every branch) | _(empty — all branches)_ | +| `WEBHOOK_IGNORED_BASE_BRANCHES` | Comma-separated globs; skip auto-review of PRs whose base branch matches one (wins over allowlist; same `*`/`**` rule — match nested branches with `**`, e.g. `dependabot/**`) | _(empty)_ | +| `REVIEW_VERIFIER_ENABLED` | Second, skeptical AI pass that re-checks each finding against the diff before posting, dropping or downgrading what it can't confirm (see [AI call budget](#ai-call-budget)); fails open — a verifier error keeps the original findings | `true` | +| `REVIEW_DECLINE_RECHECK_ENABLED` | Re-check a maintainer's decline against the reviewed code before a prior finding is recorded "justified" (see [Re-checking declines](#re-checking-declines)); the finding stays open for one more round only when the reviewed diff plainly contradicts the stated reason. `false` makes a maintainer reply close the finding unconditionally | `true` | +| `REVIEW_BLOCKING_STRICTNESS` | When findings escalate to `REQUEST_CHANGES`: `balanced` (CRITICAL/HIGH + HIGH confidence), `strict` (any CRITICAL/HIGH), or `lenient` (CRITICAL + HIGH confidence only). See [Blocking strictness](#blocking-strictness) | `balanced` | +| `REVIEW_CONVERSATIONAL_REPLIES_ENABLED` | Answer `@thrillhousebot` mentions in PR threads (including finding replies) with an AI reply | `true` | +| `REVIEW_ADD_DOCS_ENABLED` | Allow the on-demand `/add-docs` command to generate docstrings as committable suggestions | `true` | +| `REVIEW_IMPROVE_ENABLED` | Allow the on-demand `/improve` command to run a whole-PR improvement pass and post committable suggestions | `true` | +| `REVIEW_GENERATE_TESTS_ENABLED` | Allow the on-demand `/generate-tests` command to propose unit tests for the changed code | `true` | +| `REVIEW_DIAGRAM_ENABLED` | Include an opt-in Mermaid control-flow diagram in the PR summary | `false` | +| `REVIEW_PATCH_COVERAGE_ENABLED` | Feed patch coverage into the review context: the added lines the repository's own coverage report records as never executed (see [Repository configuration](#repository-configuration)). Only takes effect for a repository that names its coverage artifact in `.github/thrillhousebot.yml` | `false` | +| `REVIEW_FOLLOW_UP_SUMMARY_ENABLED` | Post a short delta comment on follow-up reviews with the new-finding, resolved, and still-open counts. Only the first review posts the full summary; a follow-up pass with no delta (nothing new, nothing resolved) posts nothing | `false` | +| `REVIEW_LARGE_PR_NUDGE_ENABLED` | Add a note to the PR summary when a large PR's review opened **no inline finding** — it may be genuinely clean, or the pass may have been shallow — pointing at `/review` and `/improve`. Costs no extra AI call and never changes the verdict; a PR under both thresholds below is unaffected | `false` | +| `REVIEW_LARGE_PR_NUDGE_MIN_FILES` | Changed files at or above which the nudge applies (PR-level total, so ignored files still count). `0` switches this dimension off | `20` | +| `REVIEW_LARGE_PR_NUDGE_MIN_CHANGED_LINES` | Changed lines (additions + deletions) at or above which the nudge applies; either dimension triggers it on its own. `0` switches this dimension off — with both at `0` the nudge never fires | `1000` | +| `REVIEW_MAX_INPUT_TOKENS` | Per-call input-token budget for review, `/improve`, `/describe` and `/changelog` calls; large PRs are split into batches that each fit it. Bounded by the active model's input cap (see [Per-model AI settings](#per-model-ai-settings)). `0` disables token budgeting | `48000` | +| `REVIEW_OUTPUT_BUFFER_TOKENS` | Tokens reserved out of the input budget for the model's response | `8192` | +| `REVIEW_CONCISE_MAX_OUTPUT_TOKENS` | Response cap (`max_tokens`) for the fixed-shape/short AI calls — the final summary of a multi-call review, the finding verifier, and maintainer replies — which run on the `concise` named model so they don't share a cap sized for batch review output (see [Per-model AI settings](#per-model-ai-settings)). Hitting it surfaces as a truncation error naming this variable, never as a silently cut summary; set it empty to drop the cap and use the provider default | `8192` | +| `REVIEW_MAX_AI_CALLS` | Cap on AI calls per review (batch calls plus the final summary call), per `/describe` and `/changelog` run (batch calls plus one reduce call, spent only when the PR needed more than one batch), and per `/improve`, `/generate-tests` or `/add-docs` run (batch calls only — their results are merged locally); files that still don't fit are reported by name as omitted | `6` | +| `REVIEW_TOKEN_SAFETY_MARGIN` | Fraction of the input budget actually used, absorbing token-estimate error | `0.9` | +| `REVIEW_MAX_TOKENS_PER_REVIEW` | Ceiling on the tokens one review may consume across every AI call it makes — actual input+output as the provider reports them, counting retries and the final summary call, where `REVIEW_MAX_AI_CALLS` only counts planned calls. Once reached no further review call is made: remaining batches are disclosed by name as not reviewed (the verdict holds and the summary names the ceiling as the reason) and the summary degrades to a counts-only rendering that keeps the findings already paid for. `0` disables the ceiling. Review path only — the on-demand commands keep their own call cap | `0` | +| `REVIEW_MAX_DIFF_LINES` | Line cap on single-call diff renders (replies, base comparison, budgeting-disabled review). Token-budgeted reviews and the batched commands — `/improve`, `/describe`, `/changelog`, `/generate-tests`, `/add-docs` — ignore it (the planner owns coverage by tokens); `0` disables the cap | `5000` | +| `THRILLHOUSEBOT_REVIEW_MAX_REVIEW_COMMENTS` | Maximum inline comments posted per review; findings over the cap are surfaced in the summary instead of dropped | `50` | +| `THRILLHOUSEBOT_REVIEW_MAX_AI_RETRIES` | Attempts per failed AI call before the review errors out | `5` | +| `THRILLHOUSEBOT_REVIEW_AI_RETRY_BASE_DELAY_MS` | Base delay of the exponential retry backoff, in milliseconds | `2000` | +| `THRILLHOUSEBOT_REVIEW_AI_TIMEOUT_SECONDS` | Client-side wait per AI streaming attempt; keep it >= `AI_TIMEOUT` so timed-out attempts don't leave orphaned provider streams | `300` | +| `THRILLHOUSEBOT_REVIEW_INSTRUCTIONS_FILE` | Repo-relative path of the per-repo instructions file read on each review | `.github/thrillhousebot.md` | +| `THRILLHOUSEBOT_REVIEW_IGNORED_FILES` | Comma-separated gitignore-style globs excluded from review — lockfiles, generated code, build output. `*` does not cross `/`; use `**` to span directories. Replaces (not extends) the default list, so re-include the defaults you still want | `**/pom.xml,**/package-lock.json,**/*.lock,**/*.generated.*,**/target/**` | +| `THRILLHOUSEBOT_REVIEW_REPO_CONFIG_ENABLED` | Let each repository extend the ignore list with globs of its own, scope review rules to a path, and name its coverage-report artifact, from `.github/thrillhousebot.yml` (see [Repository configuration](#repository-configuration)). Both are additive; set `false` to make the deployment list and the global instructions the only ones that count | `true` | +| `REVIEW_LABELS_ENABLED` | Opt in to context-aware PR labels (see [PR labels](#pr-labels)) | `false` | +| `REVIEW_LABELS_APPLY` | When labels are enabled, add them to the PR instead of only suggesting them in a comment | `false` | +| `REVIEW_LABELS_ALLOW_CREATE` | Allow the bot to create suggested labels that don't exist yet | `false` | +| `REVIEW_LABELS_MAX` | Maximum labels applied or suggested per PR | `3` | +| `GITHUB_CLIENT_ID` / `GITHUB_CLIENT_SECRET` | OAuth credentials for dashboard login | _(required for dashboard)_ | +| `DASHBOARD_URL` | Public dashboard URL (OAuth callback base) | `http://localhost:8080` | +| `DATASOURCE_DB_KIND` | `h2` or `postgresql`. Quarkus fixes the datasource kind at build time, so this picks the driver when the app is built, not when a prebuilt image starts — released images are built for PostgreSQL and ignore an `h2` value | `h2` (dev), `postgresql` (`%prod`) | +| `HTTP_CONNECT_TIMEOUT` | Outbound HTTP connect timeout (GitHub API, OAuth) | `10s` | +| `HTTP_REQUEST_TIMEOUT` | Outbound HTTP request timeout (GitHub API, OAuth) | `10s` | +| `WEBSOCKET_KEEPALIVE_MS` | Dashboard WebSocket keepalive interval in ms; `0` or negative disables it (and stale replay-buffer eviction) | `25000` | + +### AI call budget + +A review that reports findings makes **two** model calls by default, not one: +the review call itself plus a verification call that re-sends the diff and the +candidate findings, so budget roughly **2× tokens** per flagged review. On +large PRs under token-aware budgeting this becomes N batch review calls + N +per-batch verification calls + one summary call. Set +`REVIEW_VERIFIER_ENABLED=false` to skip only the AI verifier — cheaper, at the +cost of more false positives; a deterministic hedging guard still runs, and a +verifier failure never blocks the review (it fails open, keeping the original +findings). + +The on-request commands are budgeted the same way. `/improve`, `/describe`, +`/changelog` and `/generate-tests` each split a large PR into batches under +`REVIEW_MAX_INPUT_TOKENS` and spend one call per batch, capped by +`REVIEW_MAX_AI_CALLS`. `/describe` and `/changelog` additionally reserve one call +of that cap for the step that reduces the per-batch results to a single +description or entry, and only spend it when the PR needed more than one batch — +so a single-batch PR still costs exactly one call. `/improve` and +`/generate-tests` reserve nothing, because their reductions are assembled locally +(a union of suggestions, and a union of proposed test files deduplicated by +path). When the cap is reached before every file has been batched, the uncovered +files are named in the partial-coverage note rather than dropped silently. + +### Re-checking declines + +When a maintainer replies to a finding to decline it, the follow-up analysis +records that finding as **justified** and the bot moves on. A dismissal is a +claim, though, not ground truth — a correct finding can be closed by an +incorrect rebuttal, and the rebuttal often names the very mechanism that makes +the bug real ("it only runs after the webhook is acked, so there's no race" — +on an executor that starts a thread per event). + +`REVIEW_DECLINE_RECHECK_ENABLED=true` (the default) therefore traces a decline's +stated reason against the code the review actually saw. When the reviewed diff +**plainly contradicts** that reason, the finding is kept **open for one more +round** with a note quoting both the claim and the contradicting line, instead +of being recorded justified. It is deliberately conservative: + +- Trusting the maintainer is the default. A rebuttal about house style, intent, + accepted risk, or priority — anything not refutable from the code — is + respected, as is any premise whose supporting code is not in the diff. +- **One push-back, then defer.** The re-check only fires while the thread carries + a single maintainer reply; replying again always ends it, so the bot can never + keep re-opening the same finding round after round. +- The re-opened finding is never re-posted as a new comment — it stays tracked in + *Previous Findings Status*, so nobody is asked to answer the same comment twice. +- The override holds approval (`APPROVE` → `COMMENT`) exactly like any other + unresolved previous finding; it never invents a new blocking finding. + +Set it to `false` to make a maintainer's reply final, unconditionally. + +### Clearing a finding with no thread + +Replying on a finding's review thread is the usual way to close it — but a +**LOW**-confidence finding at **MEDIUM** or **LOW** risk never opens one. It is +listed under **Things to double-check** in the summary instead, so there is no +thread to reply on, while follow-up reviews keep reporting it unresolved and +holding approval (`APPROVE` → `COMMENT`). To close one, comment on the PR +conversation: + +``` +@thrillhousebot resolved src/main/java/com/example/Widget.java:42 — Missing null check +``` + +Write it as plain text in the comment — pasted back inside a code fence or +backticks it reads as documentation and does nothing (see the quoting rule +below). + +Closing a finding wrongly is worse than leaving it open, so the match is strict +and **when the naming is ambiguous the finding stays held**. All of the +following must hold: + +- **The comment states `@thrillhousebot resolved`.** `resolve` (the thread + command) is not it, and a mention alone is not it — an ordinary question about + a finding is engagement, not a decision. Nor is the interrogative: + `@thrillhousebot resolved?` *asks* whether a finding was fixed, so it clears + nothing even when the rest of the comment names one. A question mark anywhere + later is fine — only one straight after the directive words makes it a question. +- **You name the finding by *both* its `path:line` locator and its own content** + — its title, or its description when it has no title. Each **Things to + double-check** row already prints both, the title first and then the locator in + backticks, so copying the row is the reliable way to get them right. Naming only + one of the two clears nothing. Locators match whole, so `Widget.java:42` never + closes a different finding at `Widget.java:4`. +- **You hold write access.** The comment's GitHub `author_association` must be + `OWNER`, `MEMBER` or `COLLABORATOR`; a fork-PR author's or a drive-by + commenter's comment is ignored. The bot's own comments are ignored too — its + summary reproduces every finding verbatim. +- **You *use* the directive rather than quote it.** `@thrillhousebot resolved` + counts as an instruction only when those words are plain text. Marking them up + — as `` `@thrillhousebot resolved` ``, inside a fenced block, or on a `>` + quoted line — reads as documentation, so a comment that *explains* the feature + (the fenced example above, or a colleague pasting one) clears nothing. The + **locator and title may still be in backticks**, which is how the summary + prints them; only the directive words themselves may not be. +- **Quoted blocks do not count at all.** Blockquote lines and fenced code are + dropped before anything is matched, so GitHub's *Quote reply* on the summary — + which reproduces every double-check row — names no finding either. + +One comment may name several findings; each is matched independently, and one it +does not name stays open. A finding with neither a title nor a description can +never be named this way, so it stays held — fix it, or reply on its thread if it +has one. The clearing is applied by the next review, which records the finding +**resolved**. + +The bot answers the directive as soon as it sees it, but only with what is +knowable that early: it has no review loaded and no findings to match against, so +it says what the next review will evaluate rather than reporting an outcome. The +one exception is a directive naming no `path:line` at all — that provably clears +nothing, so the reply says so outright and shows the shape to use. A locator that +is present but wrong still gets the general reply, and the review is what reports +the finding still unresolved. + +**Conversation read ceiling.** A review reads the PR conversation in pages of +100, up to 10 pages — 1000 comments — so one review can never turn a runaway +thread into hundreds of API calls. GitHub serves these comments oldest first and +offers no reverse order on that endpoint, so on a PR past the ceiling the +**newest** comments are the ones left unread, and a directive among them will not +clear anything that round. The bot logs a warning naming the ceiling whenever it +is reached, so this shows up as a log line rather than as the feature quietly +doing nothing; push a commit to re-review, or reply on the finding's thread if it +has one. + +### Blocking strictness + +By default (`REVIEW_BLOCKING_STRICTNESS=balanced`), only **CRITICAL** or **HIGH** +risk findings that the model reports at **HIGH** confidence escalate the PR +review to `REQUEST_CHANGES` (and fail the check run). Medium/low-confidence +severity findings still post as comments with a neutral check. + +| Mode | Blocks merge when | +|---|---| +| `balanced` (default) | CRITICAL or HIGH risk **and** HIGH confidence | +| `strict` | CRITICAL or HIGH risk, **any** confidence | +| `lenient` | CRITICAL risk **and** HIGH confidence only | + +**Security-team recommendation:** use `strict` so a CRITICAL/HIGH finding cannot +slip through as a comment just because confidence was demoted. Be aware that +under `strict`, the finding verifier's confidence demotions (hedged claims → +medium/low) no longer prevent a merge block — only risk reduction or dropping +the finding does. Stay on `balanced` if you want verifier demotions to keep +speculative severity findings non-blocking. + +This knob controls the **review verdict** only. Where findings are posted +(inline thread vs summary) is separate confidence gating tracked in +[#105](https://github.com/devops-thiago/ThrillhouseBot/issues/105); when that +lands, low-confidence findings can move out of the inline stream without +changing these blocking rules. + +The app validates configuration at startup and **fails fast** if a required value +(`GITHUB_APP_ID`, `GITHUB_PRIVATE_KEY`, `GITHUB_WEBHOOK_SECRET`, `AI_API_KEY`) is missing or — for +the private key — not a valid PEM RSA key, naming every offending variable in one message instead of +surfacing later on the first webhook or review. Dashboard OAuth (`GITHUB_CLIENT_ID` / +`GITHUB_CLIENT_SECRET`) is optional: leave both unset and the dashboard login is simply disabled. + +Cost tracking uses per-model pricing keyed by the model name, for example: + +```properties +thrillhousebot.ai.pricing.deepseek-chat.input-per-1k=0.00014 +thrillhousebot.ai.pricing.deepseek-chat.output-per-1k=0.00028 +``` + +If you switch to a different `AI_MODEL`, add a matching +`thrillhousebot.ai.pricing.<model>.*` pair so the dashboard can compute cost. +Without an entry the bot still records tokens, but warns once and flags sessions +as "no pricing" instead of showing `$0`. + +### Per-model AI settings + +Model-specific settings live under `thrillhousebot.ai.models.<model>.*`, keyed +by the model name (the `AI_MODEL` value) like the pricing map. Only the active +model's entry is read, so you can keep entries for every model you use and +switch `AI_MODEL` freely: + +```properties +# Input hard cap. The effective review budget is min(REVIEW_MAX_INPUT_TOKENS, +# cap); models without an entry get a 128000 cap. +thrillhousebot.ai.models.deepseek-chat.max-input-tokens=64000 +# The model's total context window. On a shared window the prompt and the +# completion are both charged to it, so boot fails when max-input-tokens + +# max-output-tokens do not fit inside it. Omit it and the ceiling isn't checked. +thrillhousebot.ai.models.deepseek-chat.context-tokens=128000 +# Per-model overrides of REVIEW_OUTPUT_BUFFER_TOKENS / REVIEW_TOKEN_SAFETY_MARGIN +thrillhousebot.ai.models.deepseek-chat.output-buffer-tokens=8192 +thrillhousebot.ai.models.deepseek-chat.token-safety-margin=0.9 +# Generation parameters, sent on every chat call when set +thrillhousebot.ai.models.deepseek-chat.temperature=0.2 +thrillhousebot.ai.models.deepseek-chat.top-p=0.95 +thrillhousebot.ai.models.deepseek-chat.max-output-tokens=8192 +thrillhousebot.ai.models.deepseek-chat.frequency-penalty=0.1 +thrillhousebot.ai.models.deepseek-chat.presence-penalty=0.1 +thrillhousebot.ai.models.deepseek-chat.seed=42 +# Set true only when the provider really bills the response outside the context +# window (1M in with 384K out on top, rather than 384K carved out of the 1M) — +# it switches off both the reservation and the context-tokens ceiling +thrillhousebot.ai.models.some-separate-budget-model.separate-output-budget=true +``` + +Notes: + +- **`max-input-tokens` is a cap, not the budget.** `REVIEW_MAX_INPUT_TOKENS` + stays the spend knob; the per-model value keeps it from overshooting the + model's real window. To use a large-context model beyond 128k, raise both. + Startup logs a warning whenever the cap lowers your configured budget. +- **`context-tokens` is the window itself**, and declaring it is what lets the + bot refuse an impossible request instead of paying for one. On a shared + window the provider charges the prompt *and* the completion to that one + context, so boot fails when `max-input-tokens + max-output-tokens` exceed it, + and again when your effective budget (`REVIEW_MAX_INPUT_TOKENS` clamped by the + cap) plus the largest response cap in play — `max-output-tokens` or + `REVIEW_CONCISE_MAX_OUTPUT_TOKENS` — exceeds it. Without it, an over-large + pair is only discovered when the provider rejects every call for length. + It is optional: a model that doesn't declare one is simply not checked. +- **Quote keys with `.` or `/`** (`thrillhousebot.ai.models."gpt-5.5".…`), the + same rule as the pricing map. Override via env — hyphen-only keys use underscores + (`THRILLHOUSEBOT_AI_MODELS_DEEPSEEK_V4_PRO_MAX_INPUT_TOKENS=1000000`); dotted keys use the + quoted-key form (`THRILLHOUSEBOT_AI_MODELS__GPT_5_5__MAX_INPUT_TOKENS=256000`). + `application.properties` ships empty stubs for known models so SmallRye can + disambiguate hyphenated keys — [Quarkus env mapping](https://quarkus.io/guides/config-reference#environment-variables). + For a model without a stub, add an empty + `thrillhousebot.ai.models."<model>".max-input-tokens=` line (external + `application.properties` or `-D`) alongside the env var. +- **`top_k` is not available** on the OpenAI-compatible wire; it becomes + relevant only with native provider integrations. +- **`max-output-tokens` no longer caps every call.** The final summary of a + multi-call review, the finding verifier, and maintainer replies run on a + second model binding — the `concise` named model + (`quarkus.langchain4j.openai.concise.*`) — that points at the same provider, + credentials, and model through the same `AI_*` variables and follows the + active model's temperature tuning, but carries its own response cap, + `REVIEW_CONCISE_MAX_OUTPUT_TOKENS` (default `8192`), and its own reasoning + effort, `AI_REASONING_EFFORT_CONCISE` (default `low`). Those responses are + fixed-shape or short, so they don't need — and shouldn't be licensed to + spend — a cap sized for batch review output. The review itself and the + command generators (`/describe`, `/changelog`, `/add-docs`, `/improve`, + `/generate-tests`), whose outputs scale with the diff, stay on the default + model and its `max-output-tokens`. +- **Reasoning effort is per lane.** Reasoning tokens are billed as output and + count against the response cap, so on the `concise` model a high effort can + consume the whole allowance and leave no content — the verifier then reports + that it kept its findings unverified. That tail is variable-length, not a + size threshold, so raising `REVIEW_CONCISE_MAX_OUTPUT_TOKENS` only shifts the + odds. Keep `AI_REASONING_EFFORT_CONCISE` low (the default) and spend the + effort budget on `AI_REASONING_EFFORT`, which drives the review itself. +- **`max-output-tokens` vs `output-buffer-tokens`**: `max-output-tokens` is the + hard response-length cap sent to the provider; `output-buffer-tokens` only + reserves input-budget headroom for the map-reduce budgeter. On a shared-window + model, keep the buffer at least as large as the output cap so a response the + model is allowed to produce always has reserved room — set both when capping + output. Boot fails if you don't. +- **`separate-output-budget`** (default `false`) says which contract the model is + on. Left off, prompt and completion share one window: the budgeter reserves + `output-buffer-tokens` out of the input budget, and the buffer must cover + `max-output-tokens`. Set it `true` for a model that publishes a response + allowance *on top of* its input window rather than inside it — then the + budgeter stops reserving (the response never draws on the diff budget), the + buffer no longer has to cover the cap, and the completion stops counting + against `context-tokens`. Getting it wrong is expensive in one direction and + unbootable in the other, so it is explicit rather than inferred: a + 384000-token cap on a 1M window silently costs ~40% of every call's diff + budget if the model is wrongly marked shared — while marking a genuinely + shared model separate turns off every guard and the provider rejects the + calls instead, which is how `deepseek-v4-flash` shipped its wrong pair. + Verify against the provider's own documented window before setting it. +- **`seed`** is a best-effort determinism hint (same seed + same parameters aims + for the same sampling) on providers that support it; unsupported providers + ignore it. For deterministic reviews, prefer a low `temperature` first. +- **Generation-parameter validation** happens at boot: temperature must be in + `[0, 2]`, `top-p` in `(0, 1]`, penalties in `[-2, 2]`, token counts positive — + a typo in any entry (even an inactive model's) fails startup with a message + naming the key. + + + + + +## Repository configuration + +The instructions file (`.github/thrillhousebot.md`) is prose for the model. +Structured settings live in a separate, optional `.github/thrillhousebot.yml` +(`.github/thrillhousebot.yaml` also works) — kept apart on purpose, because the +instructions fallback chain may land on a file owned by another tool, and its whole +content is fed to the model as untrusted prose: + +```yaml +review: + # Extra paths this repository never wants reviewed, on top of the deployment default. + ignored-files: + - "docs/generated/**" + - "**/*.snap" + - "testdata/**" + + # Review rules for one path only, on top of the prose in .github/thrillhousebot.md + # (which keeps applying everywhere). + path-instructions: + - path: "payments/**" + instructions: | + Money is handled in integer cents; flag any floating-point arithmetic. + Every state change must be idempotent under retry. + - path: "**/generated/**" + instructions: "Generated code: style and naming findings do not apply." + + # Name of the workflow artifact holding this repository's JaCoCo XML coverage report. + # Only read when the deployment sets REVIEW_PATCH_COVERAGE_ENABLED=true. + coverage-artifact: "coverage-report" +``` + +**Precedence: the effective ignore list is the union of both — global ∪ per-repo.** +A file is skipped if it matches *either* the deployment-wide +`thrillhousebot.review.ignored-files` list *or* a glob the repository declared. A +repository can therefore take more files out of review scope, but never put back a +file the deployment excludes, and a repository that ships no config file gets the +global list exactly as before. Globs use the same gitignore-style syntax as the +global key (`*` does not cross `/`; use `**` to span directories). + +**Precedence: the review rules for a file are the global instructions plus every +matching path scope.** The prose in `.github/thrillhousebot.md` (or whichever file the +fallback chain lands on) applies to every file exactly as before. On top of that, each +`path-instructions` scope whose glob matches a changed file contributes its rules *for +that file only* — the model is shown each scope alongside the files it governs, so +`payments/` strictness is never carried over to generated code. Scopes are additive and +may overlap: a file matching two scopes gets both, in declaration order, and where a +scope and the global instructions conflict, the scope wins for its own files. A scope +matching nothing in the pull request is not sent at all, and a file the ignore list +already excluded is never scoped — ignore rules run first. Path globs use the same +syntax and the same matcher as `ignored-files`. + +**Patch coverage: `coverage-artifact` names a report, and nothing is assumed without +it.** The bot never builds the pull request, so it cannot measure coverage itself. When +the deployment sets `REVIEW_PATCH_COVERAGE_ENABLED=true` *and* a repository names an +artifact here, each review looks for that artifact on a **completed workflow run for the +exact head commit** (GitHub's `head_sha` filter), downloads it, and intersects the +report's never-executed lines with the lines the diff adds. The reviewer is then shown a +short "uncovered changed lines" list and told two things: changed logic nothing exercises +is reportable, and a correctness claim about such a line must not be softened by the +usual "but a test in this diff covers it" check — no test runs that line. + +For this to work the workflow must upload the report, e.g. + +```yaml +- run: ./mvnw clean test jacoco:report +- uses: actions/upload-artifact@v7 + with: + name: coverage-report # must match review.coverage-artifact + path: target/site/jacoco/jacoco.xml +``` + +Only JaCoCo XML is understood today. **A repository that names no artifact — the common +case — contributes nothing, and its review is exactly what it was before.** The same is +true when the run uploaded nothing by that name, the artifact has expired, the download +fails, or the report is in another format: the section is omitted rather than guessed at. +Nothing about coverage is ever inferred from the diff, and a line's *absence* from the +list is explicitly not evidence that a test covers it. Files the ignore list already +excluded are never reported as under-tested. + +The file is read from the repository's default branch on each review and cached for +five minutes. Everything about it fails soft: a missing file, invalid YAML, an +unexpected shape, an uncompilable glob, or a malformed `path-instructions` entry is +logged and skipped, leaving the global ignore list and the global instructions in force +— it never fails a review. A repository may declare at most 25 scopes, each with at most +4000 characters of rules; the rest is dropped with a warning. Operators who do not want +repositories adjusting their own review scope or rules can turn the whole mechanism off +with `THRILLHOUSEBOT_REVIEW_REPO_CONFIG_ENABLED=false`. + + + + + +## PR labels + +ThrillhouseBot can suggest context-aware labels (area, change type, risk) drawn +from the diff. The feature is **off by default**; turn it on with +`REVIEW_LABELS_ENABLED=true`. + +When enabled, the model is shown the repository's existing labels and picks the +few that best describe the PR — it only ever chooses from labels that already +exist, so it respects whatever label scheme the repo already uses. What happens +next depends on `REVIEW_LABELS_APPLY`: + +- `false` (default): the suggestions are posted as a one-line comment on the + first review, leaving the decision to a maintainer. +- `true`: the labels are added to the PR automatically. + +Set `REVIEW_LABELS_ALLOW_CREATE=true` to let the bot create a suggested label +that doesn't exist yet (off by default, so it never invents labels), and +`REVIEW_LABELS_MAX` to cap how many labels it applies or suggests (default `3`). +Labelling is best-effort — a failure here never blocks or fails the review. + + diff --git a/website/src/content/docs/0.6.1/contributing.md b/website/src/content/docs/0.6.1/contributing.md new file mode 100644 index 00000000..0053ede8 --- /dev/null +++ b/website/src/content/docs/0.6.1/contributing.md @@ -0,0 +1,137 @@ +--- +slug: 0.6.1/contributing +title: Contributing +description: Development setup and the CI bar for contributions. +--- + + + + +This project follows the [Contributor Covenant](https://github.com/devops-thiago/ThrillhouseBot/blob/main/CODE_OF_CONDUCT.md). By taking +part you agree to uphold it. + +## Where to start + +- **[GitHub Discussions](https://github.com/devops-thiago/ThrillhouseBot/discussions)** — questions, setup help, and general conversation. Start with the pinned [welcome post](https://github.com/devops-thiago/ThrillhouseBot/discussions/1) if you are new. +- Issues labeled [`good first issue`](https://github.com/devops-thiago/ThrillhouseBot/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) are well-scoped and explained in detail. +- Issues labeled [`help wanted`](https://github.com/devops-thiago/ThrillhouseBot/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) are larger but ready to be picked up. +- For bugs and feature requests, use the [issue templates](https://github.com/devops-thiago/ThrillhouseBot/issues/new/choose). For larger changes, open an issue first so we can discuss the approach before you invest time. + +## Development setup + +Prerequisites: **Java 25+**, **Node.js 22+** (dashboard only), **Docker** (native builds only). Maven is bundled via the wrapper. + +Follow the [README Quick Start](https://github.com/devops-thiago/ThrillhouseBot#quick-start) for cloning, credentials, dev mode, and webhook forwarding — it is the single source of truth for setup commands. Contributor-specific extras: + +```bash +cd frontend && npm install && npm run dev # dashboard with hot reload +``` + +## Before you open a PR + +Run the Java verification locally before opening a PR: + +```bash +./mvnw spotless:apply # google-java-format; CI runs spotless:check +./mvnw verify # tests + JaCoCo coverage gate + SpotBugs +``` + +If you changed the dashboard, also run `cd frontend && npm ci && npm run test && npm run build`. + +To exercise the UI without a backend, run `cd frontend && npm run dev:mock`. +CI additionally runs Dependency Review (required), SonarCloud, Trivy, and a Docker +build check on pull requests — see **Dual-gate merge policy** below. +To build a disposable test image for a branch or PR (JVM or native, without +touching `latest`), use the **Docker test image** workflow in Actions +(`.github/workflows/docker-test-image.yml`). + +The bar, enforced by CI: + +- **All tests pass** — and new code comes with tests. Test behavior, not implementation: prefer asserting observable outcomes over `assertDoesNotThrow`, and avoid reflection on private members (relax to package-private instead if a test genuinely needs the seam). +- **Coverage doesn't drop** — JaCoCo, Codecov patch coverage, and the SonarCloud quality gate all run on every PR. +- **SpotBugs clean** at `effort=Max`/`threshold=Low`. If you hit a false positive, prefer restructuring; document any exclusion in `config/spotbugs-exclude.xml` with a justification comment. +- **No new Sonar issues** — the quality gate requires an A reliability/security rating on new code. + +## Dual-gate merge policy + +ThrillhouseBot's LLM review and the repo's static CI gates are **complementary**, not substitutes. Merge only when **both** are green (or explicitly waived by a maintainer with a written reason on the PR). + +| Gate | What it catches | Required on this repo | +|------|-----------------|------------------------| +| **Static** | Dependency CVEs/license regressions ([Dependency Review](https://github.com/devops-thiago/ThrillhouseBot/blob/main/.github/workflows/dependency-review.yml)), filesystem CVEs (Trivy), format/tests/frontend, SpotBugs/Sonar/CodeQL | Yes — `format`, `test`, `frontend`, `trivy`, and `dependency-review` are required status checks on `main`/`develop` | +| **ThrillhouseBot** | Diff narrative, incomplete fixes, framework-context issues static tools miss | Soft gate — wait for the **ThrillhouseBot Review** check / posted review when the App is installed; do not merge solely because CI is green if the bot flagged open threads | + +Optional third signal: Cursor Bugbot (or similar) may run on PRs. It is **not** a merge requirement here — useful when present, never a replacement for the two gates above. + +This policy does **not** fold linters into the LLM prompt ([#34](https://github.com/devops-thiago/ThrillhouseBot/issues/34)); that work stays separate. The static gate is the CI safety net for supply-chain and compile-time classes of bug the bot can miss. + +### When the gates disagree + +Maintainers triage; do not "average" the signals away. + +| Static | ThrillhouseBot | What to do | +|--------|----------------|------------| +| Red | Green / quiet | **Fix or formally suppress the static finding.** LLM silence is not evidence the CVE is safe. Prefer a real version bump; if the advisory does not apply to this codebase, document the hold with the file the failing tool actually reads — Dependency Review: `allow-ghsas` or `.github/dependency-review-config.yml`; Trivy: `.trivyignore`; OpenSSF Scorecard / osv-scanner: `osv-scanner.toml` (Jackson GHSA pattern in [#308](https://github.com/devops-thiago/ThrillhouseBot/pull/308)). | +| Green | Red / open threads | **Address or refute the bot findings** in the PR discussion before merge. Static green does not clear logic/copy/incomplete-fix issues. | +| Red | Red | Clear the **static** gate first (often blocks merge already), then resolve bot threads. | +| Same area, conflicting severity | — | Prefer the **static** tool for dependency/CVE/license facts; prefer the **bot** for intent, call-site context, and "did the PR actually finish the fix?" Prefer neither blindly — leave a short maintainer note on the PR. | + +Waivers (rare): only a maintainer may merge with a red soft gate or a documented static suppression, and the PR must record who waived what and why. + +## Commit messages + +The project uses [Conventional Commits](https://www.conventionalcommits.org/): `feat:`, `fix:`, `perf:`, `test:`, `docs:`, `ci:`, `deps:`. One logical change per commit; explain the *why* in the body when it isn't obvious. + +## Architecture + +See the [architecture overview](https://devops-thiago.github.io/ThrillhouseBot/architecture/) +(source: [docs/ARCHITECTURE.md](https://github.com/devops-thiago/ThrillhouseBot/blob/main/docs/ARCHITECTURE.md)). Package flow: +`webhook/` → `review/` (`review/ai/`) → `github/` → `dashboard/` (`frontend/`). + +## Adding an AI provider + +There is no provider-specific code to write. The model is reached through +LangChain4j's OpenAI-compatible client, so a new provider is configuration: point +`AI_BASE_URL` and `AI_MODEL` at the endpoint, and add a matching +`thrillhousebot.ai.pricing.<model>.input-per-1k` / `.output-per-1k` pair in +`application.properties` if you want the dashboard to track its cost. The +[README provider table](https://github.com/devops-thiago/ThrillhouseBot#provider-support) lists the ones that are known +to work. + +## Prompt eval corpus + +Changes to the review or verifier prompts (`PrReviewPrompts`, `FindingVerifierPrompts`) +should be checked against the labeled regression corpus in +`src/test/resources/evalcorpus/` before they ship. Each case directory pins a real +dogfood outcome — a `case.json` spec plus `diff.txt` in the exact format the review +pipeline sends to the model: + +- **verifier** cases feed a candidate finding through the second-pass audit and assert + the expected verdict (`confirmed` / `downgraded` / `rejected`); +- **generator** cases run the first-pass review prompt over a diff and assert that a + finding matching the case's keywords is (`must-find`) or is not (`must-not-find`) + raised on the target file. + +The corpus schema is validated by `EvalCorpusTest` in every build. The live suite is +opt-in — it calls the configured AI provider: + +```bash +QUARKUS_LANGCHAIN4J_OPENAI_API_KEY=<key> ./mvnw test -Peval -Dtest=PromptEvalTest +``` + +Point `AI_BASE_URL` / `AI_MODEL` at the provider you want to evaluate (defaults apply +otherwise). Each case is sampled `-Deval.samples` times (default 3) and judged by +majority; `-Deval.tolerated` (default 0) allows a known-unfixed label — one tracked by +an open prompt-hardening issue — to fail without blocking unrelated prompt work. + +To add a case, create a new directory under `evalcorpus/` with `case.json` and +`diff.txt` (see an existing case for the shape). Source new cases from resolved PR +review threads: a refuted false positive becomes `expectedVerdicts: ["rejected"]`, a +confirmed true positive `["confirmed"]`, and note the provenance in `why`. + +## Reporting security issues + +Please **do not** open a public issue — see +[SECURITY.md](https://github.com/devops-thiago/ThrillhouseBot/blob/main/SECURITY.md). + + diff --git a/website/src/content/docs/0.6.1/feedback.md b/website/src/content/docs/0.6.1/feedback.md new file mode 100644 index 00000000..7ca56467 --- /dev/null +++ b/website/src/content/docs/0.6.1/feedback.md @@ -0,0 +1,93 @@ +--- +slug: 0.6.1/feedback +title: Finding feedback +description: Data model, privacy, and retention for maintainer finding feedback signals. +--- + + + + +ThrillhouseBot records lightweight maintainer signals about review findings so a +future cross-review learnings store ([#38](https://github.com/devops-thiago/ThrillhouseBot/issues/38)) +has training data. This is the precursor shipped for +[#324](https://github.com/devops-thiago/ThrillhouseBot/issues/324); it does **not** +yet inject preferences into review prompts. + +## Why poll instead of a reaction webhook? + +GitHub Apps do not receive a `reaction` webhook event. The bot therefore lists +👍 (`+1`) and 👎 (`-1`) on finding comments via the +[Reactions REST API](https://docs.github.com/en/rest/reactions/reactions) when: + +1. A human **replies** on an inline review thread (`pull_request_review_comment` + with `in_reply_to_id`), or +2. A **follow-up review** already loaded inline comments — every bot finding-root + comment across prior rounds is scanned (capped, ordered by comment id), not + only findings from the immediately previous AI response. + +Capture is best-effort and never fails the webhook `200` or the review. + +## Signals + +| Signal | Source | Meaning | +|--------|--------|---------| +| `useful` | `reaction` (`+1`) | Maintainer marked the finding comment 👍 | +| `not_useful` | `reaction` (`-1`) | Maintainer marked the finding comment 👎 | +| `not_useful` | `reply_heuristic` | Reply body matched a conservative phrase (`not useful`, `false positive`, `noise`, 👎, `:-1:`) | + +Only comments that carry the hidden `<!-- thrillhousebot:finding=N -->` marker are +eligible. The bot's own reactions (e.g. 👀 command ack) are ignored. + +## Data model + +Table `finding_feedback` (Hibernate schema-update; no Flyway): + +| Column | Type | Notes | +|--------|------|-------| +| `id` | bigint | Panache / sequence PK | +| `repository` | string | `owner/repo` | +| `prNumber` | int | PR on that repository | +| `githubCommentId` | bigint | Finding root review-comment id | +| `findingIndex` | int (nullable) | 1-based index from the marker | +| `signal` | string | `useful` or `not_useful` | +| `source` | string | `reaction` or `reply_heuristic` | +| `reactorLogin` | string | GitHub login only (lower-cased) | +| `githubReactionId` | bigint (nullable) | Unique when present (idempotent re-poll) | +| `createdAt` | instant | Insert time | + +Unique constraints: + +- `githubReactionId` (when non-null) — reaction redeliveries / re-polls +- `(githubCommentId, reactorLogin, signal, source)` — one logical event per actor + +## Privacy + +Stored PII is limited to the **GitHub login** already present on webhook and API +payloads. No email, display name, IP, or reaction text beyond the fixed emoji +content codes (`+1` / `-1`) is persisted. Finding title/description are not +copied into this table. + +## Retention + +Rows are retained for the lifetime of the deployment database. There is no +automatic purge. Operators may `DELETE` rows or drop the table when +decommissioning an installation. Uninstalling the GitHub App does not currently +auto-delete feedback rows (same posture as `ReviewSession` history). + +## Aggregation API (ContextProvider seam) + +`FindingFeedbackService.summarize(repository)` and `summarizeAll()` return +per-repo `useful` / `not_useful` counts for a future `ContextProvider`. The +dashboard exposes the same aggregates at `GET /api/dashboard/feedback` (session +cookie required; optional `?repository=owner/repo`). + +## Notable classes + +- `FindingFeedback` / `FindingFeedbackRepository` / `FindingFeedbackService` +- `FindingFeedbackCaptureService` — poll + heuristics +- `GitHubReactionClient.listReviewCommentReactions` +- `WebhookController` — schedules capture on review-thread replies +- `ReviewOrchestrator` — capture pass on follow-up reviews + + + diff --git a/website/src/content/docs/0.6.1/getting-started.md b/website/src/content/docs/0.6.1/getting-started.md new file mode 100644 index 00000000..a6dd4e04 --- /dev/null +++ b/website/src/content/docs/0.6.1/getting-started.md @@ -0,0 +1,125 @@ +--- +slug: 0.6.1/getting-started +title: Getting started +description: Create the GitHub App, configure the bot, and start it with Docker Compose. +--- + +Everything you need to go from zero to a bot reviewing your pull requests: +create the GitHub App, configure the bot, and start it with Docker Compose. + +## Prerequisites + +- [Docker & Docker Compose](https://docs.docker.com/compose/install/) +- An API key for any [OpenAI-compatible provider](/ThrillhouseBot/providers/) +- A public hostname where GitHub can reach the bot (for local development, + a [Smee.io](https://smee.io/) channel works) + +## 1. Create the GitHub App + +The bot authenticates as a GitHub App, so the app must exist before the bot +starts. The easiest path is the +**[hosted installer](/ThrillhouseBot/install.html)**: type the public hostname +where the bot will run and click **Create ThrillhouseBot GitHub App** — the +page builds the app manifest for you and sends it to GitHub. No local server +needed. + +After GitHub creates the app: + +1. Note the **App ID** (app settings → About). +2. Generate a **private key** (downloads a `.pem` file). +3. Set a **webhook secret**. +4. Copy the **Client ID** and **Client secret** from *Identifying and + authorizing users* (needed for dashboard login). +5. Install the app on your account or organization. + +Alternatively, grab the `code` query parameter GitHub appends to the +post-creation redirect and generate `.env` automatically from the manifest +conversion response: + +```bash +gh api --method POST /app-manifests/<code>/conversions \ + | java scripts/GenEnv.java --host <your-host> +``` + +:::note[Smee setups] +The hosted installer registers Smee webhooks at the channel root and the +OAuth callback at `http://localhost:8080/api/auth/callback`. If you use +`GenEnv.java`, don't pass the Smee URL as `--host` (that writes +`DASHBOARD_URL=https://<host>`); run it without `--host` and then set +`DASHBOARD_URL=http://localhost:8080` in the generated `.env` — dashboard +login only works when `DASHBOARD_URL` matches the registered callback. + +Webhooks land on the Smee channel, so also run the relay client to +forward them to the bot (keep it running alongside the bot): + +```bash +npx smee-client -u https://smee.io/YOUR_CHANNEL -t http://localhost:8080/api/webhook +``` +::: + +:::note[Manual registration instead] +Prefer to register the app by hand? Create it at +<https://github.com/settings/apps/new> with these settings: + +| Setting | Value | +|---|---| +| Webhook URL | `https://<your-host>/api/webhook` | +| Webhook Secret | Random string | +| Repository Permissions | Pull Requests: R/W, Checks: R/W, Contents: Read, Issues: R/W, Actions: Read, Commit Statuses: Read | +| Subscribe to Events | Pull Request, Issue comment, Pull request review comment | +| Identifying & authorizing users | Enabled (for dashboard login) | +| Callback URL | `https://<your-host>/api/auth/callback` | + +For a Smee channel, register the channel URL itself as the Webhook URL (no +`/api/webhook` suffix — Smee delivers only at the channel root) and +`http://localhost:8080/api/auth/callback` as the Callback URL, since OAuth +redirects happen in your browser against the local bot. +::: + +:::tip[Re-registering later] +Once the bot is running, `install.html` on the bot's own URL +(`https://<your-host>/install.html` behind a reverse proxy, or +`http://localhost:8080/install.html` when hitting it directly) builds the +manifest from the detected host automatically — handy for adding the app to +another account. Smee-based dev setups should re-register through the +[hosted installer](/ThrillhouseBot/install.html) instead: the bot's own page +registers the origin it's served from, without the Smee webhook-root handling. +::: + +## 2. Clone and configure + +```bash +git clone https://github.com/devops-thiago/ThrillhouseBot.git && cd ThrillhouseBot +cp .env.example .env +``` + +Edit `.env` with the credentials from step 1: + +| Variable | Value | +|---|---| +| `GITHUB_APP_ID` | From GitHub App settings → About | +| `GITHUB_PRIVATE_KEY` | The `.pem` downloaded when you generated a private key — on one line, newlines as `\n`, unquoted | +| `GITHUB_WEBHOOK_SECRET` | The webhook secret you set | +| `GITHUB_CLIENT_ID` | From app settings → Identifying and authorizing users | +| `GITHUB_CLIENT_SECRET` | From app settings → Identifying and authorizing users | +| `AI_API_KEY` | Your AI provider's API key | + +## 3. Start the bot + +```bash +docker compose up -d +``` + +The bot is running on `http://localhost:8080`. Point your reverse proxy at it +and you're done — the next pull request on an installed repository gets +reviewed automatically. + +## Next steps + +- Tune the bot with the + [configuration reference](/ThrillhouseBot/configuration/) — auto-review + triggers, labels, timeouts, and more. +- Drive it from a PR with the [comment commands](/ThrillhouseBot/commands/). +- Customize reviews per repository with a `.github/thrillhousebot.md` + instructions file (fallback chain: `.github/copilot-instructions.md` → + `CLAUDE.md` → `AGENTS.md` → `AGENT.md`). diff --git a/website/src/content/docs/0.6.1/index.md b/website/src/content/docs/0.6.1/index.md new file mode 100644 index 00000000..8309eb74 --- /dev/null +++ b/website/src/content/docs/0.6.1/index.md @@ -0,0 +1,78 @@ +--- +slug: 0.6.1 +title: ThrillhouseBot +description: Self-hosted AI pull-request reviewer — a GraalVM-native GitHub App built with Quarkus. +--- + +> **"Everything's coming up Thrillhouse!"** + +A self-hosted, GraalVM-native PR review bot, built as a GitHub App with Quarkus. +It reviews pull requests using any OpenAI-compatible chat API, so the review is +language-agnostic and you can pick the provider that suits you — including a +local Ollama model, so no code has to leave your network. + +![ThrillhouseBot approving a clean pull request](../../../assets/0.6.1/pr-approval.png) + +## Features + + + +- Reviews diffs for correctness, security, regressions, stale comments, and code quality +- Token-budgeted whole-PR review for large diffs — split into parallel map-reduce batches with omitted files named, not silently dropped +- Configurable auto-review triggers — skip drafts, gate on labels, or filter by base branch — plus an optional per-PR auto-review interval (`AUTO_REVIEW_MIN_INTERVAL`) when you want to cap spend on noisy PRs (off by default; use `/pause` to silence a PR) +- Inline code suggestions on review comments that you can apply with one click +- Every finding is tagged `critical`, `high`, `medium`, or `low` +- Follow-up reviews track whether earlier findings were addressed or justified +- Every finding can be closed by a maintainer: reply on its review thread, or — for one raised below the inline-posting bar, which has no thread — comment `@thrillhousebot resolved <path>:<line> — <title>` on the PR +- Maintainer 👍/👎 (and "not useful" replies) on finding comments are recorded for a future learnings pipeline — see [Finding feedback](https://devops-thiago.github.io/ThrillhouseBot/feedback/) +- Conversational replies: `@thrillhousebot` it in a PR thread or finding reply and the bot answers in context +- A summary comment on the first run, with a risk breakdown and a changed-files walkthrough +- Operable from the PR with comment commands — `/help`, `/review`, `/summary`, `/describe`, `/changelog`, `/add-docs`, `/improve`, `/generate-tests`, `/resolve`, `/pause`, `/resume` +- Live dashboard (Next.js) with a WebSocket activity feed, cost charts, and token tracking +- OpenTelemetry traces, token histograms, cost counters, and latency metrics +- Optional reasoning-effort dial and per-model generation/budget caps for OpenAI-compatible endpoints +- Reads per-repo instructions from `.github/thrillhousebot.md`, falling back to Copilot/Claude/Agents files +- Lets each repository add its own ignore globs in `.github/thrillhousebot.yml`, unioned with the deployment default, and scope extra review rules to a path glob +- Compiles ahead-of-time with GraalVM/Mandrel, so it starts fast and stays small + + + +## Where to go next + +- **[Getting started](/ThrillhouseBot/getting-started/)** — create the GitHub + App with the [hosted installer](/ThrillhouseBot/install.html) and run the bot + with Docker Compose. +- **[Commands](/ThrillhouseBot/commands/)** — drive the bot from a PR: + `/review`, `/describe`, `/changelog`, `/add-docs`, `/improve`, + `/generate-tests`, and more. +- **[Configuration](/ThrillhouseBot/configuration/)** — every environment + variable, with defaults. +- **[AI providers](/ThrillhouseBot/providers/)** — point the bot at the + OpenAI-compatible endpoint of your choice. +- **[Architecture](/ThrillhouseBot/architecture/)** — how a review flows + through the system. +- **[Finding feedback](/ThrillhouseBot/feedback/)** — maintainer 👍/👎 capture + for the learnings pipeline. +- **[How it compares](/ThrillhouseBot/comparison/)** — an honest look at where + ThrillhouseBot sits next to other AI code-review tools. +- **[Contributing](/ThrillhouseBot/contributing/)** — development setup and the + CI bar. + +## Dashboard + +The built-in dashboard (Next.js, served by the bot itself) shows summary cards, +a live activity feed that streams the model's output as a review runs, cost +charts by model, token breakdowns, and a paginated session history: + +![Dashboard Overview with summary cards, live model-output panel, and recent activity](../../../assets/0.6.1/live-streaming.png) + +## Community and license + +Questions and setup help belong in +[GitHub Discussions](https://github.com/devops-thiago/ThrillhouseBot/discussions); +bugs and feature requests in +[Issues](https://github.com/devops-thiago/ThrillhouseBot/issues/new/choose). + +Licensed under the +[Apache License 2.0](https://github.com/devops-thiago/ThrillhouseBot/blob/main/LICENSE) +(SPDX: `Apache-2.0`). diff --git a/website/src/content/docs/0.6.1/providers.md b/website/src/content/docs/0.6.1/providers.md new file mode 100644 index 00000000..4cf545cd --- /dev/null +++ b/website/src/content/docs/0.6.1/providers.md @@ -0,0 +1,30 @@ +--- +slug: 0.6.1/providers +title: AI providers +description: Point the bot at any OpenAI-compatible chat endpoint. +--- + + + +ThrillhouseBot talks to any endpoint that implements the OpenAI chat-completions +API. Point `AI_BASE_URL` and `AI_MODEL` at your provider of choice: + +| Provider | `AI_BASE_URL` | Example `AI_MODEL` | +|---|---|---| +| DeepSeek | `https://api.deepseek.com/v1` | `deepseek-chat` | +| OpenRouter | `https://openrouter.ai/api/v1` | `openai/gpt-4o-mini` | +| Alibaba Cloud (Model Studio) | `https://dashscope-intl.aliyuncs.com/compatible-mode/v1` | `qwen-plus` | +| OpenAI | `https://api.openai.com/v1` | `gpt-4o-mini` | +| Ollama (local) | `http://localhost:11434/v1` | `llama3.2` | + +The default is DeepSeek, used only because it is inexpensive; nothing in the bot +is tied to it. + + + +There is no provider-specific code in the bot — a new provider is just +configuration. See +[Adding an AI provider](/ThrillhouseBot/architecture/#adding-an-ai-provider) +in the architecture notes, and add a `thrillhousebot.ai.pricing.<model>.*` pair +(see [Configuration](/ThrillhouseBot/configuration/)) if you want cost tracking +for the model. diff --git a/website/src/content/versions/0.6.0.json b/website/src/content/versions/0.6.0.json new file mode 100644 index 00000000..3dd7a284 --- /dev/null +++ b/website/src/content/versions/0.6.0.json @@ -0,0 +1,36 @@ +{ + "sidebar": [ + { + "label": "Home", + "slug": "index" + }, + { + "label": "Getting started", + "slug": "getting-started" + }, + { + "label": "Commands", + "slug": "commands" + }, + { + "label": "Configuration", + "slug": "configuration" + }, + { + "label": "AI providers", + "slug": "providers" + }, + { + "label": "Architecture", + "slug": "architecture" + }, + { + "label": "How it compares", + "slug": "comparison" + }, + { + "label": "Contributing", + "slug": "contributing" + } + ] +} diff --git a/website/src/content/versions/0.6.1.json b/website/src/content/versions/0.6.1.json new file mode 100644 index 00000000..3dd7a284 --- /dev/null +++ b/website/src/content/versions/0.6.1.json @@ -0,0 +1,36 @@ +{ + "sidebar": [ + { + "label": "Home", + "slug": "index" + }, + { + "label": "Getting started", + "slug": "getting-started" + }, + { + "label": "Commands", + "slug": "commands" + }, + { + "label": "Configuration", + "slug": "configuration" + }, + { + "label": "AI providers", + "slug": "providers" + }, + { + "label": "Architecture", + "slug": "architecture" + }, + { + "label": "How it compares", + "slug": "comparison" + }, + { + "label": "Contributing", + "slug": "contributing" + } + ] +} diff --git a/website/versions.json b/website/versions.json index 89c517ee..efd1d747 100644 --- a/website/versions.json +++ b/website/versions.json @@ -1,8 +1,16 @@ { "current": { - "label": "v0.6.0" + "label": "v0.6.2" }, "versions": [ + { + "slug": "0.6.1", + "label": "v0.6.1" + }, + { + "slug": "0.6.0", + "label": "v0.6.0" + }, { "slug": "0.5.0", "label": "v0.5.0" From 01af8321442d022993409ed545958f538d77547b Mon Sep 17 00:00:00 2001 From: Thiago Gonzaga <thiago.gonzaga@icloud.com> Date: Fri, 14 Aug 2026 18:43:14 -0300 Subject: [PATCH 3/6] docs(changelog): record the 0.6.2 dependency bumps The Quarkus platform moved from 3.38.0 to 3.38.1 (#706) and actions/attest-build-provenance from 4.1.1 to 4.2.2 (#708) after this branch was cut. Both are merged in, so 0.6.2 releases on the same versions main carries. #707 is still open and is not included. --- .gitignore | 2 +- CHANGELOG.md | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 52efed58..1ad6bdad 100644 --- a/.gitignore +++ b/.gitignore @@ -54,5 +54,5 @@ website/node_modules/ website/dist/ website/.astro/ -# Local agent tooling, not part of the project +# Local tool config, not part of the project .claude/ diff --git a/CHANGELOG.md b/CHANGELOG.md index e04fb4e0..17c7120b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,11 @@ by the dogfood corpus. No configuration changes; upgrading is a redeploy. - **Mention-form commands follow the configured bot login** (#698): `TriggerDetector` builds the `@<bot> <command>` trigger patterns from `BotIdentity.mentionNames()`, so `@my-review-bot review` works on an install whose GitHub App runs under a custom login. The mention's `@` must open the comment or follow a non-word character, so an email local part never triggers a command. Slash forms and default-config behaviour are unchanged - **The injection-sink floor closes four residual defeater gaps** (#696): "Nothing escapes parameterization" and "Nothing escapes; the sanitizer runs on render" are read as the mitigations they assert, so the floor no longer over-fires on them. A do-supported mitigation carrying an adverb ("does always escape") defeats the floor. A modal absence claim ("Nothing can sanitize the value") registers and floors at high. A comma-coordinated asserted mitigation ("Nothing escapes, but the sanitizer runs on render") defeats the floor, while its denial twin ("...but the sanitizer is disabled") still floors +### Dependencies + +- Bumped the Quarkus platform from 3.38.0 to 3.38.1 (#706) +- Bumped `actions/attest-build-provenance` from 4.1.1 to 4.2.2 in the release workflow (#708) + ## [0.6.1] — 2026-08-13 Fixes for defects found after 0.6.0 shipped, most of them during the audit of From 3037e11c6b85a435e48b71a9ccbf6fcaf85edf47 Mon Sep 17 00:00:00 2001 From: Thiago Gonzaga <thiago.gonzaga@icloud.com> Date: Fri, 14 Aug 2026 18:55:39 -0300 Subject: [PATCH 4/6] docs(releasing): record the docs freeze and the github-pages tag policy The release doc described the tag-driven workflow and the bump-PR setting, but said nothing about the two things that made the docs site wrong in production. The docs freeze is manual. versions.json and the archived snapshots are not produced by CI, so skipping the step leaves the site serving the new version's pages under the old version's label. It has been missed at four cuts. The doc now names it in the release checklist and gives the commands, including taking the snapshot from the outgoing tag because the archive script expands the include markers at archive time, and the git status check that catches a restore resurrecting a file deleted since that tag. The github-pages environment must allow the tag ref. The Docs workflow deploys on release: published, which runs against the tag, so without a v* rule the deploy fails at its last step and the only way to publish is to dispatch from main, which serves main's docs and defeats the release-only trigger. The policy is now recorded with the error it produces and the command to inspect it. --- docs/RELEASING.md | 59 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 52849ae9..58a617c0 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -19,7 +19,64 @@ against an existing tag. The jobs run in order: 5. **bump-version** — opens a PR moving `main` to the next `-SNAPSHOT` version. To cut a release: update `CHANGELOG.md`, set the release version in `pom.xml`, -merge, then tag the merge commit `vX.Y.Z` and push the tag. +freeze the outgoing docs version (below), merge, then tag the merge commit +`vX.Y.Z` and push the tag. + +## Freezing the docs version + +The version picker on the docs site is driven by `website/versions.json`, and +each archived version is a snapshot under `website/src/content/docs/<slug>/`. +Neither is produced by CI, so **the freeze is a manual step in the release PR**. +Skipping it leaves the site serving the new version's docs under the old +version's label. It has been missed at four cuts so far (0.4.0, 0.5.0, 0.6.0 and +0.6.1), each time caught only at the following release. + +Take the snapshot of the version being *replaced*, from that version's own tag, +because `archive-docs-version.mjs` expands the `remarkInclude` markers at archive +time and would otherwise capture the working tree: + +```bash +git restore --source vX.Y.Z -- README.md CONTRIBUTING.md docs/ website/src/content/docs/ +cd website && npm run docs:archive -- X.Y.Z +git restore --source HEAD -- README.md CONTRIBUTING.md docs/ website/src/content/docs/ +``` + +Then set `current.label` in `website/versions.json` to the version being cut, and +confirm `npm run build` picks up the new pages. + +Check `git status` after the second restore: a restore from a tag brings back any +file deleted since that tag, so anything outside the new archive directory and +`versions.json` is a file the release should not be resurrecting. + +## Publishing the docs + +`.github/workflows/docs.yml` deploys the live site on `release: published` only, +so the site tracks releases rather than `main`. That trigger runs **against the +tag ref**, which makes the deploy depend on one repo setting: the `github-pages` +environment must allow the tag to deploy. + +Current policies, under **Settings → Environments → github-pages → Deployment +branches and tags**: + +``` +branch: main +tag: v* +``` + +Without the tag rule the deploy fails at the very last step with: + +> Tag "vX.Y.Z" is not allowed to deploy to github-pages due to environment +> protection rules. + +That is what happened to every release through 0.6.1, and the workaround — +dispatching the workflow from `main` — publishes `main`'s docs instead of the +release's, which is exactly what the release-only trigger exists to prevent. If +a deploy fails this way, fix the policy and re-run the workflow against the tag +rather than dispatching from `main`. Inspect the policies with: + +```bash +gh api repos/<owner>/<repo>/environments/github-pages/deployment-branch-policies +``` ## Automated version bump From 4a1137e3f00bf5fafcc3a08ec1ac74f1f9262c96 Mon Sep 17 00:00:00 2001 From: Thiago Gonzaga <thiago.gonzaga@icloud.com> Date: Fri, 14 Aug 2026 19:06:23 -0300 Subject: [PATCH 5/6] fix(website): stop the archive script hiding pages from the version sidebar The per-version sidebar is a hardcoded list in archive-docs-version.mjs kept in sync with astro.config.mjs by comment alone, and it had drifted: the Finding feedback page was added to the live sidebar but never here, so every archive taken since carried eight entries against nine or more pages. The archived feedback page was reachable only by direct URL in 0.4.0, 0.5.0, 0.6.0 and 0.6.1, and 0.4.0 also hid its review-quality evaluation page. The list now carries Finding feedback, and the drift cannot recur silently: a page with no entry aborts the archive before anything is written, naming the page, so the failure is a stopped release step rather than a quietly unnavigable page. Entries whose page is absent from the snapshot are dropped instead, which is what lets older versions archive without carrying entries for pages that did not exist yet. The four affected sidebars are repaired in place, with labels taken from each page's own frontmatter title so an archive keeps the wording it shipped with. 0.4.0 and 0.5.0 predate the website, so there is no per-tag config to restore them from. Verified both directions: a page with no entry exits 1 and leaves no partial archive, and a clean tree archives nine entries in sidebar order. Site builds with all internal links valid. --- website/scripts/archive-docs-version.mjs | 27 +++++++++++++++++++++--- website/src/content/versions/0.4.0.json | 8 +++++++ website/src/content/versions/0.5.0.json | 4 ++++ website/src/content/versions/0.6.0.json | 4 ++++ website/src/content/versions/0.6.1.json | 4 ++++ 5 files changed, 44 insertions(+), 3 deletions(-) diff --git a/website/scripts/archive-docs-version.mjs b/website/scripts/archive-docs-version.mjs index 33333b7c..296a80c6 100644 --- a/website/scripts/archive-docs-version.mjs +++ b/website/scripts/archive-docs-version.mjs @@ -21,7 +21,11 @@ const versionsMetaDir = join(websiteRoot, "src/content/versions"); const versionsPath = join(websiteRoot, "versions.json"); // Keep in sync with the sidebar in astro.config.mjs (starlight-versions stores -// a copy per archived release). +// a copy per archived release). A page archived with no entry here is +// unreachable from the version's navigation, so the archive aborts on one +// rather than writing a sidebar that silently hides it. Entries whose page is +// absent from the snapshot are dropped, which is how older versions archive +// cleanly. const SIDEBAR = [ { label: "Home", slug: "index" }, { label: "Getting started", slug: "getting-started" }, @@ -29,6 +33,7 @@ const SIDEBAR = [ { label: "Configuration", slug: "configuration" }, { label: "AI providers", slug: "providers" }, { label: "Architecture", slug: "architecture" }, + { label: "Finding feedback", slug: "feedback" }, { label: "How it compares", slug: "comparison" }, { label: "Contributing", slug: "contributing" }, ]; @@ -112,8 +117,24 @@ function listMarkdownFiles(dir) { }); } +const sources = listMarkdownFiles(docsDir); +const archivedSlugs = new Set( + sources.map((src) => relative(docsDir, src).replace(/\.mdx?$/, "")), +); + +const unlisted = [...archivedSlugs].filter((s) => !SIDEBAR.some((e) => e.slug === s)).sort(); +if (unlisted.length > 0) { + console.error(`Pages with no SIDEBAR entry: ${unlisted.join(", ")}`); + console.error( + "Archiving them now would leave them reachable only by direct URL. Add them to", + ); + console.error("SIDEBAR in this script (and to astro.config.mjs if missing), then re-run."); + process.exit(1); +} +const sidebar = SIDEBAR.filter((e) => archivedSlugs.has(e.slug)); + mkdirSync(destDocs, { recursive: true }); -for (const src of listMarkdownFiles(docsDir)) { +for (const src of sources) { const rel = relative(docsDir, src); const out = join(destDocs, rel); mkdirSync(dirname(out), { recursive: true }); @@ -136,7 +157,7 @@ if (existsSync(assetsDir)) { } mkdirSync(versionsMetaDir, { recursive: true }); -writeFileSync(destVersionConfig, `${JSON.stringify({ sidebar: SIDEBAR }, null, 2)}\n`); +writeFileSync(destVersionConfig, `${JSON.stringify({ sidebar }, null, 2)}\n`); console.log(`wrote ${relative(websiteRoot, destVersionConfig)}`); const versions = JSON.parse(readFileSync(versionsPath, "utf8")); diff --git a/website/src/content/versions/0.4.0.json b/website/src/content/versions/0.4.0.json index 3dd7a284..6a29fd49 100644 --- a/website/src/content/versions/0.4.0.json +++ b/website/src/content/versions/0.4.0.json @@ -24,6 +24,10 @@ "label": "Architecture", "slug": "architecture" }, + { + "label": "Finding feedback", + "slug": "feedback" + }, { "label": "How it compares", "slug": "comparison" @@ -31,6 +35,10 @@ { "label": "Contributing", "slug": "contributing" + }, + { + "label": "Review-quality evaluation", + "slug": "review-eval" } ] } diff --git a/website/src/content/versions/0.5.0.json b/website/src/content/versions/0.5.0.json index 3dd7a284..78217822 100644 --- a/website/src/content/versions/0.5.0.json +++ b/website/src/content/versions/0.5.0.json @@ -24,6 +24,10 @@ "label": "Architecture", "slug": "architecture" }, + { + "label": "Finding feedback", + "slug": "feedback" + }, { "label": "How it compares", "slug": "comparison" diff --git a/website/src/content/versions/0.6.0.json b/website/src/content/versions/0.6.0.json index 3dd7a284..78217822 100644 --- a/website/src/content/versions/0.6.0.json +++ b/website/src/content/versions/0.6.0.json @@ -24,6 +24,10 @@ "label": "Architecture", "slug": "architecture" }, + { + "label": "Finding feedback", + "slug": "feedback" + }, { "label": "How it compares", "slug": "comparison" diff --git a/website/src/content/versions/0.6.1.json b/website/src/content/versions/0.6.1.json index 3dd7a284..78217822 100644 --- a/website/src/content/versions/0.6.1.json +++ b/website/src/content/versions/0.6.1.json @@ -24,6 +24,10 @@ "label": "Architecture", "slug": "architecture" }, + { + "label": "Finding feedback", + "slug": "feedback" + }, { "label": "How it compares", "slug": "comparison" From 13cb1100a12bd92658f093b6b6133ff7928a651c Mon Sep 17 00:00:00 2001 From: Thiago Gonzaga <thiago.gonzaga@icloud.com> Date: Fri, 14 Aug 2026 19:08:11 -0300 Subject: [PATCH 6/6] docs(readme): scope the manual-trigger allowlist to the slash commands The Access paragraph said every command but /help takes write access or a login on THRILLHOUSEBOT_REVIEW_MANUAL_TRIGGER_ALLOWED_LOGINS, while the paragraph below it said the allowlist does not extend to @thrillhousebot resolved. Both sentences were on the same page and only the second matched the code, so a maintainer reading the general one would expect an allowlisted login to be able to clear a finding. The code splits the two paths cleanly. Every slash command goes through CommentCommandService.authorized to ManualReviewAuthorizer, which admits write access or an allowlisted login. The resolved directive goes through MaintainerReplyService to FollowUpAnalyzer.mayHoldWriteAccess, which reads author_association alone and never consults the allowlist; clearDirectiveUnauthorizedAck exists precisely to tell an allowlisted commenter that nothing will be cleared. The config table was wrong in the other direction, describing the key as permitting manual /review only. The allowlist gates /summary, /describe and /changelog on the same path. Both entries now say the same thing: slash commands yes, the directive no. The archived 0.6.0 and 0.6.1 copies keep the old wording, since an archive should read as the release shipped. --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 150a8445..3d08b187 100644 --- a/README.md +++ b/README.md @@ -99,10 +99,10 @@ not a reaction. | `/resume` | Re-enable the bot on a paused PR | write | | `@thrillhousebot resolved <path>:<line> — <title>` | Close a previous finding that has no review thread to reply on, so it stops holding approval (see **Clearing a finding with no thread** under Configuration) | write | -**Access** — every command except `/help` requires the commenter to hold write access to -the repository (or to be named in -`THRILLHOUSEBOT_REVIEW_MANUAL_TRIGGER_ALLOWED_LOGINS`), since reviews spend the operator's -AI budget. +**Access** — every slash command except `/help` requires the commenter to hold write access +to the repository, or to be named in `THRILLHOUSEBOT_REVIEW_MANUAL_TRIGGER_ALLOWED_LOGINS`, +since reviews spend the operator's AI budget. The allowlist covers the slash commands only: +the `@thrillhousebot resolved` directive always requires write access, as described below. **`@thrillhousebot resolved`** — a directive, not a slash command: it has no `/resolved` form, and it is read by the *next* review rather than acted on immediately. The bot replies @@ -288,7 +288,7 @@ will change per provider: | `GITHUB_WRITE_MIN_INTERVAL` | Duration spacing two content-creating GitHub calls (comments, review comments, thread replies, reviews), shared process-wide. GitHub secondary-rate-limits rapid content creation and answers `403`; pacing keeps the bot inside that envelope instead of discovering it by rejection — its published guidance is no more than one such request per second. `0` disables pacing | `1s` | | `GITHUB_WRITE_MAX_WAIT` | Duration ceiling on how long one caller waits for its content-creation slot. Past it the call goes out unpaced and the bounded backoff handles a refusal, so a long queue never parks a finished command | `60s` | | `WEBHOOK_DEDUP_TTL` | Webhook deduplication time-to-live for GitHub redeliveries | `24h` | -| `THRILLHOUSEBOT_REVIEW_MANUAL_TRIGGER_ALLOWED_LOGINS` | Comma-separated allowlist of logins permitted to trigger manual `/review` without repo access | _(empty)_ | +| `THRILLHOUSEBOT_REVIEW_MANUAL_TRIGGER_ALLOWED_LOGINS` | Comma-separated allowlist of logins permitted to run the slash commands without repo access; does not extend to the `@thrillhousebot resolved` directive, which always requires write access | _(empty)_ | | `MANUAL_TRIGGER_AUTH_TIMEOUT` | Upper bound on the manual-trigger write-access check on the webhook ACK thread; fails closed (denies) if GitHub is slower | `5s` | | `ACK_REACTION_TIMEOUT` | Upper bound on the 👀 command-ack reaction on the webhook ACK thread; the wait is abandoned (reaction may land late) if GitHub is slower | `3s` | | `AUTO_REVIEW_MIN_INTERVAL` | Minimum interval between automatic reviews of the same PR — pushes within the window are skipped silently, even on a new head SHA (in-memory, per replica). A manual `/review` always bypasses; unset or `0` reviews every push | `0` (disabled) |