Compare commits

...

4 Commits

Author SHA1 Message Date
Quixos Subtree Publisher c9265e7903 Publish quixos-protocol from 4c88728f144add3457b4273d4b9a04ee53c53be3 2026-09-18 06:40:14 +00:00
Timothy J. Aveni a05f58f7fe Build query-backed task tracker default template
Add shared colored tags, native tag/status filters, cursor-paged task and
completion views, estimated-hour aggregates and repeat-after-completion actions.
Keep task views independently renderable and isolate component styling.

Cover immutable fresh-template/additive checks, real PostgreSQL/orch package
actions and query watches, and wide/narrow browser layouts. Accept documented
hyphenated query budget names in the capability lexer.

Template publication/default selection pending installation AWS SSO renewal;
no live workspace data or deployment configuration changed.
2026-09-17 23:40:14 -07:00
Quixos Subtree Publisher 93c8cae1e6 Publish quixos-protocol from d6b0ff39db819c339a08e2203eff401c86fa9b73 2026-09-18 02:52:55 +00:00
Timothy J. Aveni 5a611bbc9b Enforce aggregation contract budgets and expose residual timing 2026-09-17 19:52:55 -07:00
11 changed files with 1678 additions and 1594 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"version": 1, "version": 1,
"sourceRepo": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos", "sourceRepo": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos",
"sourceCommit": "1c2dbc6ca2c3917292f158cbbaef531836eaacca", "sourceCommit": "4c88728f144add3457b4273d4b9a04ee53c53be3",
"sourcePath": "quixos-protocol", "sourcePath": "quixos-protocol",
"exportName": "quixos-protocol", "exportName": "quixos-protocol",
"mirrorRemote": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-protocol.git" "mirrorRemote": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-protocol.git"
+6
View File
@@ -408,6 +408,9 @@ identifier
| POLL | POLL
| RPC | RPC
| QUERYABLE | QUERYABLE
| RESULT_BYTES
| RPC_CALLS
| DEADLINE_MS
; ;
stringLiteral stringLiteral
@@ -415,6 +418,9 @@ stringLiteral
; ;
WORKSPACE: 'workspace'; WORKSPACE: 'workspace';
RESULT_BYTES: 'result-bytes';
RPC_CALLS: 'rpc-calls';
DEADLINE_MS: 'deadline-ms';
QUERY: 'query'; QUERY: 'query';
SPECIALIZE: 'specialize'; SPECIALIZE: 'specialize';
ROOT: 'root'; ROOT: 'root';
+1
View File
@@ -256,6 +256,7 @@ message QueryStats {
uint32 relational_stages = 8; uint32 relational_stages = 8;
uint32 captured_candidates = 9; uint32 captured_candidates = 9;
double relational_ms = 10; double relational_ms = 10;
double residual_ms = 11;
} }
message QueryResponse { message QueryResponse {
Value value = 1; Value value = 1;
File diff suppressed because one or more lines are too long
@@ -1,253 +1,259 @@
WORKSPACE=1 WORKSPACE=1
QUERY=2 RESULT_BYTES=2
SPECIALIZE=3 RPC_CALLS=3
ROOT=4 DEADLINE_MS=4
DOCUMENT=5 QUERY=5
FRAGMENTS=6 SPECIALIZE=6
VIEW=7 ROOT=7
MAX=8 DOCUMENT=8
ALLOW=9 FRAGMENTS=9
POLL=10 VIEW=10
QUERYABLE=11 MAX=11
RPC=12 ALLOW=12
QUERY_REASON=13 POLL=13
TYPE=14 QUERYABLE=14
OBJECT=15 RPC=15
STORABLE=16 QUERY_REASON=16
IMPLEMENTS=17 TYPE=17
REF=18 OBJECT=18
FRAGMENT=19 STORABLE=19
IMPORT=20 IMPLEMENTS=20
EXTERNAL=21 REF=21
ATOM=22 FRAGMENT=22
INTERFACE=23 IMPORT=23
INTERFACES=24 EXTERNAL=24
PACKAGE=25 ATOM=25
VALUE=26 INTERFACE=26
RELATION=27 INTERFACES=27
OPERATION=28 PACKAGE=28
FUNCTION=29 VALUE=29
CONSTRUCTOR=30 RELATION=30
CONSTRUCTS=31 OPERATION=31
INPUT=32 FUNCTION=32
CONFORM=33 CONSTRUCTOR=33
AS=34 CONSTRUCTS=34
BIND=35 INPUT=35
STATIC=36 CONFORM=36
TO=37 AS=37
PRIVATE=38 BIND=38
SHARED=39 STATIC=39
STATE=40 TO=40
EDGE=41 PRIVATE=41
PROJECTION=42 SHARED=42
WITH=43 STATE=43
USING=44 EDGE=44
VIA=45 PROJECTION=45
MATERIALIZE=46 WITH=46
IF=47 USING=47
ABSENT=48 VIA=48
ON=49 MATERIALIZE=49
POLICY=50 IF=50
DEFAULT=51 ABSENT=51
SOURCE=52 ON=52
REPOSITORY=53 POLICY=53
COMMIT=54 DEFAULT=54
REVISION=55 SOURCE=55
SEMANTIC_MAJOR=56 REPOSITORY=56
ON_DELETE=57 COMMIT=57
RETAIN_OTHER=58 REVISION=58
KEYED=59 SEMANTIC_MAJOR=59
PUBLIC_TRAVERSAL=60 ON_DELETE=60
ID=61 RETAIN_OTHER=61
DOC=62 KEYED=62
MODE=63 PUBLIC_TRAVERSAL=63
EMITS=64 ID=64
RECEIVER=65 DOC=65
REQUIRES=66 MODE=66
ANY=67 EMITS=67
GET=68 RECEIVER=68
SET=69 REQUIRES=69
WATCH=70 ANY=70
START=71 GET=71
STOP=72 SET=72
READ=73 WATCH=73
WRITE=74 START=74
RESOLVE=75 STOP=75
CONNECT=76 READ=76
DISCONNECT=77 WRITE=77
CALL=78 RESOLVE=78
WATCH_START=79 CONNECT=79
WATCH_STOP=80 DISCONNECT=80
SUBSCRIBE=81 CALL=81
UNSUBSCRIBE=82 WATCH_START=82
OPTIMISTIC_REGISTER=83 WATCH_STOP=83
CRDT=84 SUBSCRIBE=84
OPTIONAL_ONE=85 UNSUBSCRIBE=85
EXACTLY_ONE=86 OPTIMISTIC_REGISTER=86
MANY_UNIQUE=87 CRDT=87
MANY=88 OPTIONAL_ONE=88
ORDERED=89 EXACTLY_ONE=89
UNIT=90 MANY_UNIQUE=90
WATCH_HANDLE=91 MANY=91
MESSAGE=92 ORDERED=92
ATOM_REF=93 UNIT=93
INTERFACE_REF=94 WATCH_HANDLE=94
OPTIONAL=95 MESSAGE=95
LIST=96 ATOM_REF=96
RECORD=97 INTERFACE_REF=97
BOOL=98 OPTIONAL=98
BYTES=99 LIST=99
DOUBLE=100 RECORD=100
INT32=101 BOOL=101
INT64=102 BYTES=102
STRING=103 DOUBLE=103
UINT32=104 INT32=104
UINT64=105 INT64=105
TRUE=106 STRING=106
FALSE=107 UINT32=107
NULL=108 UINT64=108
ARROW=109 TRUE=109
COLON=110 FALSE=110
SEMI=111 NULL=111
COMMA=112 ARROW=112
DOT=113 COLON=113
LBRACE=114 SEMI=114
RBRACE=115 COMMA=115
LBRACK=116 DOT=116
RBRACK=117 LBRACE=117
LPAREN=118 RBRACE=118
RPAREN=119 LBRACK=119
LT=120 RBRACK=120
GT=121 LPAREN=121
AMP=122 RPAREN=122
EQUAL=123 LT=123
INTEGER=124 GT=124
JSON_NUMBER=125 AMP=125
IDENTIFIER=126 EQUAL=126
STRING_LITERAL=127 INTEGER=127
LINE_COMMENT=128 JSON_NUMBER=128
BLOCK_COMMENT=129 IDENTIFIER=129
WS=130 STRING_LITERAL=130
LINE_COMMENT=131
BLOCK_COMMENT=132
WS=133
'workspace'=1 'workspace'=1
'query'=2 'result-bytes'=2
'specialize'=3 'rpc-calls'=3
'root'=4 'deadline-ms'=4
'document'=5 'query'=5
'fragments'=6 'specialize'=6
'view'=7 'root'=7
'max'=8 'document'=8
'allow'=9 'fragments'=9
'poll'=10 'view'=10
'queryable'=11 'max'=11
'rpc'=12 'allow'=12
'query-reason'=13 'poll'=13
'type'=14 'queryable'=14
'object'=15 'rpc'=15
'storable'=16 'query-reason'=16
'implements'=17 'type'=17
'ref'=18 'object'=18
'fragment'=19 'storable'=19
'import'=20 'implements'=20
'external'=21 'ref'=21
'atom'=22 'fragment'=22
'interface'=23 'import'=23
'interfaces'=24 'external'=24
'package'=25 'atom'=25
'value'=26 'interface'=26
'relation'=27 'interfaces'=27
'operation'=28 'package'=28
'function'=29 'value'=29
'constructor'=30 'relation'=30
'constructs'=31 'operation'=31
'input'=32 'function'=32
'conform'=33 'constructor'=33
'as'=34 'constructs'=34
'bind'=35 'input'=35
'static'=36 'conform'=36
'to'=37 'as'=37
'private'=38 'bind'=38
'shared'=39 'static'=39
'state'=40 'to'=40
'edge'=41 'private'=41
'projection'=42 'shared'=42
'with'=43 'state'=43
'using'=44 'edge'=44
'via'=45 'projection'=45
'materialize'=46 'with'=46
'if'=47 'using'=47
'absent'=48 'via'=48
'on'=49 'materialize'=49
'policy'=50 'if'=50
'default'=51 'absent'=51
'source'=52 'on'=52
'repository'=53 'policy'=53
'commit'=54 'default'=54
'revision'=55 'source'=55
'semantic-major'=56 'repository'=56
'on-delete'=57 'commit'=57
'retain-other'=58 'revision'=58
'keyed'=59 'semantic-major'=59
'public-traversal'=60 'on-delete'=60
'id'=61 'retain-other'=61
'doc'=62 'keyed'=62
'mode'=63 'public-traversal'=63
'emits'=64 'id'=64
'receiver'=65 'doc'=65
'requires'=66 'mode'=66
'any'=67 'emits'=67
'get'=68 'receiver'=68
'set'=69 'requires'=69
'watch'=70 'any'=70
'start'=71 'get'=71
'stop'=72 'set'=72
'read'=73 'watch'=73
'write'=74 'start'=74
'resolve'=75 'stop'=75
'connect'=76 'read'=76
'disconnect'=77 'write'=77
'call'=78 'resolve'=78
'watch-start'=79 'connect'=79
'watch-stop'=80 'disconnect'=80
'subscribe'=81 'call'=81
'unsubscribe'=82 'watch-start'=82
'optimistic-register'=83 'watch-stop'=83
'crdt'=84 'subscribe'=84
'optional-one'=85 'unsubscribe'=85
'exactly-one'=86 'optimistic-register'=86
'many-unique'=87 'crdt'=87
'many'=88 'optional-one'=88
'ordered'=89 'exactly-one'=89
'unit'=90 'many-unique'=90
'watch-handle'=91 'many'=91
'message'=92 'ordered'=92
'atom-ref'=93 'unit'=93
'interface-ref'=94 'watch-handle'=94
'optional'=95 'message'=95
'list'=96 'atom-ref'=96
'record'=97 'interface-ref'=97
'bool'=98 'optional'=98
'bytes'=99 'list'=99
'double'=100 'record'=100
'int32'=101 'bool'=101
'int64'=102 'bytes'=102
'string'=103 'double'=103
'uint32'=104 'int32'=104
'uint64'=105 'int64'=105
'true'=106 'string'=106
'false'=107 'uint32'=107
'null'=108 'uint64'=108
'->'=109 'true'=109
':'=110 'false'=110
';'=111 'null'=111
','=112 '->'=112
'.'=113 ':'=113
'{'=114 ';'=114
'}'=115 ','=115
'['=116 '.'=116
']'=117 '{'=117
'('=118 '}'=118
')'=119 '['=119
'<'=120 ']'=120
'>'=121 '('=121
'&'=122 ')'=122
'='=123 '<'=123
'>'=124
'&'=125
'='=126
File diff suppressed because one or more lines are too long
@@ -1,253 +1,259 @@
WORKSPACE=1 WORKSPACE=1
QUERY=2 RESULT_BYTES=2
SPECIALIZE=3 RPC_CALLS=3
ROOT=4 DEADLINE_MS=4
DOCUMENT=5 QUERY=5
FRAGMENTS=6 SPECIALIZE=6
VIEW=7 ROOT=7
MAX=8 DOCUMENT=8
ALLOW=9 FRAGMENTS=9
POLL=10 VIEW=10
QUERYABLE=11 MAX=11
RPC=12 ALLOW=12
QUERY_REASON=13 POLL=13
TYPE=14 QUERYABLE=14
OBJECT=15 RPC=15
STORABLE=16 QUERY_REASON=16
IMPLEMENTS=17 TYPE=17
REF=18 OBJECT=18
FRAGMENT=19 STORABLE=19
IMPORT=20 IMPLEMENTS=20
EXTERNAL=21 REF=21
ATOM=22 FRAGMENT=22
INTERFACE=23 IMPORT=23
INTERFACES=24 EXTERNAL=24
PACKAGE=25 ATOM=25
VALUE=26 INTERFACE=26
RELATION=27 INTERFACES=27
OPERATION=28 PACKAGE=28
FUNCTION=29 VALUE=29
CONSTRUCTOR=30 RELATION=30
CONSTRUCTS=31 OPERATION=31
INPUT=32 FUNCTION=32
CONFORM=33 CONSTRUCTOR=33
AS=34 CONSTRUCTS=34
BIND=35 INPUT=35
STATIC=36 CONFORM=36
TO=37 AS=37
PRIVATE=38 BIND=38
SHARED=39 STATIC=39
STATE=40 TO=40
EDGE=41 PRIVATE=41
PROJECTION=42 SHARED=42
WITH=43 STATE=43
USING=44 EDGE=44
VIA=45 PROJECTION=45
MATERIALIZE=46 WITH=46
IF=47 USING=47
ABSENT=48 VIA=48
ON=49 MATERIALIZE=49
POLICY=50 IF=50
DEFAULT=51 ABSENT=51
SOURCE=52 ON=52
REPOSITORY=53 POLICY=53
COMMIT=54 DEFAULT=54
REVISION=55 SOURCE=55
SEMANTIC_MAJOR=56 REPOSITORY=56
ON_DELETE=57 COMMIT=57
RETAIN_OTHER=58 REVISION=58
KEYED=59 SEMANTIC_MAJOR=59
PUBLIC_TRAVERSAL=60 ON_DELETE=60
ID=61 RETAIN_OTHER=61
DOC=62 KEYED=62
MODE=63 PUBLIC_TRAVERSAL=63
EMITS=64 ID=64
RECEIVER=65 DOC=65
REQUIRES=66 MODE=66
ANY=67 EMITS=67
GET=68 RECEIVER=68
SET=69 REQUIRES=69
WATCH=70 ANY=70
START=71 GET=71
STOP=72 SET=72
READ=73 WATCH=73
WRITE=74 START=74
RESOLVE=75 STOP=75
CONNECT=76 READ=76
DISCONNECT=77 WRITE=77
CALL=78 RESOLVE=78
WATCH_START=79 CONNECT=79
WATCH_STOP=80 DISCONNECT=80
SUBSCRIBE=81 CALL=81
UNSUBSCRIBE=82 WATCH_START=82
OPTIMISTIC_REGISTER=83 WATCH_STOP=83
CRDT=84 SUBSCRIBE=84
OPTIONAL_ONE=85 UNSUBSCRIBE=85
EXACTLY_ONE=86 OPTIMISTIC_REGISTER=86
MANY_UNIQUE=87 CRDT=87
MANY=88 OPTIONAL_ONE=88
ORDERED=89 EXACTLY_ONE=89
UNIT=90 MANY_UNIQUE=90
WATCH_HANDLE=91 MANY=91
MESSAGE=92 ORDERED=92
ATOM_REF=93 UNIT=93
INTERFACE_REF=94 WATCH_HANDLE=94
OPTIONAL=95 MESSAGE=95
LIST=96 ATOM_REF=96
RECORD=97 INTERFACE_REF=97
BOOL=98 OPTIONAL=98
BYTES=99 LIST=99
DOUBLE=100 RECORD=100
INT32=101 BOOL=101
INT64=102 BYTES=102
STRING=103 DOUBLE=103
UINT32=104 INT32=104
UINT64=105 INT64=105
TRUE=106 STRING=106
FALSE=107 UINT32=107
NULL=108 UINT64=108
ARROW=109 TRUE=109
COLON=110 FALSE=110
SEMI=111 NULL=111
COMMA=112 ARROW=112
DOT=113 COLON=113
LBRACE=114 SEMI=114
RBRACE=115 COMMA=115
LBRACK=116 DOT=116
RBRACK=117 LBRACE=117
LPAREN=118 RBRACE=118
RPAREN=119 LBRACK=119
LT=120 RBRACK=120
GT=121 LPAREN=121
AMP=122 RPAREN=122
EQUAL=123 LT=123
INTEGER=124 GT=124
JSON_NUMBER=125 AMP=125
IDENTIFIER=126 EQUAL=126
STRING_LITERAL=127 INTEGER=127
LINE_COMMENT=128 JSON_NUMBER=128
BLOCK_COMMENT=129 IDENTIFIER=129
WS=130 STRING_LITERAL=130
LINE_COMMENT=131
BLOCK_COMMENT=132
WS=133
'workspace'=1 'workspace'=1
'query'=2 'result-bytes'=2
'specialize'=3 'rpc-calls'=3
'root'=4 'deadline-ms'=4
'document'=5 'query'=5
'fragments'=6 'specialize'=6
'view'=7 'root'=7
'max'=8 'document'=8
'allow'=9 'fragments'=9
'poll'=10 'view'=10
'queryable'=11 'max'=11
'rpc'=12 'allow'=12
'query-reason'=13 'poll'=13
'type'=14 'queryable'=14
'object'=15 'rpc'=15
'storable'=16 'query-reason'=16
'implements'=17 'type'=17
'ref'=18 'object'=18
'fragment'=19 'storable'=19
'import'=20 'implements'=20
'external'=21 'ref'=21
'atom'=22 'fragment'=22
'interface'=23 'import'=23
'interfaces'=24 'external'=24
'package'=25 'atom'=25
'value'=26 'interface'=26
'relation'=27 'interfaces'=27
'operation'=28 'package'=28
'function'=29 'value'=29
'constructor'=30 'relation'=30
'constructs'=31 'operation'=31
'input'=32 'function'=32
'conform'=33 'constructor'=33
'as'=34 'constructs'=34
'bind'=35 'input'=35
'static'=36 'conform'=36
'to'=37 'as'=37
'private'=38 'bind'=38
'shared'=39 'static'=39
'state'=40 'to'=40
'edge'=41 'private'=41
'projection'=42 'shared'=42
'with'=43 'state'=43
'using'=44 'edge'=44
'via'=45 'projection'=45
'materialize'=46 'with'=46
'if'=47 'using'=47
'absent'=48 'via'=48
'on'=49 'materialize'=49
'policy'=50 'if'=50
'default'=51 'absent'=51
'source'=52 'on'=52
'repository'=53 'policy'=53
'commit'=54 'default'=54
'revision'=55 'source'=55
'semantic-major'=56 'repository'=56
'on-delete'=57 'commit'=57
'retain-other'=58 'revision'=58
'keyed'=59 'semantic-major'=59
'public-traversal'=60 'on-delete'=60
'id'=61 'retain-other'=61
'doc'=62 'keyed'=62
'mode'=63 'public-traversal'=63
'emits'=64 'id'=64
'receiver'=65 'doc'=65
'requires'=66 'mode'=66
'any'=67 'emits'=67
'get'=68 'receiver'=68
'set'=69 'requires'=69
'watch'=70 'any'=70
'start'=71 'get'=71
'stop'=72 'set'=72
'read'=73 'watch'=73
'write'=74 'start'=74
'resolve'=75 'stop'=75
'connect'=76 'read'=76
'disconnect'=77 'write'=77
'call'=78 'resolve'=78
'watch-start'=79 'connect'=79
'watch-stop'=80 'disconnect'=80
'subscribe'=81 'call'=81
'unsubscribe'=82 'watch-start'=82
'optimistic-register'=83 'watch-stop'=83
'crdt'=84 'subscribe'=84
'optional-one'=85 'unsubscribe'=85
'exactly-one'=86 'optimistic-register'=86
'many-unique'=87 'crdt'=87
'many'=88 'optional-one'=88
'ordered'=89 'exactly-one'=89
'unit'=90 'many-unique'=90
'watch-handle'=91 'many'=91
'message'=92 'ordered'=92
'atom-ref'=93 'unit'=93
'interface-ref'=94 'watch-handle'=94
'optional'=95 'message'=95
'list'=96 'atom-ref'=96
'record'=97 'interface-ref'=97
'bool'=98 'optional'=98
'bytes'=99 'list'=99
'double'=100 'record'=100
'int32'=101 'bool'=101
'int64'=102 'bytes'=102
'string'=103 'double'=103
'uint32'=104 'int32'=104
'uint64'=105 'int64'=105
'true'=106 'string'=106
'false'=107 'uint32'=107
'null'=108 'uint64'=108
'->'=109 'true'=109
':'=110 'false'=110
';'=111 'null'=111
','=112 '->'=112
'.'=113 ':'=113
'{'=114 ';'=114
'}'=115 ','=115
'['=116 '.'=116
']'=117 '{'=117
'('=118 '}'=118
')'=119 '['=119
'<'=120 ']'=120
'>'=121 '('=121
'&'=122 ')'=122
'='=123 '<'=123
'>'=124
'&'=125
'='=126
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+3
View File
@@ -42,6 +42,9 @@ const pkg = resource(`import interface Tasks; import interface Task;
package Reports id "reports" revision "reports@1" { package Reports id "reports" revision "reports@1" {
query Report id "report" root Tasks document "report.graphql" operation "Report" { query Report id "report" root Tasks document "report.graphql" operation "Report" {
max rows 50; max rows 50;
max result-bytes 1048576;
max rpc-calls 100;
max deadline-ms 10000;
view TaskObject as Task; view TaskObject as Task;
allow Task.score aggregate "Bounded aggregation fixture"; allow Task.score aggregate "Bounded aggregation fixture";
allow Task.score predicate "Bounded aggregation fixture"; allow Task.score predicate "Bounded aggregation fixture";