aircana 4.2.0 → 4.4.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 88a6c73e9f844f63006c9dceb81c13966e44439daebe95d8b80dc43a0ff989fb
4
- data.tar.gz: 84025bb240a2dd785b0bb656cdf3687f701b08344484a3267570158fc5914e6e
3
+ metadata.gz: 13409388b12a773f23642e0b147b8c06237aaa5c80c1543508e379e738d1d9fd
4
+ data.tar.gz: d17a2b5ed044c4021e1a101feaf7c6df8d96b600b6389e14db553ed042a991cb
5
5
  SHA512:
6
- metadata.gz: a23dfe484aab695cab0cd7056cad1e50a1726b2e1253aadf86037d3657f26809e747b4787cc8c2c750bcb6073cf594e4c8b76040a02f3264ab20e5c43c1c245b
7
- data.tar.gz: ff518237a2fcb050342a4e73527f40bf7fc44235789f47155b3fd3b3de7c90deb67bca548dfc70a427c524bf1d2a97fe018cfe66f3c559d75d415eb041e98ddf
6
+ metadata.gz: 2aea24ee97bfe6ee52b3ace98894aec15e811fe94dcde8be8e91d21ac71aad0030a7781ea9421b83c82b57f5ff4257d3306a88bda9da7363270c03f60f84f2fa
7
+ data.tar.gz: ff33795e6d123b2bceaeb8edf155a24d63b2baa348bb7ebad4df79562a0593c4206da198de696f14ac74adeeb5b41d1fac4174416f6de86cd382a6d48292c954
data/.rspec_status CHANGED
@@ -1,189 +1,189 @@
1
1
  example_id | status | run_time |
2
2
  --------------------------------------------------------------- | ------ | --------------- |
