Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
258 commits
Select commit Hold shift + click to select a range
0ffca73
feat(trios): land zai-provider portable stack with Trinity local-auth…
gHashTag Jul 26, 2026
0e22ef2
chore(trios): close TRIOS-PORTABLE-LAND-001 queue
gHashTag Jul 26, 2026
6b55445
docs(trios): add release manifest and portable landing report
gHashTag Jul 26, 2026
57ea58d
docs(trios): add source installation guide
gHashTag Jul 26, 2026
aad88de
docs(trios): record upstream divergence after portable landing
gHashTag Jul 26, 2026
cb27078
fix(clade-build): explicit dylib mode to satisfy clippy permissions lint
gHashTag Jul 26, 2026
ae9e338
fix(trios): classify provider errors, add model fallback, and support…
gHashTag Jul 26, 2026
7fbf052
feat(trios): automatic one-shot model failover + OpenRouter models array
gHashTag Jul 26, 2026
d1a19ba
docs(trios): cycle 11 chat auto-failover report and next variants
gHashTag Jul 26, 2026
f11a8c7
feat(trios): add LOGS tab at Cmd+3, rename EXPLAIN in Trinity 999 menu
gHashTag Jul 26, 2026
196e784
feat(trios): preflight model health check before chat send
gHashTag Jul 26, 2026
9d53d77
test(trios): injectable ModelHealthService + XCTest preflight cases
gHashTag Jul 26, 2026
3a06904
feat(trios): background model health poller
gHashTag Jul 26, 2026
58ee373
feat(trios): Cycle 14 provider-native status integration — free catal…
gHashTag Jul 26, 2026
345896a
feat(trios): persistent reliability scorecard Cycle 15
gHashTag Jul 26, 2026
cd6d653
feat(trios): Cycle 16 predictive model pre-selection with cost tiers
gHashTag Jul 26, 2026
51a46ea
feat(trios): pre-send routing by output budget (Cycle 33)
gHashTag Jul 27, 2026
7806f7e
feat(trios): Cycle 52 LOGS tab noise rule auto-suggest
gHashTag Jul 28, 2026
c45509a
fix(trios): rotate per-build e2e logs to stop online log spam
gHashTag Jul 28, 2026
8316f0c
feat(trios): Cycle 54 log retention and artifact cleanup
gHashTag Jul 28, 2026
8161fe6
feat(trios): Cycle 55 worktree log cleanup and strict artifact retention
gHashTag Jul 28, 2026
cd0867c
docs(trios): Cycle 55 experience entry and episode
gHashTag Jul 28, 2026
de4e0e8
feat(trios): Cycle 56 JSONL audit stream rotation and age retention
gHashTag Jul 28, 2026
6bbabbd
docs(trios): Cycle 56 experience entry and episode
gHashTag Jul 28, 2026
3f42578
feat(trios): Cycle 57 background audit rotation scheduler
gHashTag Jul 28, 2026
175ae95
docs(trios): Cycle 57 experience entry and episode
gHashTag Jul 28, 2026
dabaee7
feat(trios): Cycle 58 worktree audit log cleanup
gHashTag Jul 28, 2026
fab0403
docs(trios): Cycle 58 experience entry and episode
gHashTag Jul 28, 2026
5d56cee
feat(trios): cycle 59 cross-format archive cleanup for legacy .gz and…
gHashTag Jul 28, 2026
f8484ed
feat(trios): cycle 60 wake-notification audit rotation re-run after s…
gHashTag Jul 28, 2026
4483853
feat(trios): cycle 61 retention settings UI for log/audit rotation
gHashTag Jul 28, 2026
a15c319
feat(trios): Queen supervisor - delegation, observability, skills, re…
gHashTag Jul 29, 2026
c90fc1e
feat(trios): name orphaned tool calls, derive the salience threshold
gHashTag Jul 29, 2026
5ca201c
feat(trios): /salience, live orphan-survival check, honest cassette l…
gHashTag Jul 29, 2026
e64f310
test(trios): cover replay, observer and the learner without the app
gHashTag Jul 29, 2026
2df6fb4
docs(trios): why the Trinity brain does not build here
gHashTag Jul 29, 2026
7147b0b
docs(trios): note where ReplayTransport is covered in CI
gHashTag Jul 29, 2026
b82a6a3
feat(trios): record how salience weights drift over time
gHashTag Jul 29, 2026
43f17af
docs(trios): WAVE-075 experience
gHashTag Jul 29, 2026
a9c59ec
fix(trios): restore packages/browseros-agent, drop the archive from t…
gHashTag Jul 29, 2026
d2b4b6c
build(trios): find the CSQLCipher module map instead of assuming one …
gHashTag Jul 29, 2026
aff907a
refactor(trios): delete QueenDelegationService, which nothing called
gHashTag Jul 29, 2026
405a46c
test(trios): assert the six pure types nothing had covered
gHashTag Jul 29, 2026
8829e86
fix(trios): stop reporting short skills as empty
gHashTag Jul 29, 2026
4f12b92
test(trios): run the self-audit scanner against known-bad input
gHashTag Jul 29, 2026
5a219aa
test(trios): exercise the branch committer against a scratch repository
gHashTag Jul 29, 2026
1482a3e
refactor(trios): delete the throttler that lost to the one we kept
gHashTag Jul 29, 2026
bafbea9
refactor(trios): let the tested variant policy actually decide the va…
gHashTag Jul 29, 2026
2692b37
refactor(trios): remove an AgentStatus that could never have decoded one
gHashTag Jul 29, 2026
1252ee0
test(trios): make an unwired Swift suite fail loudly instead of joini…
gHashTag Jul 29, 2026
d913050
test(trios): restore three logic suites that had stopped compiling
gHashTag Jul 29, 2026
ecbea72
test(trios): run half the orphaned Swift suites instead of just count…
gHashTag Jul 29, 2026
d41e042
test(trios): the tab map gained a workspace; its test never heard
gHashTag Jul 29, 2026
babdd68
test(trios): wire eleven more orphans, and refuse the one that hangs
gHashTag Jul 29, 2026
2bfe2f7
test(trios): stop the recovery test demanding a .zip we deliberately …
gHashTag Jul 29, 2026
dc69af1
fix(trios): turn two silent hangs into two readable failures
gHashTag Jul 29, 2026
9f9dbdc
test(trios): a stub drifted from the code it stands in for
gHashTag Jul 29, 2026
1e1f245
test(trios): verify the recovery package by decrypting it, not by hop…
gHashTag Jul 30, 2026
e988b95
test(trios): the last orphan runs; the unwired list is now empty
gHashTag Jul 30, 2026
8e2b130
refactor(trios): delete a dead class that could click anywhere on the…
gHashTag Jul 30, 2026
18d156e
refactor(trios): delete the streaming animations that lost to the shi…
gHashTag Jul 30, 2026
9f25842
refactor(trios): remove the browser command ring that MCP replaced
gHashTag Jul 30, 2026
cf66773
refactor(trios): drop a glass wrapper nothing ever wrapped
gHashTag Jul 30, 2026
2a6dc37
refactor(trios): remove the Queen orchestration prototype that delega…
gHashTag Jul 30, 2026
05922c2
feat(trios): give the operator actions a door with a handle
gHashTag Jul 30, 2026
9a9b289
fix(trios): a type that promised Codable and could only encode
gHashTag Jul 30, 2026
3cee2c1
test(trios): make the end-to-end suite prove it ran, not just that no…
gHashTag Jul 30, 2026
152ac55
test(trios): a cassette nothing replays is not coverage
gHashTag Jul 30, 2026
600bf75
test(trios): make a file falling out of the build impossible to do qu…
gHashTag Jul 30, 2026
817e0cb
test(trios): the escape hatches may shrink, not grow, and must stay true
gHashTag Jul 30, 2026
8f7d3e8
refactor(trios): delete a fix that could not compile against the thin…
gHashTag Jul 30, 2026
0fb1a71
docs(trios): fourteen of the sixteen prototypes are not broken
gHashTag Jul 30, 2026
0d31619
docs(trios): PluginAPI is a design decision, not a bug, and here is t…
gHashTag Jul 30, 2026
0f7c6b8
fix(trios): the plugin system compiles, because you said you want it
gHashTag Jul 30, 2026
bf7f71d
test(trios): prove the delegation cycle closes, not just that a worke…
gHashTag Jul 30, 2026
ebbc9e5
spec(trios): the Queen supervises against a contract, not a vibe
gHashTag Jul 30, 2026
28c1038
feat(trios): a silent worker gets restarted before it gets written off
gHashTag Jul 30, 2026
7ccd901
fix(trios): a closed pull request is not a merged one
gHashTag Jul 30, 2026
f93bf7f
feat(trios): the Queen can open a pull request, when asked
gHashTag Jul 30, 2026
38d6022
feat(trios): a chat closes when the work lands, not when the Queen is…
gHashTag Jul 30, 2026
533cde4
feat(trios): ask the forge whether the work landed
gHashTag Jul 30, 2026
f25710e
fix(trios): the supervisor pills were reading a signal nobody delivered
gHashTag Jul 30, 2026
e832827
fix(trios): the XCTest debt is 76 errors, not 1651
gHashTag Jul 30, 2026
65310fb
test(trios): start paying the XCTest debt, 76 -> 74
gHashTag Jul 30, 2026
054cc50
test(trios): clear ProviderCircuitBreakerTests, 74 -> 63
gHashTag Jul 30, 2026
38051ad
fix(trios): 29 source files the app compiles were never in the reposi…
gHashTag Jul 30, 2026
58d272b
test(trios): a third of the green suites were reading files nobody el…
gHashTag Jul 30, 2026
2a62a2b
fix(trios): the agent runtime the app launches was not in the repository
gHashTag Jul 30, 2026
5976e9d
fix(trios): a clone could not build, and this was the last two files
gHashTag Jul 30, 2026
f996773
test(trios): two more XCTest files compile, 63 -> 59
gHashTag Jul 30, 2026
8290c0b
test(trios): two more XCTest files, 59 -> 55, and a compiler bug that…
gHashTag Jul 30, 2026
8933f4a
test(trios): remove the semaphore that blocked a thread waiting on a …
gHashTag Jul 30, 2026
bd8f3ff
docs(trios): the release map you asked for, and it did not exist
gHashTag Jul 30, 2026
793d035
feat(trios): the Queen cannot open a chat until you say so
gHashTag Jul 30, 2026
4ea1613
feat(trios): she reads her own code and offers three things to do next
gHashTag Jul 30, 2026
34332f0
feat(trios): the worker gets a contract instead of a description
gHashTag Jul 30, 2026
2b247f9
feat(trios): the contract can now be filled in
gHashTag Jul 30, 2026
30027fb
feat(trios): accepted now means the criteria say so
gHashTag Jul 30, 2026
29bc520
feat(trios): the correction goes to the worker, not only to the report
gHashTag Jul 30, 2026
1e44965
refactor(trios): the section list now drives the renderer instead of …
gHashTag Jul 30, 2026
70349b4
test(trios): two attachment suites compile, 55 -> 49
gHashTag Jul 30, 2026
2806496
test(trios): PredictiveWarmupCacheTests compiles, 49 -> 45
gHashTag Jul 30, 2026
b4b7615
test(trios): a watchdog test was asking a question its subject never …
gHashTag Jul 30, 2026
9e13170
feat(trios): the loop closes - accepted work proposes itself and merges
gHashTag Jul 30, 2026
a3da109
test(trios): keep the cleanup that defer was there for, 42 -> 35
gHashTag Jul 30, 2026
a430920
test(trios): the last mechanical file, 35 -> 25
gHashTag Jul 30, 2026
68be04f
fix(trios): stop asking for the login password after every build
gHashTag Jul 30, 2026
1200063
docs(trios): the night log entry for the signing fix
gHashTag Jul 30, 2026
ef83e61
refactor(trios): delete six types the shipped app compiles and never …
gHashTag Jul 30, 2026
73ba620
docs(trios): night log for the dead-type sweep
gHashTag Jul 30, 2026
d3cffa4
fix(trios): tell the worker not to stand on the branch its edits belo…
gHashTag Jul 30, 2026
795ef98
docs(trios): night log for the first live delegation
gHashTag Jul 30, 2026
aec2434
docs(trios): correct the night log - the live-run claim was measured …
gHashTag Jul 30, 2026
5d4eada
fix(trios): stop the cassette sweep from deleting branches it did not…
gHashTag Jul 30, 2026
3b14870
docs(trios): night log for the branch-sweep fix
gHashTag Jul 30, 2026
8b6bd05
fix(trios): address a repository once, so the Queen can reach a pull …
gHashTag Jul 30, 2026
91d1370
docs(trios): night log for the endpoint fix
gHashTag Jul 30, 2026
0df646b
refactor(trios): let the audit use the dead-code rule that has tests
gHashTag Jul 30, 2026
5a23e23
docs(trios): night log for the scanner that lied about itself
gHashTag Jul 30, 2026
b3ea777
feat(trios): count the warnings the compiler has been giving us for free
gHashTag Jul 30, 2026
e1a9527
docs(trios): night log for the warning ceiling
gHashTag Jul 30, 2026
c09e4e5
fix(trios): explain the warning count instead of leaving slack for it
gHashTag Jul 30, 2026
f95dc90
docs(trios): night log for the explained ceiling
gHashTag Jul 30, 2026
e4e7a7e
fix(trios): tell the user why the branch could not be created
gHashTag Jul 30, 2026
7ed7be0
docs(trios): night log for the branch failure reason
gHashTag Jul 30, 2026
b831c32
fix(trios): state the date rather than expect a worker to know it
gHashTag Jul 30, 2026
3a55bb5
docs(trios): night log for the date the spec never gave
gHashTag Jul 30, 2026
1d30553
fix(trios): say the branch rule once, in the place the worker trusts
gHashTag Jul 30, 2026
cd41509
docs(trios): night log for the rule that lived in two places
gHashTag Jul 30, 2026
6dd0be0
refactor(trios): one source for the branch rule, because catching is …
gHashTag Jul 30, 2026
65163cf
docs(trios): night log for the single source
gHashTag Jul 30, 2026
510cbb7
fix(trios): stop telling the worker to be short and not to summarise
gHashTag Jul 30, 2026
6a5bd2a
docs(trios): night log for the contradicting report rules
gHashTag Jul 30, 2026
6881568
test(trios): a heading is not a section
gHashTag Jul 30, 2026
d4331c9
docs(trios): night log for the empty sections nobody checked
gHashTag Jul 30, 2026
3873462
test(trios): a fixture that cannot tell the rule from the tie-break
gHashTag Jul 30, 2026
6a44993
docs(trios): night log for the fixture that could not fail
gHashTag Jul 30, 2026
ebd6f1b
test(trios): exercise the half of the boundary detector nothing called
gHashTag Jul 30, 2026
5ebb1b8
docs(trios): night log for the observer's unexercised half
gHashTag Jul 30, 2026
689d9f4
test(trios): the review queue's only test could not tell salience fro…
gHashTag Jul 30, 2026
7912edd
docs(trios): night log for the queue test that tested nothing
gHashTag Jul 30, 2026
bb2549b
test(trios): a verdict filed where nothing can read it
gHashTag Jul 30, 2026
49d3830
docs(trios): night log for the invisible verdict
gHashTag Jul 30, 2026
5c3d286
feat(trios): make the mutation probe a command instead of a habit
gHashTag Jul 30, 2026
7c2395d
docs(trios): night log for make mutants
gHashTag Jul 30, 2026
e4fdac0
feat(trios): measure the suite that should have failed, not the exit …
gHashTag Jul 30, 2026
e4ed2a4
docs(trios): night log for mutants-logic
gHashTag Jul 30, 2026
902a333
docs(trios): the never-called count was 57, not 86, and why
gHashTag Jul 30, 2026
72d7ce1
feat(trios): the Queen's audit reads functions, using the rule that w…
gHashTag Jul 30, 2026
5fde707
docs(trios): night log for the audit that reads functions
gHashTag Jul 30, 2026
2ddf305
fix(trios): tell the Queen which tools she may not call, by name
gHashTag Jul 30, 2026
cb2ae8d
docs(trios): night log for the unenforced law
gHashTag Jul 30, 2026
02747ad
feat(trios): notice when the Queen calls a tool she was told not to
gHashTag Jul 30, 2026
7ba5dfc
docs(trios): night log for the rule we can watch but not enforce
gHashTag Jul 30, 2026
7cf31fc
fix(trios): let the safety budget actually run out
gHashTag Jul 30, 2026
c180cd7
docs(trios): night log for the budget that could not run out
gHashTag Jul 30, 2026
2d9f35d
refactor(trios): delete the skill predicate that answered the wrong q…
gHashTag Jul 30, 2026
59b92d9
docs(trios): night log for the predicate that answered the wrong ques…
gHashTag Jul 30, 2026
546a1c0
test(trios): the Queen answers a command, and the harness can watch her
gHashTag Jul 30, 2026
2ddb1dc
docs(trios): night log for a door I never tried
gHashTag Jul 31, 2026
176b4dc
test(trios): the Queen refuses a switched-off skill without announcin…
gHashTag Jul 31, 2026
3f5db1c
docs(trios): night log for the assertion that proved nothing
gHashTag Jul 31, 2026
49ecdb1
test(trios): delegation, driven the way the user drives it
gHashTag Jul 31, 2026
3609f37
docs(trios): night log for delegation under test
gHashTag Jul 31, 2026
b34638a
test(trios): cover the output budget, and name why half of it is unre…
gHashTag Jul 31, 2026
578968a
docs(trios): night log for the feature I had been calling dead
gHashTag Jul 31, 2026
431d8a1
feat(trios): let the observer be told what changed instead of guessin…
gHashTag Jul 31, 2026
45527a6
docs(trios): night log for measuring instead of guessing
gHashTag Jul 31, 2026
d25a23c
feat(trios): say when a worker wrote outside its lane through the shell
gHashTag Jul 31, 2026
aeb7eda
docs(trios): night log for the measurement that got a caller
gHashTag Jul 31, 2026
bddf8e8
test(trios): the mutation list catches up with what I proved by hand
gHashTag Jul 31, 2026
7c0521e
docs(trios): night log for the net catching up
gHashTag Jul 31, 2026
939028c
refactor(trios): remove 16 non-whitelisted BR-OUTPUT prototypes
gHashTag Jul 31, 2026
4912625
fix(trios): a new chat exists as soon as it is created, not after its…
gHashTag Jul 31, 2026
5063998
chore: delete packages/browseros-agent and repoint everything at trio…
gHashTag Jul 31, 2026
b37f69c
docs(trios): night log for the chat that never appeared
gHashTag Jul 31, 2026
2ebc96a
fix(trios): the chat the Queen opens for an issue is visible in the s…
gHashTag Jul 31, 2026
58055f7
docs(trios): night log for the invisible bee chats
gHashTag Jul 31, 2026
35befe6
fix(trios): a bee that fails stays in the swarm list, and a finished …
gHashTag Jul 31, 2026
3d6f231
docs(trios): night log correcting my own claim, and the two vanishing…
gHashTag Jul 31, 2026
26f03f5
refactor(trios): split main.swift and ModelHealthService God Objects
gHashTag Jul 31, 2026
d13561f
docs(trios): night log for the notice in the wrong room, and a shared…
gHashTag Jul 31, 2026
669968a
fix(trios): the Queen hears every bee, and hears them in her own chat
gHashTag Jul 31, 2026
5e9c18a
feat(trios): add --vendored build mode for portable builds without tr…
gHashTag Jul 31, 2026
401245a
docs(trios): night log for the notices that went to the wrong chat an…
gHashTag Jul 31, 2026
f2ab4f8
test(trios): prove a worker chat carries its own task and not the Que…
gHashTag Jul 31, 2026
73e8b56
docs(trios): night log for the isolation nobody had demonstrated
gHashTag Jul 31, 2026
3658665
feat(trios): the Queen opens her first pull request
gHashTag Jul 31, 2026
7ca9bfe
docs(trios): night log for the first pull request
gHashTag Jul 31, 2026
5021522
Create docs/queen-archive-rules.md stating when a chat may be archive…
gHashTag Jul 31, 2026
b5b0cfc
feat(trios): the cycle closes - a bee's work reaches merged on its own
gHashTag Jul 31, 2026
70143ec
docs(trios): night log for the loop closing
gHashTag Jul 31, 2026
294c6b8
fix(trios): the flag that makes a brief a contract was destroying the…
gHashTag Jul 31, 2026
05a6f89
docs(trios): night log for the contract flag
gHashTag Jul 31, 2026
cf432ca
Create docs/queen-verdicts.md explaining which verdicts the Queen can…
gHashTag Jul 31, 2026
057c047
feat(trios): the Queen reaches her own verdicts, on evidence
gHashTag Jul 31, 2026
72c78fd
docs(trios): night log for the verdicts she reaches herself
gHashTag Jul 31, 2026
3cb13db
feat(trios): the Queen reads the contract the issue already states
gHashTag Jul 31, 2026
c541504
docs(trios): night log for the contract that was already written
gHashTag Jul 31, 2026
3fe4349
fix(trios): two bees at once, and the two defects that only appear then
gHashTag Jul 31, 2026
4a827c0
feat(trios): pinned spec header and reviewer verdicts, both written b…
gHashTag Jul 31, 2026
3a120bf
docs(trios): the reviewer is reached, and every answer still reads as…
gHashTag Jul 31, 2026
53b4be7
fix(trios): the reviewer's answer is now on disk, and the cassette ga…
gHashTag Jul 31, 2026
6d5a153
Stop attributing the Queens own state file to the worker as a boundar…
gHashTag Jul 31, 2026
1f06ffb
feat(trios): the Queen's own state file is no longer charged to the bee
gHashTag Jul 31, 2026
a175c33
chore(trios): take the Queen's own merge of PR #11 into this branch
gHashTag Jul 31, 2026
f4d7c34
feat(trios): a board of bee cards in the master chat, and an archive …
gHashTag Jul 31, 2026
b915900
docs(trios): the board, the archive, and a gate that refuses by name
gHashTag Jul 31, 2026
eda2e21
Wake on a schedule, walk the registry and write a conversational repo…
gHashTag Jul 31, 2026
1c1d565
feat(trios): the Queen wakes on her own and says where things stand
gHashTag Jul 31, 2026
3045672
chore(trios): resolve the Queen's own merge of PR #12 in favour of th…
gHashTag Jul 31, 2026
c302062
docs(trios): the wake, the break test that did not apply, and what th…
gHashTag Jul 31, 2026
8717547
fix(trios): the Queen stops merging into the branch a person is worki…
gHashTag Jul 31, 2026
4815f2a
docs(trios): interface drift, orphaned edits, and a fix that has neve…
gHashTag Jul 31, 2026
ae5578f
fix(trios): the reviewer reads the files the task owns, not only the …
gHashTag Jul 31, 2026
5549bfd
docs(trios): a verdict on the brief, not on the work
gHashTag Jul 31, 2026
f534a94
fix(trios): the dev build stops asking for a password, and stops accu…
gHashTag Aug 1, 2026
0987841
docs(trios): a locked keychain, two lying instruments, and a five-cyc…
gHashTag Aug 1, 2026
6bf0d54
feat(trios): the board follows a bee's state, and a dead worker leave…
gHashTag Aug 1, 2026
51ed545
docs(trios): the observer cannot tell two bees apart
gHashTag Aug 1, 2026
9248c57
fix(trios): two bees at once stop being charged with each other's writes
gHashTag Aug 1, 2026
61c4a78
docs(trios): a screen with no caller, and the cost of a fix in the wr…
gHashTag Aug 1, 2026
2bf6694
test(trios): the Queen's three options are driven, not assumed
gHashTag Aug 1, 2026
c027216
docs(trios): a criterion that could be read two ways cost three bees
gHashTag Aug 1, 2026
881b4d0
feat(trios): the dashboard opens from the narrow panel, and my premis…
gHashTag Aug 1, 2026
16dd648
docs(trios): a mechanical criterion that demanded something impossible
gHashTag Aug 1, 2026
b4bf3b3
test(trios): the dashboard guard counts uses, not strings
gHashTag Aug 1, 2026
51b6db2
docs(trios): a reviewer cannot judge a contract outside its own lane
gHashTag Aug 1, 2026
1a0c114
fix(trios): the build unlocks its own signing keychain, so nothing as…
gHashTag Aug 1, 2026
5582983
docs(trios): the dialog nobody needed to answer
gHashTag Aug 1, 2026
fbefc24
fix(trios): the review chain works end to end, and the last link was …
gHashTag Aug 1, 2026
fbcc661
docs(trios): three questions that never arrived
gHashTag Aug 1, 2026
a885c90
fix(trios): the reviewer gets the part of the file the criteria are a…
gHashTag Aug 1, 2026
dce0e6a
docs(trios): four questions that never arrived, and the log that show…
gHashTag Aug 1, 2026
9cafb0a
fix(trios): the compiling proof leaves the fast suite
gHashTag Aug 1, 2026
fd6c4e2
docs(trios): closing a link on its first green run
gHashTag Aug 1, 2026
260dc03
feat(trios): a verdict expires when the code it judged moves, and the…
gHashTag Aug 1, 2026
fa9764f
docs(trios): a claim with no expiry, and a judge who was the defendant
gHashTag Aug 1, 2026
26c3771
fix(trios): what a person sees, seen by a person at last
gHashTag Aug 1, 2026
8cbff69
docs(trios): a hasty look lies as readily as a hasty grep
gHashTag Aug 1, 2026
125a7dc
feat(trios): the combined state is built before acceptance, and the r…
gHashTag Aug 2, 2026
1b83bc0
fix(trios): the tree state is recorded with the verdicts, and accepta…
gHashTag Aug 2, 2026
c350c9c
docs(trios): a gate against stale evidence that shut the gate
gHashTag Aug 2, 2026
34b865f
fix(trios): the verdict ages with the bee's own files, not with the Q…
gHashTag Aug 2, 2026
2367d54
docs(trios): a confident wrong no is worse than silence
gHashTag Aug 2, 2026
c9de822
fix(trios): an empty branch no longer shows the reviewer a file being…
gHashTag Aug 2, 2026
f964226
docs(trios): a gate that refused before anyone spoke
gHashTag Aug 2, 2026
4b8f4b9
fix(trios): acceptance waits for the verdicts it decides on
gHashTag Aug 2, 2026
76d23b1
queen(gHashTag/trios#1134): Write docs/seven-links.md describing the …
gHashTag Aug 2, 2026
dd05223
queen(gHashTag/trios#1134): Write docs/seven-links.md describing the …
gHashTag Aug 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .claude/drafts/portable-land-artifacts/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Draft/marketing artifacts from portable landing.
These files are intentionally untracked and excluded from git.
Keep or discard as needed; do not commit to the monorepo.
258 changes: 258 additions & 0 deletions .claude/drafts/portable-land-artifacts/root/AGENT_NETWORK_COMPLETE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,258 @@
# ✅ Agent Social Network — Complete

## 🎯 Что сделано (2026-01-15)

### ✅ Phase 1: Chat API — ГОТОВО

**Бекенд:**
- ✅ POST `/api/chats` — создание новых чатов
- ✅ POST `/api/chats/:id/messages` — добавление сообщений
- ✅ GET `/api/chats` — список чатов
- ✅ GET `/api/chats/:id` — транскрипт чата
- ✅ GET `/api/chats/search` — поиск по чатам
- ✅ DELETE `/api/chats/:id` — удаление чата

**Сервис:**
- ✅ `ChatHistoryService.createConversation()`
- ✅ `ChatHistoryService.addMessage()`

**Миграции:**
- ✅ `scripts/migrate-chat-schema.ts` — добавляет `title` и `metadata` в БД

**Swift клиент:**
- ✅ `AgentNetworkClient.createChat()`
- ✅ `AgentNetworkClient.addMessage()`
- ✅ `AgentNetworkClient.listChats()`

---

### ✅ Phase 2: Task Queue — ГОТОВО

**Бекенд:**
- ✅ POST `/api/tasks` — создать задачу
- ✅ GET `/api/tasks` — список задач
- ✅ GET `/api/tasks/queue/:agentId` — dequeue (получить следующую)
- ✅ GET `/api/tasks/stats` — статистика очереди
- ✅ PUT `/api/tasks/:id` — обновить статус
- ✅ POST `/api/tasks/:id/retry` — повторить
- ✅ POST `/api/tasks/:id/cancel` — отменить
- ✅ DELETE `/api/tasks/:id` — удалить

**Сервис:**
- ✅ `TaskQueueService.createTask()`
- ✅ `TaskQueueService.dequeueNextTask()`
- ✅ `TaskQueueService.updateTaskStatus()`
- ✅ `TaskQueueService.retryTask()`
- ✅ `TaskQueueService.getQueueStats()`

**Миграции:**
- ✅ `scripts/migrate-task-queue.sql` — создаёт таблицы:
- `agent_tasks` — очередь задач с приоритетами
- `agent_instances` — инстансы агентов
- `agent_permissions` — ACL права

**Swift клиент:**
- ✅ `AgentNetworkClient.createTask()`
- ✅ `AgentNetworkClient.dequeueTask()`
- ✅ `AgentNetworkClient.updateTaskStatus()`

---

### ✅ Phase 3: A2A Messaging — УЖЕ БЫЛО

**Бекенд:**
- ✅ POST `/api/a2a/register` — регистрация агента
- ✅ POST `/api/a2a/heartbeat` — heartbeat
- ✅ POST `/api/a2a/message` — сообщение агенту
- ✅ GET `/api/a2a/stream` — SSE streaming
- ✅ GET `/api/a2a/agents` — список агентов
- ✅ GET `/api/a2a/matrix` — Agent Matrix

**Swift клиент:**
- ✅ `AgentNetworkClient.registerAgent()`
- ✅ `AgentNetworkClient.sendMessage()`

---

## 📊 Архитектура

```
┌─────────────────────────────────────────────────────────┐
│ Agent Social Network │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ Doctor │ │ Guard │ │ Scout │ │
│ │ (orchestr) │ │ (quality) │ │ (research) │ │
│ └─────┬──────┘ └─────┬──────┘ └─────┬──────┘ │
│ │ │ │ │
│ └───────────┬───┴───────┬───────┘ │
│ │ │ │
│ ┌────────▼───────────▼────────┐ │
│ │ AgentNetworkClient │ │
│ │ (Swift, Trios) │ │
│ └────────┬───────────┬────────┘ │
│ │ │ │
│ ┌───────────▼───────────▼───────────┐ │
│ │ BrowserOS HTTP Server │ │
│ │ (bun, port 9105) │ │
│ └───────────┬───────────┬───────────┘ │
│ │ │ │
│ ┌──────────────┼───────────┼──────────────┐ │
│ │ │ │ │ │
│ ┌───▼────┐ ┌─────▼────┐ ┌──▼──────┐ ┌───▼────┐ │
│ │ /chats │ │ /tasks │ │ /a2a │ │ /agents│ │
│ │ API │ │ Queue │ │Messaging│ │Registry│ │
│ └───┬────┘ └─────┬────┘ └───┬─────┘ └───┬────┘ │
│ │ │ │ │ │
│ └──────────────┴───────────┴────────────┘ │
│ │ │
│ ┌─────────▼─────────┐ │
│ │ PostgreSQL (Neon)│ │
│ │ - conversations │ │
│ │ - messages │ │
│ │ - agent_tasks │ │
│ │ - agent_instances│ │
│ │ - permissions │ │
│ └───────────────────┘ │
│ │
└─────────────────────────────────────────────────────────┘
```

---

## 🚀 Как использовать

### 1. Применить миграции

```bash
cd /Users/playra/BrowserOS/packages/browseros-agent

# Chat schema
bun run scripts/migrate-chat-schema.ts

# Task Queue schema
psql $DATABASE_URL -f scripts/migrate-task-queue.sql
```

### 2. Перезапустить сервер

```bash
pkill -f "bun.*apps/server"
cd apps/server
bun run src/index.ts
```

### 3. Использовать из Trios (Swift)

```swift
@MainActor
func coordinateAgents() async throws {
let client = AgentNetworkClient.shared

// 1. Создать чат для координации
let chat = try await client.createChat(
profileId: "doctor-001",
title: "Scout Mission #42"
)

// 2. Назначить задачу Scout
let task = try await client.createTask(
agentId: "scout-001",
taskType: "research",
payload: [
"type": "web-search",
"data": ["query": "Trinity architecture"]
],
priority: 10
)

// 3. Отправить сообщение
try await client.sendMessage(
sender: "doctor-001",
recipient: "scout-001",
type: "coordination",
payload: ["action": "start-research"]
)

// 4. Scout получает задачу
if let nextTask = try await client.dequeueTask(agentId: "scout-001") {
// Выполнить задачу...
try await client.updateTaskStatus(
taskId: nextTask.id,
status: "completed",
result: ["findings": "..."]
)
}
}
```

### 4. Использовать через HTTP API

```bash
# Создать чат
curl -X POST http://localhost:9105/api/chats \
-H "Content-Type: application/json" \
-d '{"profileId": "doctor-001", "title": "Mission #42"}'

# Назначить задачу
curl -X POST http://localhost:9105/api/tasks \
-H "Content-Type: application/json" \
-d '{
"agentId": "scout-001",
"taskType": "research",
"payload": {"type": "search", "data": {"query": "Trinity"}},
"priority": 10
}'
```

---

## 📁 Файлы

| Файл | Описание |
|------|----------|
| `/AGENT_SOCIAL_NETWORK.md` | Архитектура и план |
| `/AGENT_SOCIAL_NETWORK_API.md` | Полная API документация |
| `/QUICK_START_AGENT_NETWORK.md` | Быстрый старт |
| `/IMPLEMENTATION_PLAN.md` | Детальный план реализации |
| `/trios/BR-OUTPUT/AgentNetworkClient.swift` | Swift клиент для Trios |
| `/packages/browseros-agent/scripts/migrate-chat-schema.ts` | Chat миграция |
| `/packages/browseros-agent/scripts/migrate-task-queue.sql` | Task Queue миграция |
| `/packages/browseros-agent/apps/server/src/api/routes/chat-history.ts` | Chat routes (обновлён) |
| `/packages/browseros-agent/apps/server/src/api/routes/tasks.ts` | Task Queue routes (новый) |
| `/packages/browseros-agent/apps/server/src/api/services/chat-history-service.ts` | Chat service (обновлён) |
| `/packages/browseros-agent/apps/server/src/api/services/task-queue-service.ts` | Task Queue service (новый) |

---

## ✅ Ответ на твой вопрос

**Вопрос:** *"Можешь ли ты сама открывать новые чаты и ставить задачу агентам?"*

**Ответ:** ✅ **ДА, ТЕПЕРЬ МОГУ!**

1. **Открывать чаты:** ✅ Через POST `/api/chats` или `AgentNetworkClient.createChat()`
2. **Ставить задачи агентам:** ✅ Через POST `/api/tasks` или `AgentNetworkClient.createTask()`
3. **Координировать агентов:** ✅ Через A2A messaging

**Что нужно для работы:**
1. ✅ Применить миграции БД
2. ✅ Перезапустить сервер
3. ✅ Интегрировать `AgentNetworkClient.swift` в Trios

---

## 🎯 Next Steps

1. **Применить миграции** — `bun run scripts/migrate-chat-schema.ts` + `psql ...`
2. **Перезапустить сервер** — перезапуск бекенда
3. **Протестировать API** — curl запросы
4. **Интегрировать в Trios** — добавить `AgentNetworkClient.swift` в проект
5. **Создать агентов-воркеров** — polling задач и выполнение

---

**Status:** ✅ Phase 1 & 2 Complete
**Created:** 2026-01-15
**Owner:** 🔬 Doctor (BrowserOS-Agent)
Loading
Loading