Skip to content

Commit 85c20a4

Browse files
committed
wip
1 parent 6cc5c6c commit 85c20a4

5 files changed

Lines changed: 345 additions & 5 deletions

File tree

priv/article/dharma-v.120-AMD.pdf

77.3 KB
Binary file not shown.

priv/article/dharma-v.120-AMD.tex

Lines changed: 343 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,8 @@
4040
\titlespacing*{\subsubsection}{0pt}{10pt}{6pt}
4141

4242
\fancyhf{}
43-
\fancyhead[R]{\small\color{footergray} 31 березня 2026}
43+
\fancyhead[R]{\small\color{footergray} 18 квітня 2026}
4444
\fancyfoot[L]{\small\color{footergray} Технічні вимоги ЄСІКС. II. Господарська діяльність}
45-
4645
\fancyfoot[R]{\small\color{footergray}\thepage}
4746

4847
\newcommand\HUGE[1]{\fontsize{40}{40}\selectfont #1}
@@ -51,6 +50,14 @@
5150
\renewcommand{\footrulewidth}{0.4pt}
5251
\renewcommand{\footrule}{\color{footergray}\hrule width \textwidth height 0.4pt}
5352

53+
\lstset{
54+
basicstyle=\ttfamily\small,
55+
breaklines=true,
56+
frame=single,
57+
backgroundcolor=\color{gray!5},
58+
columns=fullflexible
59+
}
60+
5461
\begin{document}
5562

5663
\pagestyle{fancy}
@@ -70,7 +77,340 @@
7077

7178
\vspace{3cm}
7279

80+
\section{Вступ}
81+
82+
Набір сценаріїв задає поведінку системи та використовується для перевірки її узгодженості. Кожен сценарій описує послідовність дій, початковий стан (given) та очікувані результати (expect), що дозволяє систематично перевіряти семантику протоколу Buddha на рівні kernel-моделі.
83+
84+
\section{Архітектура тестового набору}
85+
86+
Сценарії організовані як система тестів, що перевіряє семантику kernel-моделі та поведінку протоколу. Вони розбиті на тематичні групи відповідно до основних доменів: повідомлення, читання, відтворення, модерація, групи, пагінація, присутність, home, контакти, згадки, видимість та розширення. Кожен сценарій є самодостатнім і може виконуватися незалежно, забезпечуючи повне покриття invariants між protocol state, read/replay, moderation та ABAC visibility.
87+
88+
\section{Сценарії домену}
89+
90+
Сценарії домену описують основну поведінку системи та покривають ключові можливості протоколу. Вони перевіряють базові операції над повідомленнями, стрімами подій, курсорами та станом ресурсів.
91+
92+
\section{Складні сценарії та узгодженість}
93+
94+
Складні сценарії перевіряють взаємодію подій, порядок їх обробки та узгодженість системи в нетривіальних випадках. Вони включають reorder edit/delete, late delete, ban після прийнятого повідомлення, snapshot після видалення групи та federated convergence.
95+
96+
\section{Сценарії повідомлень}
97+
98+
Сценарії повідомлень перевіряють структуру даних, передачу повідомлень та операції над їх вмістом.
99+
100+
\begin{lstlisting}[language={},basicstyle=\ttfamily\small]
101+
scenario structured send + structured expect
102+
session alice1
103+
connect
104+
auth
105+
106+
session bob1
107+
connect
108+
auth
109+
110+
session alice1
111+
send message to bob {
112+
body: "hi"
113+
subject: "Draft"
114+
priority: high
115+
}
116+
117+
session bob1
118+
expect message from alice {
119+
body: "hi"
120+
subject: "Draft"
121+
priority: high
122+
}
123+
\end{lstlisting}
124+
125+
(Повний набір сценаріїв з DSL-PAYLOAD.md: structured payload, validation rules, edit/delete convergence, given payload, replay convergence, mutation by captured/seeded id тощо.)
126+
127+
\section{Сценарії читання}
128+
129+
Сценарії читання перевіряють курсори, стан прочитаного та узгодженість поведінки read/unread.
130+
131+
\begin{lstlisting}[language={},basicstyle=\ttfamily\small]
132+
scenario delivery + read
133+
134+
session alice
135+
connect
136+
auth
137+
138+
session bob
139+
connect
140+
auth
141+
142+
session alice
143+
send message to bob "hi"
144+
145+
session bob
146+
expect message from alice body "hi"
147+
148+
session bob
149+
send read for last
150+
151+
session alice
152+
expect message marked as read
153+
\end{lstlisting}
154+
155+
(Повний набір з DSL-READ.md: basic delivery, read cursor, multi-session sync, read backward, read after reconnect, multi-feed isolation, partial read, unread boundary тощо.)
156+
157+
\section{Сценарії відтворення}
158+
159+
Сценарії відтворення перевіряють відновлення подій, межі відтворення, усунення пропусків та перехід між знімком і потоком подій.
160+
161+
\begin{lstlisting}[language={},basicstyle=\ttfamily\small]
162+
scenario home bootstrap then replay
163+
164+
session alice
165+
connect
166+
auth
167+
168+
session bob
169+
connect
170+
auth
171+
add alice to roster
172+
173+
session alice
174+
send message to bob "m1"
175+
send message to bob "m2"
176+
177+
session bob
178+
disconnect
179+
wait 500ms
180+
reconnect
181+
182+
bootstrap home limit 20 preview 1
183+
184+
expect feeds
185+
expect previews
186+
expect shared snapshot
187+
188+
query events peer alice after snapshot
189+
190+
expect no duplicates
191+
expect no gaps
192+
\end{lstlisting}
193+
194+
(Повний набір з DSL-REPLAY.md: replay, preview, gap recovery, paged snapshot, multi-feed isolation, duplicate delivery тощо.)
195+
196+
\section{Сценарії модерації}
197+
198+
Сценарії модерації перевіряють обмеження дій, доступу та видимості без зміни канонічної історії подій.
199+
200+
\begin{lstlisting}[language={},basicstyle=\ttfamily\small]
201+
scenario ban user
202+
203+
session alice
204+
connect
205+
auth
206+
207+
ban bob
208+
209+
expect bob is banned
210+
\end{lstlisting}
211+
212+
(Повний набір з DSL-MODERATION.md: global/group ban, unban, moderation list, no rewrite history, block future actions тощо.)
213+
214+
\section{Сценарії груп}
215+
216+
Сценарії груп перевіряють групові стріми подій, склад учасників, ролі та правила доступу.
217+
218+
\begin{lstlisting}[language={},basicstyle=\ttfamily\small]
219+
scenario create group
220+
221+
session alice
222+
connect
223+
auth
224+
225+
create group room1
226+
227+
expect group room1 exists
228+
expect alice is owner of group room1
229+
expect alice is member of group room1
230+
\end{lstlisting}
231+
232+
(Повний набір з DSL-GROUP.md: create, add/remove member, send/query, delete group тощо.)
233+
234+
\section{Сценарії пагінації}
235+
236+
Сценарії пагінації перевіряють продовження вибірки, межі сторінок та узгодженість результатів запитів.
237+
238+
\begin{lstlisting}[language={},basicstyle=\ttfamily\small]
239+
scenario inbox pagination
240+
241+
given
242+
private feed alice<->bob has messages
243+
1 from alice "p1"
244+
...
245+
11 from alice "p11"
246+
247+
session bob
248+
connect
249+
auth
250+
251+
query inbox peer alice limit 10
252+
253+
expect result items <= 10
254+
expect more
255+
256+
query inbox continue
257+
258+
expect result items
259+
\end{lstlisting}
260+
261+
(Повний набір з DSL-PAGINATION.md: inbox/home/event pagination, continue without initial query, no duplicates, empty page тощо.)
262+
263+
\section{Сценарії присутності}
264+
265+
Сценарії присутності перевіряють стани online/offline, введення повідомлень та інші події присутності.
266+
267+
\begin{lstlisting}[language={},basicstyle=\ttfamily\small]
268+
scenario wildcard offline presence observation
269+
270+
session alice
271+
connect
272+
auth
273+
274+
session bob
275+
connect
276+
auth
277+
278+
session bob
279+
query events peer alice after cursor
280+
281+
session alice
282+
disconnect
283+
284+
session bob
285+
query events peer alice after cursor
286+
287+
expect empty replay
288+
expect event offline
289+
\end{lstlisting}
290+
291+
(Повний набір з DSL-PRESENCE.md: offline/online, typing, multi-session aggregate, federated presence, no rewrite message state тощо.)
292+
293+
\section{Сценарії home}
294+
295+
Сценарії home перевіряють початкове завантаження стану, знімки та їх зв’язок із відтворенням і читанням.
296+
297+
\begin{lstlisting}[language={},basicstyle=\ttfamily\small]
298+
scenario home returns feeds and snapshot after new message
299+
300+
session alice
301+
connect
302+
auth
303+
304+
add bob to roster
305+
306+
session bob
307+
connect
308+
auth
309+
310+
add alice to roster
311+
312+
session alice
313+
send message to bob "m1"
314+
315+
session bob
316+
bootstrap home
317+
318+
expect feeds
319+
expect shared snapshot
320+
expect feeds count <= 10
321+
\end{lstlisting}
322+
323+
(Повний набір з DSL-HOME.md: home bootstrap, shared snapshot, read consistency, policy interaction тощо.)
324+
325+
\section{Сценарії контактів}
326+
327+
Сценарії контактів перевіряють списки контактів і зв’язки між користувачами та їх роль у взаємодіях.
328+
329+
\begin{lstlisting}[language={},basicstyle=\ttfamily\small]
330+
scenario add to roster
331+
332+
session alice
333+
connect
334+
auth
335+
336+
add bob to roster
337+
338+
query roster
339+
340+
expect bob in roster
341+
\end{lstlisting}
342+
343+
(Повний набір з DSL-ROSTER.md: add/remove, one-way/mutual relation, messaging after removal тощо.)
344+
345+
\section{Сценарії згадок}
346+
347+
Сценарії згадок перевіряють формування стану згадок у стрімах подій і їх зв’язок із читанням та видимістю.
348+
349+
\begin{lstlisting}[language={},basicstyle=\ttfamily\small]
350+
scenario mention appears in home after incoming mention message
351+
352+
session alice
353+
connect
354+
auth
355+
356+
add bob to roster
357+
358+
session bob
359+
connect
360+
auth
361+
362+
add alice to roster
363+
364+
session alice
365+
send message to bob {
366+
body: "hi"
367+
mention: bob
368+
}
369+
370+
session bob
371+
bootstrap home
372+
373+
expect feeds
374+
expect mentions
375+
expect shared snapshot
376+
\end{lstlisting}
377+
378+
(Повний набір з DSL-MENTIONS.md: mention in home, read clears mention, replay does not clear, hidden message does not produce mention тощо.)
379+
380+
\section{Сценарії видимості}
381+
382+
Сценарії видимості перевіряють фільтрацію спостережень і обмеження доступу до даних поверх канонічної історії.
383+
384+
\begin{lstlisting}[language={},basicstyle=\ttfamily\small]
385+
scenario message is hidden when clearance is insufficient
386+
387+
given
388+
message m1 has classification topsecret
389+
alice has clearance secret
390+
391+
when alice queries inbox
392+
393+
expect access allowed
394+
expect message m1 hidden
395+
\end{lstlisting}
396+
397+
(Повний набір з DSL-VISIBILITY.md: hidden vs visible, field-level, access denied vs hidden, hidden != deleted тощо.)
398+
399+
\section{Інваріанти та узгодженість}
400+
401+
Інваріанти перевіряють узгодженість між читанням, відтворенням, модерацією, видимістю та іншими властивостями системи.
402+
403+
(Всі invariants з DSL-INVARIANTS.md, ADVANCED.md та cross-layer checks з інших файлів: read cursor unchanged by moderation, ABAC filtering does not change truth, snapshot does not bypass ban, delete overrides edit, no rewrite history тощо.)
404+
405+
\section{Розширення}
406+
407+
Розширення охоплюють спеціалізовані сценарії для автентифікації, політик доступу, пошуку та виявлення можливостей системи.
408+
409+
(Сценарії з DSL-AUTH.md, DSL-ABAC.md, DSL-SEARCH.md, DSL-DISCOVERY.md: auth/resume/renew, ABAC clearance/visibility, search criteria/projection/pagination, discovery capabilities.)
410+
411+
\section{Висновок}
73412

413+
Тестовий набір підсумовується як систематичне покриття поведінки протоколу через сценарії DSL. Він забезпечує повну верифікацію kernel-моделі, invariants та всіх розширень, роблячи протокол Buddha готовим до формальної стандартизації та реалізації.
74414

75415
\bibliographystyle{plain}
76416
\begin{thebibliography}{9}
@@ -79,4 +419,4 @@
79419
\bibitem{annexb} ITU-T Z.120 Annex B (04/1998), Formal semantics of Message Sequence Charts.
80420
\end{thebibliography}
81421

82-
\end{document}
422+
\end{document}

priv/article/dharma-v.120.pdf

0 Bytes
Binary file not shown.

priv/article/msc-z.120.pdf

-64.7 KB
Binary file not shown.

priv/article/msc-z.120.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141

4242
\fancyhf{}
4343
\fancyhead[R]{\small\color{footergray} 31 березня 2026}
44-
\fancyfoot[L]{\small\color{footergray} Технічні вимоги ЄСІКС. II. Господарська діяльність}
44+
\fancyfoot[L]{\small\color{footergray} Zen Crypted}
4545

4646
\fancyfoot[R]{\small\color{footergray}\thepage}
4747

@@ -59,7 +59,7 @@
5959
\AddToShipoutPictureBG*{\AtPageLowerLeft{\color{nato}\rule{\paperwidth}{\paperheight}}}
6060
\color{white}\thispagestyle{empty}\vspace*{4cm}\centering
6161
{\Huge \textbf{MSC Z.120} \par} \vspace{2cm}
62-
{\HUGE \textbf{Тестувальні сценарії CHAT V.420.2} \par} \vspace{2.5cm}
62+
{\HUGE \textbf{Адаптація Dharma V.120 \\ до MSC Z.120} \par} \vspace{2.5cm}
6363
\vfill
6464
{\large 2026 \copyright\ Zen Crypted \par}
6565
\end{titlepage}

0 commit comments

Comments
 (0)