3
- ./spec/aircana/cli/commands/init_spec.rb[1:1:1] | passed | 0.00981 seconds |
4
- ./spec/aircana/cli/commands/init_spec.rb[1:1:2] | passed | 0.00396 seconds |
5
- ./spec/aircana/cli/commands/init_spec.rb[1:2:1:1] | passed | 0.01071 seconds |
6
- ./spec/aircana/cli/commands/init_spec.rb[1:3:1] | passed | 0.00333 seconds |
7
- ./spec/aircana/cli/commands/init_spec.rb[1:3:2:1] | passed | 0.00279 seconds |
8
- ./spec/aircana/cli/commands/init_spec.rb[1:3:3:1] | passed | 0.00298 seconds |
9
- ./spec/aircana/cli/commands/init_spec.rb[1:3:4:1] | passed | 0.00325 seconds |
10
- ./spec/aircana/cli/commands/init_spec.rb[1:4:1] | passed | 0.00152 seconds |
11
- ./spec/aircana/cli/commands/init_spec.rb[1:4:2] | passed | 0.0014 seconds |
12
- ./spec/aircana/cli/commands/init_spec.rb[1:4:3] | passed | 0.00141 seconds |
13
- ./spec/aircana/cli/commands/init_spec.rb[1:4:4] | passed | 0.00139 seconds |
14
- ./spec/aircana/cli/commands/init_spec.rb[1:4:5] | passed | 0.00138 seconds |
15
- ./spec/aircana/cli/commands/init_spec.rb[1:5:1] | passed | 0.0028 seconds |
16
- ./spec/aircana/cli/commands/init_spec.rb[1:5:2] | passed | 0.00405 seconds |
17
- ./spec/aircana/cli/commands/init_spec.rb[1:5:3] | passed | 0.00467 seconds |
18
- ./spec/aircana/cli/commands/init_spec.rb[1:5:4] | passed | 0.00396 seconds |
19
- ./spec/aircana/cli/commands/kb_spec.rb[1:1:1:1] | passed | 0.00039 seconds |
20
- ./spec/aircana/cli/commands/kb_spec.rb[1:1:2:1] | passed | 0.00152 seconds |
21
- ./spec/aircana/cli/commands/kb_spec.rb[1:2:1] | passed | 0.0011 seconds |
22
- ./spec/aircana/cli/commands/kb_spec.rb[1:2:2] | passed | 0.00176 seconds |
23
- ./spec/aircana/cli/commands/kb_spec.rb[1:3:1] | passed | 0.0018 seconds |
24
- ./spec/aircana/cli/commands/kb_spec.rb[1:3:2] | passed | 0.00174 seconds |
25
- ./spec/aircana/cli/commands/kb_spec.rb[1:4:1:1] | passed | 0.00028 seconds |
26
- ./spec/aircana/cli/commands/kb_spec.rb[1:4:2:1] | passed | 0.00167 seconds |
27
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:1:1] | passed | 0.00071 seconds |
28
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:1:2] | passed | 0.0002 seconds |
29
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:1] | passed | 0.00023 seconds |
30
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:2] | passed | 0.00198 seconds |
31
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:3] | passed | 0.00114 seconds |
32
- ./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.00016 seconds |
33
- ./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.00015 seconds |
34
- ./spec/aircana/configuration_spec.rb[1:3:1] | passed | 0.00011 seconds |
35
- ./spec/aircana/configuration_spec.rb[1:4:1] | passed | 0.00008 seconds |
36
- ./spec/aircana/configuration_spec.rb[1:5:1] | passed | 0.00009 seconds |
37
- ./spec/aircana/configuration_spec.rb[1:6:1] | passed | 0.00008 seconds |
38
- ./spec/aircana/configuration_spec.rb[1:6:2] | passed | 0.00008 seconds |
39
- ./spec/aircana/configuration_spec.rb[1:7:1:1] | passed | 0.00023 seconds |
40
- ./spec/aircana/configuration_spec.rb[1:7:2:1] | passed | 0.0024 seconds |
3
+ ./spec/aircana/cli/commands/init_spec.rb[1:1:1] | passed | 0.01332 seconds |
4
+ ./spec/aircana/cli/commands/init_spec.rb[1:1:2] | passed | 0.00336 seconds |
5
+ ./spec/aircana/cli/commands/init_spec.rb[1:2:1:1] | passed | 0.00484 seconds |
6
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:1] | passed | 0.00274 seconds |
7
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:2:1] | passed | 0.00223 seconds |
8
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:3:1] | passed | 0.00244 seconds |
9
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:4:1] | passed | 0.00257 seconds |
10
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:1] | passed | 0.00167 seconds |
11
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:2] | passed | 0.00492 seconds |
12
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:3] | passed | 0.00162 seconds |
13
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:4] | passed | 0.00202 seconds |
14
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:5] | passed | 0.00159 seconds |
15
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:1] | passed | 0.00334 seconds |
16
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:2] | passed | 0.00409 seconds |
17
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:3] | passed | 0.00452 seconds |
18
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:4] | passed | 0.00407 seconds |
19
+ ./spec/aircana/cli/commands/kb_spec.rb[1:1:1:1] | passed | 0.00048 seconds |
20
+ ./spec/aircana/cli/commands/kb_spec.rb[1:1:2:1] | passed | 0.00141 seconds |
21
+ ./spec/aircana/cli/commands/kb_spec.rb[1:2:1] | passed | 0.002 seconds |
22
+ ./spec/aircana/cli/commands/kb_spec.rb[1:2:2] | passed | 0.002 seconds |
23
+ ./spec/aircana/cli/commands/kb_spec.rb[1:3:1] | passed | 0.00162 seconds |
24
+ ./spec/aircana/cli/commands/kb_spec.rb[1:3:2] | passed | 0.00169 seconds |
25
+ ./spec/aircana/cli/commands/kb_spec.rb[1:4:1:1] | passed | 0.00041 seconds |
26
+ ./spec/aircana/cli/commands/kb_spec.rb[1:4:2:1] | passed | 0.00178 seconds |
27
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:1:1] | passed | 0.00058 seconds |
28
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:1:2] | passed | 0.00032 seconds |
29
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:1] | passed | 0.00039 seconds |
30
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:2] | passed | 0.00175 seconds |
31
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:3] | passed | 0.00083 seconds |
32
+ ./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.00014 seconds |
33
+ ./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.00012 seconds |
34
+ ./spec/aircana/configuration_spec.rb[1:3:1] | passed | 0.00014 seconds |
35
+ ./spec/aircana/configuration_spec.rb[1:4:1] | passed | 0.00012 seconds |
36
+ ./spec/aircana/configuration_spec.rb[1:5:1] | passed | 0.00014 seconds |
37
+ ./spec/aircana/configuration_spec.rb[1:6:1] | passed | 0.00012 seconds |
38
+ ./spec/aircana/configuration_spec.rb[1:6:2] | passed | 0.00012 seconds |
39
+ ./spec/aircana/configuration_spec.rb[1:7:1:1] | passed | 0.00025 seconds |
40
+ ./spec/aircana/configuration_spec.rb[1:7:2:1] | passed | 0.00022 seconds |
41
41
  ./spec/aircana/configuration_spec.rb[1:7:3:1] | passed | 0.00021 seconds |
