@inharness-ai/claude4spec 1.0.20 → 1.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/c4s-brief-implementer/SKILL.md +6 -13
- package/CHANGELOG.md +13 -0
- package/dist/client/assets/{arc-qrIe4IVl.js → arc-Coa9fbDO.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-CF6sgG8n.js → architectureDiagram-3BPJPVTR-VJZcRMEN.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-Cf8Tx0VN.js → blockDiagram-GPEHLZMM-C7dU2lW1.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-BDkuMEyf.js → c4Diagram-AAUBKEIU-CG_BBm_5.js} +1 -1
- package/dist/client/assets/channel-D5gzBvo7.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-ChycTonk.js → chunk-2J33WTMH-BnS95YpK.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-BpUgWjxx.js → chunk-4BX2VUAB-COr8w3X3.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CeHg_yjT.js → chunk-55IACEB6-CxrIbZhB.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-BpxYq7ab.js → chunk-727SXJPM-DRchPPRe.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-bghkOtr6.js → chunk-AQP2D5EJ-_SfN7mED.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-4sXokGgd.js → chunk-FMBD7UC4-p2tIiP1D.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-DYQOCE5T.js → chunk-ND2GUHAM-B1mbl2hP.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-NkVuDlFD.js → chunk-QZHKN3VN-DBUpeqvS.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CT-amIxa.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CT-amIxa.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-1l4P4WRI.js → cose-bilkent-S5V4N54A-BBsY5aKD.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-CSQie-gR.js → dagre-BM42HDAG-b-vu4RC9.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-DME9ULoN.js → diagram-2AECGRRQ-j-DW9qSf.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-Dn1Rw5k5.js → diagram-5GNKFQAL-DHX_WYWQ.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-Duh_PNWR.js → diagram-KO2AKTUF-DxdQok_M.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-B7Q5pV60.js → diagram-LMA3HP47-BbTIX5c1.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-C0KL_RDd.js → diagram-OG6HWLK6-BQ9ODAlH.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-D5elfwSC.js → erDiagram-TEJ5UH35-6lwAL1y9.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-BHmjX-WI.js → flowDiagram-I6XJVG4X-ioSHb5-t.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-KvoGFbS2.js → ganttDiagram-6RSMTGT7-CXFQp9Nj.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DsZL8BfK.js → gitGraphDiagram-PVQCEYII-C1pVD_NQ.js} +1 -1
- package/dist/client/assets/index-DyAnw7YN.js +798 -0
- package/dist/client/assets/{index-zzILqHQN.js → index-JaAxQJXh.js} +1 -1
- package/dist/client/assets/{index-ClaVbrEF.js → index-hz5T_W2e.js} +1 -1
- package/dist/client/assets/{infoDiagram-5YYISTIA-DoQ6iSpJ.js → infoDiagram-5YYISTIA-C2Guev-g.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-akftyN0J.js → ishikawaDiagram-YF4QCWOH-D3v8VBb2.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-PPex4PiV.js → journeyDiagram-JHISSGLW-DX1AW_Ap.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-D114i3s1.js → kanban-definition-UN3LZRKU-CzXThvq2.js} +1 -1
- package/dist/client/assets/{linear-BuwQPJom.js → linear-CVw4gl5i.js} +1 -1
- package/dist/client/assets/{mermaid.core-CMX3GAvM.js → mermaid.core-C29eoXRj.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-ClBxWJju.js → mindmap-definition-RKZ34NQL-DEEGVQVA.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-hj5zVPj5.js → pieDiagram-4H26LBE5-Dme-VM6m.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-CRbR0G7M.js → quadrantDiagram-W4KKPZXB-CURFNo24.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-Dto4B70I.js → requirementDiagram-4Y6WPE33-DxMZWXME.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DyYP8rwY.js → sankeyDiagram-5OEKKPKP-BW64D4_P.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-C-mrSLrJ.js → sequenceDiagram-3UESZ5HK-BATRPm8Q.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-IoDlhAe6.js → stateDiagram-AJRCARHV-pgHVMnO3.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-szm_LIuD.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-DEXg3TEw.js → timeline-definition-PNZ67QCA-qBxJZPWd.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-CNu7LaT1.js → vennDiagram-CIIHVFJN-BZJK9hqJ.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-0hGvREmD.js → wardley-L42UT6IY-BobtgEXg.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-CVLz-xFz.js → wardleyDiagram-YWT4CUSO-DuWfX_-P.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-CFymKAcX.js → xychartDiagram-2RQKCTM6-DCw1iURo.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/core/plugin-host/entities-router.d.ts +2 -1
- package/dist/server/core/plugin-host/entities-router.js +16 -1
- package/dist/server/core/plugin-host/entities-router.js.map +1 -1
- package/dist/server/db/migrations/041_chat_thread_transagent.sql +22 -0
- package/dist/server/index.js +16 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/mcp/release-tools/index.d.ts +11 -0
- package/dist/server/mcp/release-tools/index.js +68 -5
- package/dist/server/mcp/release-tools/index.js.map +1 -1
- package/dist/server/mcp/release-tools/projection.d.ts +11 -2
- package/dist/server/mcp/release-tools/projection.js +36 -7
- package/dist/server/mcp/release-tools/projection.js.map +1 -1
- package/dist/server/mcp/release-tools/types.d.ts +39 -2
- package/dist/server/mcp/transagent-tools.d.ts +26 -0
- package/dist/server/mcp/transagent-tools.js +75 -0
- package/dist/server/mcp/transagent-tools.js.map +1 -0
- package/dist/server/routes/agent-turn.d.ts +9 -0
- package/dist/server/routes/agent-turn.js +58 -1
- package/dist/server/routes/agent-turn.js.map +1 -1
- package/dist/server/routes/briefs.js +12 -4
- package/dist/server/routes/briefs.js.map +1 -1
- package/dist/server/routes/chat.js +18 -0
- package/dist/server/routes/chat.js.map +1 -1
- package/dist/server/routes/plans.js +13 -0
- package/dist/server/routes/plans.js.map +1 -1
- package/dist/server/routes/threads.js +9 -2
- package/dist/server/routes/threads.js.map +1 -1
- package/dist/server/services/brief.d.ts +30 -8
- package/dist/server/services/brief.js +58 -28
- package/dist/server/services/brief.js.map +1 -1
- package/dist/server/services/chat-context.js +10 -6
- package/dist/server/services/chat-context.js.map +1 -1
- package/dist/server/services/chat.d.ts +12 -1
- package/dist/server/services/chat.js +56 -21
- package/dist/server/services/chat.js.map +1 -1
- package/dist/server/services/entity-indexer.js +21 -14
- package/dist/server/services/entity-indexer.js.map +1 -1
- package/dist/server/services/plan.d.ts +7 -1
- package/dist/server/services/plan.js +17 -4
- package/dist/server/services/plan.js.map +1 -1
- package/dist/server/services/transagent-dispatcher.d.ts +60 -0
- package/dist/server/services/transagent-dispatcher.js +147 -0
- package/dist/server/services/transagent-dispatcher.js.map +1 -0
- package/dist/server/skills/brief-author/SKILL.md +26 -17
- package/dist/server/workspace/project-context.js +2 -1
- package/dist/server/workspace/project-context.js.map +1 -1
- package/dist/shared/entities.d.ts +46 -3
- package/dist/shared/entities.js +1 -0
- package/dist/shared/entities.js.map +1 -1
- package/package.json +1 -1
- package/dist/client/assets/channel-CTF_J4I4.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-Dt9RLC8r.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Dt9RLC8r.js +0 -1
- package/dist/client/assets/index-DnLELaLA.js +0 -798
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BblFLijq.js +0 -1
|
@@ -49,27 +49,20 @@ If the brief is unclear — a missing detail, an ambiguous wording, a decision
|
|
|
49
49
|
you'd otherwise have to guess — you have two paths:
|
|
50
50
|
|
|
51
51
|
**Synchronous (preferred when available).** Ask the specification agent in the
|
|
52
|
-
same terminal and continue once you have an answer
|
|
52
|
+
same terminal and continue once you have an answer.
|
|
53
|
+
|
|
54
|
+
**Specyfikacja CLAUDE 4 SPEC leży w `.claude/skills/specyfikacja` (symlink), nie
|
|
55
|
+
w katalogu głównym repo — zawsze wskazuj ją flagą `--project`; NIE rób `cd` do
|
|
56
|
+
tego katalogu, bo `c4s` zgłosi `PROJECT_NOT_FOUND`.**
|
|
53
57
|
|
|
54
58
|
```bash
|
|
55
|
-
c4s ask "Brief nie precyzuje X — czy chodzi o A czy B?" --ct brief --brief <brief-slug>.md
|
|
59
|
+
c4s ask "Brief nie precyzuje X — czy chodzi o A czy B?" --ct brief --brief <brief-slug>.md --project .claude/skills/specyfikacja
|
|
56
60
|
```
|
|
57
61
|
|
|
58
62
|
Continue the same thread with `c4s ask "..." --thread <threadId>` (the
|
|
59
63
|
`threadId` is printed with the answer). This path requires `c4s` installed
|
|
60
64
|
*and* a running `npx claude4spec` server. When either is unavailable, skip it.
|
|
61
65
|
|
|
62
|
-
If `c4s ask` returns `PROJECT_NOT_FOUND` despite a running server, your cwd is
|
|
63
|
-
probably reached through a **symlink** (common for `.claude/skills/<name>`
|
|
64
|
-
projects): `c4s` resolves `process.cwd()` to the real path, which is NOT the one
|
|
65
|
-
registered in `~/.claude4spec/workspaces.json`. Pass the registered (symlink) path
|
|
66
|
-
explicitly — `--project` is run through `path.resolve`, which does NOT canonicalize
|
|
67
|
-
symlinks, so it matches the registry:
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
c4s ask "Brief nie precyzuje X — ..." --ct brief --brief <brief-slug>.md --project /abs/path/to/registered/skill-dir
|
|
71
|
-
```
|
|
72
|
-
|
|
73
66
|
**Asynchronous (always available).** If you cannot ask synchronously, proceed
|
|
74
67
|
with your best judgement and file a patch afterwards (step 4) so the
|
|
75
68
|
spec-author can fold the clarification into the next brief.
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.0.21] - 2026-06-22
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- Transagents — agents can now delegate work to nested child threads. A new `TransagentDispatcher` and `transagent-tools` MCP server manage parent→child thread relationships (migration `041`), and the client renders child activity in a dedicated `TransagentPanel` inside `ChatOverlay`, with `useChat` tracking child-thread start/complete state.
|
|
12
|
+
- Pagination and summary options for the `release-tools` MCP server — `release_list` and `release_show` accept `limit`/`offset`, and `release_diff` gains a `summaryOnly` mode that returns a light delta map (identifiers + operation types only, no full snapshots).
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
- `c4s-brief-implementer` skill now documents pointing `c4s ask` at the symlinked spec dir via `--project .claude/skills/specyfikacja` (and warns against `cd`-ing into it, which resolves to the real path → `PROJECT_NOT_FOUND`).
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- Chat thread-list over-fetch and frontend refetch storm. Server-side, `listThreads`/`forBrief`/`forPatch` drop the `LEFT JOIN chat_message + GROUP BY` (which aggregated `COUNT` over the full message table before `LIMIT`) for a correlated indexed `COUNT` subquery and a shared column list that omits the large `initial_system_prompt` blob — ~1962ms → ~10ms on a 506-thread/37k-message DB. `entity-indexer.indexAll` now rebuilds inside one transaction (~2s → ~117ms). Frontend uses a single shared `ThreadListProvider` with an in-flight guard, pagination, and a light `/entities/counts` aggregate replacing five full entity-list fetches.
|
|
19
|
+
|
|
8
20
|
## [1.0.20] - 2026-06-19
|
|
9
21
|
|
|
10
22
|
### Added
|
|
@@ -214,6 +226,7 @@ Initial public release.
|
|
|
214
226
|
- Acceptance Criteria entity and tooling.
|
|
215
227
|
- Briefs and patches workflow for spec-driven implementation.
|
|
216
228
|
|
|
229
|
+
[1.0.21]: https://github.com/InHarness/claude4spec/compare/v1.0.20...v1.0.21
|
|
217
230
|
[1.0.20]: https://github.com/InHarness/claude4spec/compare/v1.0.19...v1.0.20
|
|
218
231
|
[1.0.19]: https://github.com/InHarness/claude4spec/compare/v1.0.18...v1.0.19
|
|
219
232
|
[1.0.18]: https://github.com/InHarness/claude4spec/compare/v1.0.17...v1.0.18
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a0 as ln,a1 as an,a2 as H,a3 as q,a4 as B,a5 as un,a6 as y,a7 as tn,a8 as L,a9 as _,aa as rn,ab as o,ac as on,ad as sn,ae as fn}from"./mermaid.core-
|
|
1
|
+
import{a0 as ln,a1 as an,a2 as H,a3 as q,a4 as B,a5 as un,a6 as y,a7 as tn,a8 as L,a9 as _,aa as rn,ab as o,ac as on,ad as sn,ae as fn}from"./mermaid.core-C29eoXRj.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,C,a){var O=I-l,i=D-h,n=C-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*L(on(0,T*T*R-P*P)),j=(P*g-m*S)/R,z=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=yn,I=B(0),D=null,v=gn,A=dn,C=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,F=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(F>tn-y)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>y&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>y){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>y?(M*=t?1:-1,m+=M,g-=M):(S=0,m=g=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>y){var U=s*H(g),V=s*q(g),X=u*H(R),Y=u*q(R),E;if(F<an)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(fn((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(J,K),a.arc(0,0,s,m,g,!t)):a.moveTo(J,K),!(u>y)||!(P>y)?a.lineTo(N,Q):p>y?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|