42
- ./spec/aircana/configuration_spec.rb[1:7:4:1] | passed | 0.0001 seconds |
43
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.00309 seconds |
44
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.00084 seconds |
45
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.00145 seconds |
46
- ./spec/aircana/contexts/confluence_spec.rb[1:1:2:1] | passed | 0.00026 seconds |
47
- ./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.00019 seconds |
48
- ./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.00018 seconds |
49
- ./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.00056 seconds |
50
- ./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.00051 seconds |
51
- ./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.00054 seconds |
52
- ./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.00051 seconds |
53
- ./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.00041 seconds |
54
- ./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.00033 seconds |
55
- ./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.00038 seconds |
56
- ./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.00039 seconds |
57
- ./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.00063 seconds |
58
- ./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.00041 seconds |
59
- ./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.00109 seconds |
60
- ./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.00089 seconds |
61
- ./spec/aircana/contexts/manifest_spec.rb[1:1:3] | passed | 0.00103 seconds |
62
- ./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed | 0.00118 seconds |
63
- ./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.00106 seconds |
64
- ./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.00135 seconds |
65
- ./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.0003 seconds |
66
- ./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.0011 seconds |
67
- ./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.00101 seconds |
68
- ./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.00102 seconds |
69
- ./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.0004 seconds |
70
- ./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.00098 seconds |
71
- ./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.00023 seconds |
72
- ./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.00024 seconds |
73
- ./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.00036 seconds |
74
- ./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.00021 seconds |
75
- ./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.00024 seconds |
76
- ./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.00024 seconds |
77
- ./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.0002 seconds |
78
- ./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.00139 seconds |
42
+ ./spec/aircana/configuration_spec.rb[1:7:4:1] | passed | 0.00013 seconds |
43
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.00376 seconds |
44
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.00103 seconds |
45
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.00246 seconds |
46
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:2:1] | passed | 0.00047 seconds |
47
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.00044 seconds |
48
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.00044 seconds |
49
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.00082 seconds |
50
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.00094 seconds |
51
+ ./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.00048 seconds |
52
+ ./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.0005 seconds |
53
+ ./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.00044 seconds |
54
+ ./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.00048 seconds |
55
+ ./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.00047 seconds |
56
+ ./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.00048 seconds |
57
+ ./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.00076 seconds |
58
+ ./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.00075 seconds |
59
+ ./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.00087 seconds |
60
+ ./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.00087 seconds |
61
+ ./spec/aircana/contexts/manifest_spec.rb[1:1:3] | passed | 0.00084 seconds |
62
+ ./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed | 0.00096 seconds |
63
+ ./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.0047 seconds |
64
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.00085 seconds |
65
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.00032 seconds |
66
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.00088 seconds |
67
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.00086 seconds |
68
+ ./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.00084 seconds |
69
+ ./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.00032 seconds |
70
+ ./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.00082 seconds |
71
+ ./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.00031 seconds |
72
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.0003 seconds |
73
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.00032 seconds |
74
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.00034 seconds |
75
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.00031 seconds |
76
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.00062 seconds |
77
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.00032 seconds |
78
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.00033 seconds |
79
79
  ./spec/aircana/contexts/manifest_spec.rb[1:6:8] | passed | 0.00032 seconds |
80
- ./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.00035 seconds |
81
- ./spec/aircana/contexts/manifest_spec.rb[1:6:10] | passed | 0.00572 seconds |
82
- ./spec/aircana/contexts/manifest_spec.rb[1:6:11] | passed | 0.00113 seconds |
83
- ./spec/aircana/contexts/manifest_spec.rb[1:6:12] | passed | 0.0009 seconds |
84
- ./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.00023 seconds |
85
- ./spec/aircana/contexts/web_spec.rb[1:2:1] | passed | 0.00021 seconds |
86
- ./spec/aircana/contexts/web_spec.rb[1:3:1:1] | passed | 0.00015 seconds |
87
- ./spec/aircana/contexts/web_spec.rb[1:3:1:2] | passed | 0.00012 seconds |
88
- ./spec/aircana/contexts/web_spec.rb[1:3:1:3] | passed | 0.00011 seconds |
89
- ./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.00028 seconds |
90
- ./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.0002 seconds |
91
- ./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.00025 seconds |
92
- ./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.00028 seconds |
93
- ./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.00025 seconds |
94
- ./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.00016 seconds |
95
- ./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.0002 seconds |
96
- ./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.00012 seconds |
97
- ./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.0002 seconds |
98
- ./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.00012 seconds |
99
- ./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.00037 seconds |
100
- ./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.0001 seconds |
101
- ./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.00028 seconds |
102
- ./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.00023 seconds |
103
- ./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.00026 seconds |
104
- ./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.00021 seconds |
105
- ./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.0001 seconds |
106
- ./spec/aircana/contexts/web_spec.rb[1:3:7:2] | passed | 0.0001 seconds |
107
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.00015 seconds |
108
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.00014 seconds |
109
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.00017 seconds |
110
- ./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.00018 seconds |
111
- ./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.00019 seconds |
112
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.0001 seconds |
113
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.0001 seconds |
114
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.0001 seconds |
115
- ./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.00009 seconds |
116
- ./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.00007 seconds |
117
- ./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.00003 seconds |
118
- ./spec/aircana/generators/hooks_generator_spec.rb[1:2:1] | passed | 0.00003 seconds |
119
- ./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.00033 seconds |
120
- ./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.00018 seconds |
121
- ./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.00008 seconds |
122
- ./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.00009 seconds |
123
- ./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.00003 seconds |
124
- ./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.00047 seconds |
125
- ./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.00012 seconds |
126
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.00034 seconds |
127
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.00028 seconds |
128
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:3] | passed | 0.00027 seconds |
129
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.00008 seconds |
130
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:2] | passed | 0.00006 seconds |
131
- ./spec/aircana/generators/skills_generator_spec.rb[1:1:1] | passed | 0.00032 seconds |
132
- ./spec/aircana/generators/skills_generator_spec.rb[1:1:2] | passed | 0.00021 seconds |
133
- ./spec/aircana/generators/skills_generator_spec.rb[1:1:3] | passed | 0.00032 seconds |
134
- ./spec/aircana/generators/skills_generator_spec.rb[1:2:1] | passed | 0.00046 seconds |
135
- ./spec/aircana/generators/skills_generator_spec.rb[1:2:2] | passed | 0.00033 seconds |
136
- ./spec/aircana/generators/skills_generator_spec.rb[1:2:3] | passed | 0.00029 seconds |
137
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:1] | passed | 0.0002 seconds |
138
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:2] | passed | 0.00022 seconds |
139
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:3] | passed | 0.00019 seconds |
140
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:4] | passed | 0.00017 seconds |
141
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:5] | passed | 0.00019 seconds |
142
- ./spec/aircana/generators/skills_generator_spec.rb[1:4:1] | passed | 0.00018 seconds |
143
- ./spec/aircana/generators/skills_generator_spec.rb[1:4:2] | passed | 0.00017 seconds |
144
- ./spec/aircana/generators/skills_generator_spec.rb[1:4:3] | passed | 0.00022 seconds |
145
- ./spec/aircana/generators/skills_generator_spec.rb[1:5:1] | passed | 0.0002 seconds |
146
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:1] | passed | 0.0002 seconds |
147
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:2] | passed | 0.00018 seconds |
148
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:3] | passed | 0.00018 seconds |
149
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:4] | passed | 0.0002 seconds |
150
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:5] | passed | 0.0002 seconds |
151
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:6] | passed | 0.00019 seconds |
152
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:7] | passed | 0.00018 seconds |
153
- ./spec/aircana/generators/skills_generator_spec.rb[1:7:1] | passed | 0.00113 seconds |
154
- ./spec/aircana/generators/skills_generator_spec.rb[1:7:2] | passed | 0.00095 seconds |
155
- ./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.00007 seconds |
156
- ./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.00004 seconds |
157
- ./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.00007 seconds |
158
- ./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.00004 seconds |
159
- ./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.00003 seconds |
160
- ./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.00003 seconds |
161
- ./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.00003 seconds |
162
- ./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.00003 seconds |
163
- ./spec/aircana/human_logger_spec.rb[1:5:5] | passed | 0.00003 seconds |
164
- ./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.00003 seconds |
165
- ./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.00003 seconds |
166
- ./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.00003 seconds |
167
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.00046 seconds |
168
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.00033 seconds |
169
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.0003 seconds |
170
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.00268 seconds |
171
- ./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.0004 seconds |
172
- ./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.00029 seconds |
80
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.00032 seconds |
81
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:10] | passed | 0.00035 seconds |
82
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:11] | passed | 0.00087 seconds |
83
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:12] | passed | 0.00084 seconds |
84
+ ./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.00033 seconds |
85
+ ./spec/aircana/contexts/web_spec.rb[1:2:1] | passed | 0.00049 seconds |
86
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:1] | passed | 0.00027 seconds |
87
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:2] | passed | 0.0005 seconds |
88
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:3] | passed | 0.00029 seconds |
89
+ ./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.00039 seconds |
90
+ ./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.00031 seconds |
91
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.00039 seconds |
92
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.00058 seconds |
93
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.00063 seconds |
94
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.00038 seconds |
95
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.00048 seconds |
96
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.00029 seconds |
97
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.00032 seconds |
98
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.00031 seconds |
99
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.00094 seconds |
100
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.00032 seconds |
101
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.0006 seconds |
102
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.00053 seconds |
103
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.0005 seconds |
104
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.00051 seconds |
105
+ ./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.00027 seconds |
106
+ ./spec/aircana/contexts/web_spec.rb[1:3:7:2] | passed | 0.00028 seconds |
107
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.00032 seconds |
108
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.00039 seconds |
109
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.00044 seconds |
110
+ ./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.00072 seconds |
111
+ ./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.00071 seconds |
112
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.00036 seconds |
113
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.00038 seconds |
114
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.00033 seconds |
115
+ ./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.0003 seconds |
116
+ ./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.00031 seconds |
117
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.00007 seconds |
118
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:2:1] | passed | 0.00011 seconds |
119
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.0009 seconds |
120
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.00052 seconds |
121
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.0003 seconds |
122
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.00026 seconds |
123
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.00014 seconds |
124
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.0012 seconds |
125
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.00041 seconds |
126
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.0009 seconds |
127
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.0045 seconds |
128
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:3] | passed | 0.00084 seconds |
129
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.00026 seconds |
130
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:2] | passed | 0.00023 seconds |
131
+ ./spec/aircana/generators/skills_generator_spec.rb[1:1:1] | passed | 0.00044 seconds |
132
+ ./spec/aircana/generators/skills_generator_spec.rb[1:1:2] | passed | 0.00034 seconds |
133
+ ./spec/aircana/generators/skills_generator_spec.rb[1:1:3] | passed | 0.00031 seconds |
134
+ ./spec/aircana/generators/skills_generator_spec.rb[1:2:1] | passed | 0.0005 seconds |
135
+ ./spec/aircana/generators/skills_generator_spec.rb[1:2:2] | passed | 0.00088 seconds |
136
+ ./spec/aircana/generators/skills_generator_spec.rb[1:2:3] | passed | 0.00046 seconds |
137
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:1] | passed | 0.00028 seconds |
138
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:2] | passed | 0.00034 seconds |
139
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:3] | passed | 0.00036 seconds |
140
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:4] | passed | 0.0003 seconds |
141
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:5] | passed | 0.00031 seconds |
142
+ ./spec/aircana/generators/skills_generator_spec.rb[1:4:1] | passed | 0.00025 seconds |
143
+ ./spec/aircana/generators/skills_generator_spec.rb[1:4:2] | passed | 0.00028 seconds |
144
+ ./spec/aircana/generators/skills_generator_spec.rb[1:4:3] | passed | 0.0003 seconds |
145
+ ./spec/aircana/generators/skills_generator_spec.rb[1:5:1] | passed | 0.00028 seconds |
146
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:1] | passed | 0.0003 seconds |
147
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:2] | passed | 0.00034 seconds |
148
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:3] | passed | 0.00032 seconds |
149
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:4] | passed | 0.0005 seconds |
150
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:5] | passed | 0.00031 seconds |
151
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:6] | passed | 0.00033 seconds |
152
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:7] | passed | 0.0003 seconds |
153
+ ./spec/aircana/generators/skills_generator_spec.rb[1:7:1] | passed | 0.00115 seconds |
154
+ ./spec/aircana/generators/skills_generator_spec.rb[1:7:2] | passed | 0.00106 seconds |
155
+ ./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.00015 seconds |
156
+ ./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.00011 seconds |
157
+ ./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.00011 seconds |
158
+ ./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.00012 seconds |
159
+ ./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.00011 seconds |
160
+ ./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.00012 seconds |
161
+ ./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.00008 seconds |
162
+ ./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.00012 seconds |
163
+ ./spec/aircana/human_logger_spec.rb[1:5:5] | passed | 0.00012 seconds |
164
+ ./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.00013 seconds |
165
+ ./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.00012 seconds |
166
+ ./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.00011 seconds |
167
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.00098 seconds |
168
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.00096 seconds |
169
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.0007 seconds |
170
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.0007 seconds |
171
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.00088 seconds |
172
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.00075 seconds |
173
173
  ./spec/aircana/llm/claude_client_spec.rb[1:1:3:1] | passed | 0.00071 seconds |
174
- ./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.0003 seconds |
175
- ./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.00029 seconds |
176
- ./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.0002 seconds |
177
- ./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.00041 seconds |
178
- ./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.0003 seconds |
179
- ./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.0004 seconds |
180
- ./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.0007 seconds |
181
- ./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.0002 seconds |
182
- ./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.0002 seconds |
183
- ./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.00027 seconds |
184
- ./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.00019 seconds |
185
- ./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.0002 seconds |
186
- ./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.00025 seconds |
187
- ./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.00016 seconds |
188
- ./spec/aircana_spec.rb[1:1] | passed | 0.00003 seconds |
189
- ./spec/aircana_spec.rb[1:2] | passed | 0.00087 seconds |
174
+ ./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.00063 seconds |
175
+ ./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.00069 seconds |
176
+ ./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.00047 seconds |
177
+ ./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.00045 seconds |
178
+ ./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.00062 seconds |
179
+ ./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.00094 seconds |
180
+ ./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.00143 seconds |
181
+ ./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.00044 seconds |
182
+ ./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.0005 seconds |
183
+ ./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.00046 seconds |
184
+ ./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.00048 seconds |
185
+ ./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.00051 seconds |
186
+ ./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.00068 seconds |
187
+ ./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.00041 seconds |
188
+ ./spec/aircana_spec.rb[1:1] | passed | 0.00009 seconds |
189
+ ./spec/aircana_spec.rb[1:2] | passed | 0.00094 seconds |
data/CHANGELOG.md CHANGED
@@ -5,7 +5,25 @@ 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.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [Unreleased]
8
+ ## [4.4.0]
9
+
10
+ ### Changed
11
+ - Knowledge base refresh commands now work for both local and remote KBs
12
+ - `aircana kb refresh <kb-name>` and `aircana kb refresh-all` now refresh local KBs
13
+ - Local KBs can have Confluence/web sources that need periodic refreshing
14
+ - Confluence sources now store the label used during creation for discovering new pages
15
+ - Refresh operation searches by label to find all pages, including newly added ones
16
+ - The distinction between "local" and "remote" is about git version control, not refresh capability
17
+
18
+ ## [4.3.0] - 2025-11-10
19
+
20
+ ### Fixed
21
+ - Fixed ERB template syntax errors in command generators
22
+ - Resolved nested string interpolation issues in `plan.erb` and `ask_expert.erb` templates
23
+ - Templates were using complex nested `#{...}` interpolation incompatible with Ruby parser
24
+ - Restructured templates to use ERB variables and string concatenation
25
+ - Fixes "unexpected backslash" and "unterminated string" syntax errors during `aircana init`
26
+ - All 187 tests passing
9
27
 
10
28
  ## [4.2.0] - 2025-10-31
11
29
 
data/CLAUDE.md CHANGED
@@ -39,14 +39,14 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
39
39
  **Knowledge Base Management:**
40
40
  - `aircana kb create` - Create a new knowledge base interactively
41
41
  - `aircana kb list` - List all configured knowledge bases
42
- - `aircana kb refresh <kb-name>` - Refresh knowledge base from Confluence and web sources
43
- - `aircana kb refresh-all` - Refresh knowledge for all configured knowledge bases
42
+ - `aircana kb refresh <kb-name>` - Refresh knowledge base from Confluence and web sources (works for both local and remote KBs)
43
+ - `aircana kb refresh-all` - Refresh knowledge for all configured knowledge bases (both local and remote)
44
44
  - `aircana kb add-url <kb-name> <url>` - Add a web URL to a knowledge base
45
45
 
46
46
  **Hooks:**
47
47
  - Hooks are automatically generated during `aircana init`
48
48
  - Default hooks include: `session_start`, `refresh_skills`, and `notification_sqs`
49
- - `refresh_skills` automatically refreshes remote knowledge bases once per 24 hours
49
+ - `refresh_skills` automatically refreshes knowledge bases once per 24 hours (both local and remote)
50
50
  - Hook scripts are stored in `scripts/` directory
51
51
  - Hook configuration is managed via `hooks/hooks.json`
52
52
 
@@ -242,8 +242,9 @@ end
242
242
  Each knowledge base has a `manifest.json` that tracks knowledge sources:
243
243
  - Plugin mode: Stored in `agents/<kb-name>/manifest.json` (version controlled)
244
244
  - Non-plugin mode: Stored in `.claude/skills/<kb-name>/manifest.json`
245
- - Contains KB type (remote/local), source URLs, Confluence labels
246
- - Team members run `aircana kb refresh` to sync remote knowledge locally
245
+ - Contains KB type (remote/local), source URLs, Confluence labels for discovery
246
+ - Team members run `aircana kb refresh` to sync knowledge from Confluence/web sources
247
+ - Refresh discovers new pages by searching the stored Confluence label
247
248
 
248
249
  **Plugin-Aware Path Resolution**:
249
250
  Configuration class detects plugin mode and resolves paths accordingly:
@@ -284,7 +285,8 @@ Knowledge bases can sync content from multiple sources:
284
285
  **Unified Management:**
285
286
  - Both source types tracked in manifest.json per knowledge base
286
287
  - Manifest schema version 1.0
287
- - `aircana kb refresh <kb-name>` refreshes all sources (Confluence + web) for remote KBs
288
- - `aircana kb refresh-all` refreshes all configured remote knowledge bases
288
+ - Confluence sources include the label used for discovery, enabling refresh to find new pages
289
+ - `aircana kb refresh <kb-name>` refreshes all sources (Confluence + web) for any KB (local or remote)
290
+ - `aircana kb refresh-all` refreshes all configured knowledge bases (both local and remote)
289
291
  - **Plugin mode**: KB content stored in `skills/<kb-name>/`
290
292
  - **Non-plugin mode**: KB content stored in `.claude/skills/<kb-name>/`
@@ -11,24 +11,15 @@ module Aircana
11
11
  module CLI
12
12
  module KB # rubocop:disable Metrics/ModuleLength
13
13
  class << self # rubocop:disable Metrics/ClassLength
14
- # rubocop:disable Metrics/MethodLength
15
14
  def refresh(kb_name)
16
15
  normalized_kb_name = normalize_string(kb_name)
17
16
 
18
- # Check if this is a local knowledge base
19
- kb_type = Aircana::Contexts::Manifest.kb_type_from_manifest(normalized_kb_name)
20
- if kb_type == "local"
21
- Aircana.human_logger.info "⊘ Skipping #{normalized_kb_name} (local knowledge base - no refresh needed)"
22
- return
23
- end
24
-
25
17
  perform_manifest_aware_refresh(normalized_kb_name)
26
18
  regenerate_skill_md(normalized_kb_name)
27
19
  regenerate_agent_md(normalized_kb_name)
28
20
  rescue Aircana::Error => e
29
21
  handle_refresh_error(normalized_kb_name, e)
30
22
  end
31
- # rubocop:enable Metrics/MethodLength
32
23
 
33
24
  def create # rubocop:disable Metrics/MethodLength
34
25
  prompt = TTY::Prompt.new
@@ -145,22 +136,11 @@ module Aircana
145
136
  total: kb_names.size,
146
137
  successful: 0,
147
138
  failed: 0,
148
- skipped: 0,
149
139
  total_pages: 0,
150
- failed_kbs: [],
151
- skipped_kbs: []
140
+ failed_kbs: []
152
141
  }
153
142
 
154
143
  kb_names.each do |kb_name|
155
- # Check if this is a local knowledge base
156
- kb_type = Aircana::Contexts::Manifest.kb_type_from_manifest(kb_name)
157
- if kb_type == "local"
158
- Aircana.human_logger.info "⊘ Skipping #{kb_name} (local knowledge base)"
159
- results[:skipped] += 1
160
- results[:skipped_kbs] << kb_name
161
- next
162
- end
163
-
164
144
  result = refresh_single_kb(kb_name)
165
145
  if result[:success]
166
146
  results[:successful] += 1
@@ -536,10 +516,6 @@ module Aircana
536
516
  Aircana.human_logger.success "✓ Successful: #{results[:successful]}/#{results[:total]} KBs"
537
517
  Aircana.human_logger.success "✓ Total pages refreshed: #{results[:total_pages]}"
538
518
 
539
- if results[:skipped].positive?
540
- Aircana.human_logger.info "⊘ Skipped: #{results[:skipped]} KB(s) (local knowledge base)"
541
- end
542
-
543
519
  if results[:failed].positive?
544
520
  Aircana.human_logger.error "✗ Failed: #{results[:failed]} KBs"
545
521
  Aircana.human_logger.info ""
@@ -32,7 +32,7 @@ module Aircana
32
32
  pages = search_and_log_pages(label_to_search)
33
33
  return { pages_count: 0, sources: [] } if pages.empty?
34
34
 
35
- sources = process_pages_with_manifest(pages, kb_name, kb_type)
35
+ sources = process_pages_with_manifest(pages, kb_name, kb_type, label_to_search)
36
36
  create_or_update_manifest(kb_name, sources, kb_type)
37
37
 
38
38
  { pages_count: pages.size, sources: sources }
@@ -50,14 +50,20 @@ module Aircana
50
50
  return { pages_count: 0, sources: [] } if confluence_sources.empty?
51
51
 
52
52
  all_pages = []
53
+ labels_used = []
54
+
53
55
  confluence_sources.each do |source|
54
- pages = fetch_pages_from_source(source)
56
+ # Use label from manifest if available, otherwise fall back to kb_name
57
+ label = source["label"] || kb_name
58
+ labels_used << label
59
+ pages = fetch_pages_by_label(label)
55
60
  all_pages.concat(pages)
56
61
  end
57
62
 
58
63
  return { pages_count: 0, sources: [] } if all_pages.empty?
59
64
 
60
- updated_sources = process_pages_with_manifest(all_pages, kb_name, kb_type)
65
+ # Use the first label for metadata (typically there's only one Confluence source per KB)
66
+ updated_sources = process_pages_with_manifest(all_pages, kb_name, kb_type, labels_used.first)
61
67
 
62
68
  { pages_count: all_pages.size, sources: updated_sources }
63
69
  end
@@ -76,7 +82,7 @@ module Aircana
76
82
  end
77
83
  end
78
84
 
79
- def process_pages_with_manifest(pages, kb_name, kb_type = "local")
85
+ def process_pages_with_manifest(pages, kb_name, kb_type = "local", label = nil)
80
86
  page_metadata = []
81
87
 
82
88
  ProgressTracker.with_batch_progress(pages, "Processing pages") do |page, _index|
@@ -84,20 +90,11 @@ module Aircana
84
90
  page_metadata << extract_page_metadata(page)
85
91
  end
86
92
 
87
- build_source_metadata(kb_name, page_metadata)
93
+ build_source_metadata(kb_name, page_metadata, label)
88
94
  end
89
95
 
90
96
  private
91
97
 
92
- def fetch_pages_from_source(source)
93
- case source["type"]
94
- when "confluence"
95
- fetch_pages_by_label(source["label"])
96
- else
97
- []
98
- end
99
- end
100
-
101
98
  def extract_page_metadata(page)
102
99
  content = page&.dig("body", "storage", "value") || ""
103
100
  markdown_content = convert_to_markdown(content)
@@ -137,13 +134,15 @@ module Aircana
137
134
  PROMPT
138
135
  end
139
136
 
140
- def build_source_metadata(_kb_name, page_metadata)
141
- [
142
- {
143
- "type" => "confluence",
144
- "pages" => page_metadata
145
- }
146
- ]
137
+ def build_source_metadata(_kb_name, page_metadata, label = nil)
138
+ source = {
139
+ "type" => "confluence",
140
+ "pages" => page_metadata
141
+ }
142
+ # Add label if provided so refresh can use it to discover new pages
143
+ source["label"] = label if label
144
+
145
+ [source]
147
146
  end
148
147
 
149
148
  def create_or_update_manifest(kb_name, sources, kb_type = "local")
@@ -1,8 +1,10 @@
1
+ <% question_prompt = $ARGUMENTS.nil? || $ARGUMENTS.empty? ? 'Ask the user: "What is your question?" and wait for their response before proceeding.' : "Question to analyze: \"#{$ARGUMENTS}\"" %>
1
2
  <%= helpers.model_instructions(
2
3
  "You are coordinating expert consultation to answer a question by leveraging specialized knowledge bases through Skills. Follow this precise workflow:
3
4
 
4
5
  STEP 1: QUESTION VALIDATION
5
- #{$ARGUMENTS.nil? || $ARGUMENTS.empty? ? 'Ask the user: \"What is your question?\" and wait for their response before proceeding.' : "Question to analyze: \"#{$ARGUMENTS}\""}
6
+ " + question_prompt + "
7
+
6
8
 
7
9
  STEP 2: IDENTIFY RELEVANT SkillS
8
10
  Analyze the question and identify which available Skills are most relevant:
@@ -32,5 +34,5 @@ IMPORTANT EXECUTION NOTES:
32
34
  - Use parallel Skill tool execution when consulting multiple Skills (single message with multiple tool calls)
33
35
  - Synthesize knowledge rather than simply concatenating responses
34
36
  - Maintain focus on providing actionable, comprehensive answers
35
- - If no relevant Skills exist, provide a direct answer based on your general knowledge
37
+ - If no relevant Skills exist, provide a direct answer based on your general knowledge"
36
38
  ) %>
@@ -1,12 +1,14 @@
1
+ <% task_prompt = $ARGUMENTS.nil? || $ARGUMENTS.empty? ? 'Ask the user: "What would you like to plan?" and wait for their response before proceeding.' : "Task to plan: \"#{$ARGUMENTS}\"" %>
1
2
  <%= helpers.model_instructions(
2
3
  "You are helping the user create a strategic implementation plan by consulting domain experts. Follow this workflow:
3
4
 
4
5
  STEP 1: PLANNING MODE CHECK
5
6
  Verify the user is in Claude Code planning mode. If not, tell them:
6
- \"Please put Claude Code into planning mode first, then describe what you want to plan.\"
7
+ 'Please put Claude Code into planning mode first, then describe what you want to plan.'
7
8
 
8
9
  STEP 2: TASK VALIDATION
9
- #{$ARGUMENTS.nil? || $ARGUMENTS.empty? ? 'Ask the user: \"What would you like to plan?\" and wait for their response before proceeding.' : "Task to plan: \"#{$ARGUMENTS}\""}
10
+ " + task_prompt + "
11
+
10
12
 
11
13
  STEP 3: IDENTIFY RELEVANT EXPERT AGENTS
12
14
  Analyze the task and identify which expert agents from the agents/ directory should contribute to this plan:
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Aircana
4
- VERSION = "4.2.0"
4
+ VERSION = "4.4.0"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aircana
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0
4
+ version: 4.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Weston Dransfield
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-10-31 00:00:00.000000000 Z
10
+ date: 2026-01-16 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: httparty