taskuary 0.3.9.76__tar.gz → 0.3.9.78__tar.gz
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.
- {taskuary-0.3.9.76/taskuary.egg-info → taskuary-0.3.9.78}/PKG-INFO +72 -29
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/README.md +71 -28
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/pyproject.toml +1 -1
- taskuary-0.3.9.78/taskuary/blanks.json +10 -0
- taskuary-0.3.9.78/taskuary/blanks.py +45 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/concierge.py +1 -1
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/demo.py +66 -11
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/funnel.py +3 -1
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/general.py +16 -9
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/ingest.py +1 -1
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/processing_all.py +1 -1
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/processing_unread.py +1 -1
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/quickwork.py +1 -1
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/rank.py +1 -1
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/rulebook.py +6 -1
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/server.py +6 -4
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/sessionrecord.py +37 -4
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/store.py +9 -4
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/triage.md +2 -1
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/terminal.py +9 -3
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/triage.py +8 -1
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/verdicts.py +23 -0
- taskuary-0.3.9.76/taskuary/web/assets/AssistantGame-BGwe1A6_.js → taskuary-0.3.9.78/taskuary/web/assets/AssistantGame-BveZsJNM.js +2 -2
- taskuary-0.3.9.76/taskuary/web/assets/BoardView-CX6FW0eJ.js → taskuary-0.3.9.78/taskuary/web/assets/BoardView-BdtK_TXd.js +2 -2
- taskuary-0.3.9.76/taskuary/web/assets/CanvasBrowse-CrT6syzs.js → taskuary-0.3.9.78/taskuary/web/assets/CanvasBrowse-C3dNVIEi.js +2 -2
- taskuary-0.3.9.76/taskuary/web/assets/ConnectorsView-BzNeO5Hi.js → taskuary-0.3.9.78/taskuary/web/assets/ConnectorsView-CjC6ol5w.js +1 -1
- taskuary-0.3.9.76/taskuary/web/assets/FirstRun-BNzoLE6Z.js → taskuary-0.3.9.78/taskuary/web/assets/FirstRun-C86Ee_mg.js +1 -1
- taskuary-0.3.9.76/taskuary/web/assets/GameScene-YsnjSK0c.js → taskuary-0.3.9.78/taskuary/web/assets/GameScene-CDFr2icT.js +1 -1
- taskuary-0.3.9.76/taskuary/web/assets/GeneralWorkspace-Dch3nipw.js → taskuary-0.3.9.78/taskuary/web/assets/GeneralWorkspace-DnqouexF.js +12 -12
- taskuary-0.3.9.78/taskuary/web/assets/GeneralWorkspace-pvY5jJDM.css +1 -0
- taskuary-0.3.9.76/taskuary/web/assets/HubView-U-rQcGz4.js → taskuary-0.3.9.78/taskuary/web/assets/HubView-BXSBXX2s.js +1 -1
- taskuary-0.3.9.76/taskuary/web/assets/SaveNote-BrKPik2-.js → taskuary-0.3.9.78/taskuary/web/assets/SaveNote-BuFDPmWB.js +1 -1
- taskuary-0.3.9.76/taskuary/web/assets/SettingsView-D77-ppMl.js → taskuary-0.3.9.78/taskuary/web/assets/SettingsView-DabQhObb.js +3 -3
- taskuary-0.3.9.76/taskuary/web/assets/Slider-DmZosoFv.js → taskuary-0.3.9.78/taskuary/web/assets/Slider-BUCDL-Xe.js +1 -1
- taskuary-0.3.9.76/taskuary/web/assets/TasksView-C60v-Dze.js → taskuary-0.3.9.78/taskuary/web/assets/TasksView-DPXqcslF.js +1 -1
- taskuary-0.3.9.78/taskuary/web/assets/index-DCO1eA8i.js +474 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/index.html +1 -1
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/words.json +1 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78/taskuary.egg-info}/PKG-INFO +72 -29
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary.egg-info/SOURCES.txt +17 -14
- taskuary-0.3.9.78/tests/test_blanks.py +102 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_demo.py +64 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_quick_work.py +8 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reply_needs_agent.py +1 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_rulebook.py +10 -0
- taskuary-0.3.9.78/tests/test_scam_reads_as_danger.py +72 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_session_record.py +26 -0
- taskuary-0.3.9.76/taskuary/web/assets/GeneralWorkspace-BB6eU5DH.css +0 -1
- taskuary-0.3.9.76/taskuary/web/assets/index-CoFCrRS6.js +0 -474
- taskuary-0.3.9.76/tests/test_scam_reads_as_danger.py +0 -21
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/LICENSE +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/setup.cfg +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/__init__.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/acp.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/advisor.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/agents.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/agenttools.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/aidefaults.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/aisetup.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/alchemy.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/amazon_sp.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/appfacts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/artifacts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/asks.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/assistant.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/assistantblocks.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/attachtext.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/autoreply.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/awake.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/aws.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/azure.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/background.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/batch.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/blackboard.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/brainroute.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/brief.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/browsergate.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/browserview.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/bugreport.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/bulk.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/buttons.json +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/buttons.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/byrecipient.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/calendar.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/calwrite.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/capabilities.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/categories.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/chains.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/channels.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/chatformat.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/chatgptauth.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/chatservers.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/ci.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/claude_artifacts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/cli.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/cli_connections.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/cli_install_terminal.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/cliinstall.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/climodels.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/clipool.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/clis.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/clisetup.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/cloudfix.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/combine.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/compose.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/config.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/connectorcatalog.json +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/connectorcatalog.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/context.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/continuity.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/counsel.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/dashboards.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/databases.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/db.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/dependents.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/deps.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/desktop.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/devtools.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/digest.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/docsync.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/doorway_browse.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/episodes.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/evalset.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/evening.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/failures.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/faults.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/fileaccess.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/files.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/filing.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/firstrun.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/floor.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/flow.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/funnel_presentation.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/funnel_selection.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/ghcloseout.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/github.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/goals.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/googlecal.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/guard.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/handbook.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/handraise.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/histgen.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/hooks.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/hub.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/images.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/imapmail.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/imessage.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/instance.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/intacct.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/interview.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/invoice_workflow.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/jev.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/kbembed.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/kinds.json +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/kinds.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/knowledge.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/lanes.json +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/lanes.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/launchkey.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/learn.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/learned_cut.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/learnedgraph.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/learnedlines.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/linkdocs.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/linkedin.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/live.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/llm.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/logs.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/lookups.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/mailauth.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/mailsearch.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/markets.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/mcp.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/memoryedit.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/memorylines.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/messengers.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/msauth.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/mssql.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/net.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/operations.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/orgchart.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/origin.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/outbound.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/outbox.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/outcomes.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/outputs.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/ownwork.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/pathcache.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/people.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/people_pages.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/peoplesearch.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/playbook_facts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/playbooks.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/pm.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/policy.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/presses.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/problems.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/processing.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/processing_inventory.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/processing_membership.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/processing_navigation.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/processing_order.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/processing_projection.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/processing_rail.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/processing_reads.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/processing_startup.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/projects.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/promote.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/promptmap.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/proof.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/proposals.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/quickbooks.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/railcheck.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/reasonnet.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/recentlydeleted.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/redact.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/remind.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/remote_assistant.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/reports.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/research.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/reshape.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/responder.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/retention.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/robinhood.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/roles.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/routing.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/routingmemory.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/scopes.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/search.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/selfclose.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/semantic.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/senders.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/sendfilter.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/sentjudge.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/session_artifacts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/sessionfiles.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/settings_defaults.json +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/settings_schema.json +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/settings_schema.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/setup.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/sharepoint.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/sharing.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/sheets.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/shellgate.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/signatures.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/signin.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/simplefin.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/since.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/skillimport.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/skills/soul-interview/SKILL.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/skills/taskuary-setup/SKILL.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/slots.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/social.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/spawn.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/stages.json +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/stages.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/sweep.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/taskstate.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/teller.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/agent.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/analyst.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/ap.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/assistant.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/coding.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/coordinator.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/counsel.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/digest.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/history/counsel-0.3.3.5.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/history/counsel-0.3.6.8.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/history/counsel-0.3.6.9-examples.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/history/counsel-0.3.6.9-remind.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/history/counsel-0.3.6.9.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/history/counsel-0.3.7.10.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/history/counsel-0.3.7.4.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/history/counsel-0.3.7.7.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/history/counsel-0.3.9.3-audit.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/history/counsel-0.3.9.3-buttons.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/history/counsel-0.3.9.3.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/history/counsel-0.3.9.6-router.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/how-it-works.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/job.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/learned.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/marketer.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/playbook.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/profile.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/researcher.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/soul.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/style.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/templates/trader.md +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/testing.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/textsim.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/timewords.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/toil.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/toolcatalog.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/totp.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/trackers.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/trackrecord.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/treg.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/triage_kind_rules.json +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/troubleshoot.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/unpack.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/unsubscribe.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/update.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/usual.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/vault.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/voice.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/wabridge.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/waiton.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/waitroom.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/walk.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/wanames.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/OFL-IBM-Plex-Mono.txt +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/OFL-IBM-Plex-Sans.txt +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2 +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2 +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2 +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2 +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2 +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2 +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2 +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2 +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2 +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2 +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2 +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/assets/ibm-plex-sans-latin-ext-700-normal-aMgXseD4.woff2 +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/assets/index-DQfmlxp2.css +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/favicon.ico +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/favicon.png +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/walk/assistant.png +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/walk/board.png +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/walk/connections.png +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/walk/docs.png +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/walk/hub.png +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/walk/reports.png +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/walk/settings.png +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/web/walk/tasks.png +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/webguard.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/welcome.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/whatsapp/bridge.mjs +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/whatsapp/health.mjs +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/whatsapp/package.json +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/whatsapp/policy.mjs +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/whatsapp/poll.mjs +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/whatsapp/roster.mjs +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/whoami.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/witness.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/words.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/workerstate.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/workflows.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/working.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/wrapup.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/writeup.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary/zoho.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary.egg-info/dependency_links.txt +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary.egg-info/entry_points.txt +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary.egg-info/requires.txt +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/taskuary.egg-info/top_level.txt +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_acp.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advice_status.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_after_send.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_agreement.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_audit_rulings.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_cases.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_consistent.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_context.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_critique_fix.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_finish_check.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_idea_words.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_memory_live.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_memory_reason.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_press.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_refused.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_rules.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_task_source.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_advisor_usual.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_answer_route.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_answers_and_reminders.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_asking.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_asks_to_move.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_box.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_closed_page.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_environment.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_history_search.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_identity.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_profiles.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_question_once.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_reply.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_sends_are_proposals.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_sentence.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_source.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_state_after_answer.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_states_agree.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_steps_backends.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_ticks.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_toolbox.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_agent_wall.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_ai_defaults.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_ai_not_overruled.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_aisetup.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_alchemy.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_amazon_sp.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_an_inbox_is_not_a_destination.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_answered_outside_opens_close_out.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_answered_yourself.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_answers.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_api.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_api_web.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_api_worker_signals.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_app_own_screens.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_app_uptime.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_appfacts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_approval_interrupt.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_approve_what_was_shown.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_archive_is_read.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_arrived_today.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_asks.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_acts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_blocks.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_can_look_things_up.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_doorways.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_fast.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_ideas.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_meeting.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_notifications.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_payload_offers.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_presentation.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_queries.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_quick.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_reactions.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_router.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_verdicts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_walk.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_assistant_whole_app.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_async_triage.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_attachment_text.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_audit_chain.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_audit_fixes.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_auto_start.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_autoreply.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_aws_region.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_azure_discovery.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_background_work.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_banner_is_one_rule.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_batch.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_batch_session_end.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_blackboard.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_brain_layer.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_brain_reaches_the_session.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_brain_resolver.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_brain_said.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_brainroute.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_brainroute_api.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_brainroute_auto.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_brainroute_data.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_brainroute_draft.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_brainroute_escalate.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_brainroute_health.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_brainroute_judged.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_brainroute_log.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_brainroute_person.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_brainroute_strong.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_browser_gate.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_browser_session.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_browser_view_in_canvas.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_browser_workflow.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_browserview.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_bugreport.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_bugreport_api.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_bugreport_draft.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_bugreport_scrub.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_button_promises.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_buttons.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_buttons_catalog.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_calendar.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_calendar_today.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_calendar_write.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_call_road_checks.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_canvas_block.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_canvas_relay.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_canvas_sections.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_capabilities.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_card_save_keeps_on_off.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_card_story_phone.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_carry_on.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_categories.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cc.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cc_triage.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chase_lit_is_chase_done.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chat_doors.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chat_echo_mail.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chat_freshness.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chat_is_not_one_task.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chat_proposals.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chat_queue.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chat_relationship.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chat_retention.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chat_setup.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chat_shows.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chat_trust.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chatformat.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chatgpt_signin_ends.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chatgptauth.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chatservers.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_chinese_clis.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_claude_artifacts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_clean_context.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cli_connections.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cli_failure.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cli_help.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cli_install.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cli_install_terminal.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cli_not_assumed.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cli_on_fresh_path.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cli_prompt_road.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cli_setup.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cli_update.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_climodels.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_clipool.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_clis.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_close_slots.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_close_with_a_note.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_closed_task_is_not_fyi.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_closed_thread_joins_open_job.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_closeout.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cloud.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cloud_sources.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cloudfix.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_coding_asks_before_deploy.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_coding_needs_a_cli.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_coding_session_continuity.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_combine_level.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_completion_freshness.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_compose.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_compose_sources.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_compose_workflows.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_computer_use_ux.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_concierge.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_concierge_chat_ai.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_concierge_counsel.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_config.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_connected_count.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_connector_dependents.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_context.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_context_refresh_freshness.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_continue_after_self_close.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_continue_session.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_coordination.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_core.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_correction_doors.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_counsel.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_counsel_consumers.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_counsel_migration.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_counsel_sections.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_current_restore.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_cwlogs_paging.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_danger_holds_start.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_danger_verdict.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_dashboards.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_data_is_coding.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_databases.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_deps.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_desktop.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_devin.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_devtools.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_diff_review.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_digest_brief.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_dispatch_retries.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_docs_and_llm.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_docs_flow.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_docs_manifest.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_draft_choices.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_draft_with_ai_is_never_put_down.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_drafter_needs_is_not_a_failure.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_drafter_sees_who_is_asked.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_due_days.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_duplicate_connectors.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_edit_recipient.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_email_chains.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_email_identity_routing.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_ending_a_run_writes_the_answer.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_ending_keeps_the_write_up.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_episodes.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_evening_brief.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_every_card_is_reachable.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_every_cli_startable.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_exe_splash.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_explicit_completion.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_factory.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_failed_acts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_failed_agent_is_a_failure.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_faults_inert.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_feed_lookups.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_feed_working.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_feedback_ask_is_answered.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_file_routes.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_files.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_files_promised.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_filing.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_final_answer_capture.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_finished_agent_one_state.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_finished_chat_stays_finished.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_first_run_triage.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_firstrun.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_floating_assistant.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_floor.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_floor_bypasses.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_floor_wave_b.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_flow.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_flow_is_a_report.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_flow_review.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_flow_untrusted.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_follow_up_verdict.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_fresh_evaluation.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_freshness.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_freshness_walk.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_funnel.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_fyi_paging.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_fyi_thread_row.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_general.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_general_agent_permissions.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_general_brain_is_chosen.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_general_knows_the_repos.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_general_reads_the_hub.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_general_report_note.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_general_turn_ends_short.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_github_auto.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_github_images.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_github_poll_scope.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_goal_serves.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_goals_api.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_goals_chat.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_goals_promises.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_goals_rail.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_goals_store.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_gone_surfaces.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_google_calendar_signin.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_guard.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_habit_end_to_end.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_hand_task_checklist.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_handbook.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_handbook_topics.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_handoff_channels.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_handraise.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_harvest.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_held_ask_answers.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_hipaa_ai.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_histgen.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_home_is_never_yours.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_hook_never_hangs_silently.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_hook_off_loop.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_hook_token_file.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_hooks_events.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_hooks_version.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_how_it_works.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_idea_verdicts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_ideas_triage.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_ignore_sender.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_ignore_sender_quiets_its_work.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_images.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_imap_catchup.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_imap_history.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_imap_sent_threads.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_imapmail.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_imessage.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_inline_pictures.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_intacct.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_interrupted_work.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_invite_is_not_work.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_invoice_workflow.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_jev.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_judge_reads_the_conclusion.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_kind_dispatch.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_kinds.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_knowledge.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_knowledge_semantic.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_lane_vocabulary.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_lanes_registry.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_later_today.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_launch_key.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_launch_key_private.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_layer_profiles.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_learn_put_off.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_learned_by_reader.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_learnedgraph.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_lifecycle.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_lifespan_loops_are_guarded.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_linked_documents.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_linkedin.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_linkedin_connect.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_linkedin_signin.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_live.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_local_file.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_lookup_limits.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_lookups.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_mail_catchup.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_mail_fetch_cost.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_mail_folders.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_mailauth.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_mailbox_identity.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_mark_done_unsent_reply.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_mark_read.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_markets.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_mcp.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_meeting_prep.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_meeting_prepare.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_memory_edit.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_memory_gates.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_memory_one.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_memory_yardstick.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_message_thread.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_messengers.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_model_list.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_morning_line.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_msauth.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_mssql.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_multi_connectors.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_multi_question.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_muse.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_net.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_new_meeting.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_new_task_from_words.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_new_walk_off_the_lifespan.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_no_ai_has_a_way_on.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_no_checkout_no_start.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_no_coding_tool_no_start.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_no_dispatch_while_agent_runs.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_no_gateway_address.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_no_personal_paths.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_no_pydantic_v1.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_no_redraft_after_send.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_no_reply_is_the_writers_call.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_no_shadowed_names.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_noop_ending.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_not_a_task_undo.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_not_coding.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_note_retrieval.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_notes_applied.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_offer_is_doable.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_onboarding_walk.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_one_app_one_reason.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_one_git_status_per_read.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_one_instance.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_one_pty_one_geometry.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_only_your_own_thread.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_op_label_day.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_openai_compatible_brains.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_operations.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_orgchart.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_origin.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_origin_doors.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_origin_launch.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_origin_roads.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_origin_seed.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_outbound_reports.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_outbox.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_outcomes.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_own_line_two_tasks.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_own_rows_no_reply.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_owner_asks_in_terminal.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_owner_facts_known.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_owner_one_door.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_pane_keeps_the_screen.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_pane_theme.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_passed_line.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_people.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_people_pages.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_people_search.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_permit.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_person_name.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_phone_agent_card.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_phone_approved.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_phone_browse_pass.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_phone_files.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_phone_follows_up.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_phone_only_when_asked.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_phone_picks.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_phone_rewalk.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_phone_todos.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_phone_walk_ux.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_pile_copy_and_encode.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_plain_failures.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_playbook_and_closeout.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_playbook_facts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_playbook_setup.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_playbooks.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_pm.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_policy_mailbox.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_poll_lanes.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_poll_overlap.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_poll_parallel.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_poll_sources.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_pr_comments.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_press_never_waits.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_presses.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_priority_three.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_problems.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_problems_dismiss.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_procedure_selection.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_processing_demo_replay.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_processing_ledger.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_profile_is_a_role.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_progress_without_markers.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_projects.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_promise_came_from.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_promise_owes_reply.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_promote.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_prompt_images.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_prompt_sources.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_promptmap_and_catalog.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_proof_ci_proposals.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_protocol_marks.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_pypi_downloads.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_quick_replay.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_quickbooks.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_quit_and_update.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_qwen.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_rail_advisor_cases.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_rail_advisor_memory.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_rail_advisor_memory_live.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_rail_decisions.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_rail_read.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_railcheck.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_rank.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_rate_limit.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_read_text.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reason_network.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_recent_closures.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_recently_deleted.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reclassify.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_redact.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_redact_doors.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_remind.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_remote_assistant.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_remote_sections.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reopened_arrives_now.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reopened_by_work_stays_on_rail.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reopened_conversation.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_replay_off_the_loop.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reply_always_drafts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reply_attachments.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reply_channels.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reply_envelope.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reply_leaves_by_smtp.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reply_loop_in.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reply_needs_a_correspondent.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reply_opens_at_once.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reply_sees_pictures.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reply_sources.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reply_target.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reply_voice.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reply_watch.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_repo_choice_triage.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_report_alerts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_report_deliver.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_report_delivery_gate.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_report_headline.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_report_made_task.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_report_off.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_report_one_road.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_report_order_and_research.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_report_prompt_isolation.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_report_refusal.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_report_routing.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_report_schedule_saved.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_report_sources_honest.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_report_triage.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_report_triage_line.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reports_graphql.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_research.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_research_is_agent_work.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_research_more.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_restricted_cli.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_rests_on.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_review_delivery_api.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_review_delivery_safety.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_review_task.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_reviews.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_robinhood.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_roles.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_routines.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_routing_memory.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_row_presentation.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_run_another_general.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_run_cost.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_s3_poll_paging.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_same_topic_joins.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_scopes.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_search.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_security_followups.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_seed_fits_a_tty.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_seeded_reports.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_selector_vocabulary.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_self_healing.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_semantic.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_send_close_waits_on_held.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_send_is_not_close.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_send_outcomes.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_send_targets.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_sender_history.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_sender_trust.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_sender_words.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_sendfilter.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_sent_mail_joins_work.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_sentjudge.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_separate_asks_split.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_session_artifacts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_session_continuity.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_session_endings.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_session_files.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_settings_blank_default.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_settings_defaults_json.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_settings_paths.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_settings_schema.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_setup.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_setup_about.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_setup_never_assumes.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_setup_skill.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_setup_state.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_setup_walk.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_sharing.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_sheets_sharepoint.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_shell_gate.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_should_be_a_task.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_signature_layer.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_signature_learn.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_signin.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_signup_from_a_message.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_signup_routing.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_simplefin.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_since.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_skillimport.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_slipped.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_social.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_someone_else_replied.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_soul_interview.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_stages.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_stand_ins_stay_out_of_code.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_start_after_writeup.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_startup_contract.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_stay_open.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_stay_open_doors.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_store_app_cli.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_store_failed_write.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_store_hotpaths.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_store_pokes.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_store_readers.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_store_stalls.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_stranger_floor_more.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_stranger_hub_wall.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_stranger_live_fixes.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_stranger_token.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_strip_signoff.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_sweep.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_sync_clock.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_table_context.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_taken_care_of.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_task_ask.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_task_checklist.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_task_controls_operations.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_task_email.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_task_footprint.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_task_identity.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_task_outputs.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_task_page_receipts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_task_refs.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_task_tools.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_taskstate.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_telegram_buttons.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_teller.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_terminal.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_terminal_render_fast.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_textsim.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_the_exe_ships_what_the_wheel_ships.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_the_split_holds.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_thinking_model_room.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_thread_is_a_hint.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_timewords.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_toil.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_totp.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_tracker_revisions.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_tracker_writeback.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_trackrecord.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_treg.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_triage_cleanup.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_triage_dataset.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_triage_errors.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_triage_guide.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_triage_images.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_triage_joins.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_triage_pr_rule.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_triage_reads_not_guesses.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_triage_retry_sweep.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_triage_sees_meetings.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_triage_urgent.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_trust_and_start.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_trust_buttons.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_trust_org.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_typed_words_press.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_unpack_folder.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_unsubscribe.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_update.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_update_refused.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_urgent_and_handoff.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_vault.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_vendor_invites_fyi.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_verdict_paths.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_verdict_shape.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_verdict_sticks.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_vision.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_voice.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_voice_by_recipient.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_wa_chat_not_showing.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_wabridge.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_wabridge_log_trim.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_waiton.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_waitroom.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_walk_follows_the_rail.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_walk_order.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_walk_order_is_rail_order.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_wanames.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_watermark.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_web_entrypoint.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_webguard.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_welcome_and_voice.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_whatsapp_documents.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_whatsapp_images.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_which_cache.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_whoami.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_why_not_started.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_withdrawn.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_witness.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_wording_slips.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_words.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_worker_brief.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_worker_events.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_worker_resumes.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_worker_scenarios.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_worker_surfaces.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_workerstate_said.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_workflow_brain.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_workflow_from_mail.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_workflow_one_road.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_workflow_owner_decisions.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_workflows.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_working.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_wrap_asks_ahead.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_wrap_open_question.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_writeup_in_background.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_writing_rule_reaches_drafts.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_xlsx_report_headers.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_zz_chipverbs.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_zz_lastword.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_zz_setupchat.py +0 -0
- {taskuary-0.3.9.76 → taskuary-0.3.9.78}/tests/test_zz_toolcatalog.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: taskuary
|
|
3
|
-
Version: 0.3.9.
|
|
3
|
+
Version: 0.3.9.78
|
|
4
4
|
Summary: Your work manager. Locally. Securely. In control. Mail, chats and tickets in one list; your agents do the work, you approve. Runs on your machine.
|
|
5
5
|
License: MIT
|
|
6
6
|
Project-URL: Homepage, https://github.com/ldbumble/taskuary
|
|
@@ -73,7 +73,7 @@ Dynamic: license-file
|
|
|
73
73
|
|
|
74
74
|
[](https://github.com/ldbumble/taskuary/actions/workflows/ci.yml)
|
|
75
75
|
[](https://scorecard.dev/viewer/?uri=github.com/ldbumble/taskuary)
|
|
76
|
-
[](https://pypi.org/project/taskuary/)
|
|
77
77
|
[](https://github.com/ldbumble/taskuary)
|
|
78
78
|
[](LICENSE)
|
|
79
79
|
[](https://github.com/ldbumble/taskuary/stargazers)
|
|
@@ -86,7 +86,7 @@ Dynamic: license-file
|
|
|
86
86
|
|
|
87
87
|

|
|
88
88
|
|
|
89
|
-
Taskuary is early—currently **v0.3.9.
|
|
89
|
+
Taskuary is early—currently **v0.3.9.78**—so breaking changes are still possible before 1.0.
|
|
90
90
|
|
|
91
91
|
<p align="center">
|
|
92
92
|
<a href="https://taskuary.com/demo/"><img
|
|
@@ -111,18 +111,17 @@ one card: what changed since last night, what was learned, the morning digest, y
|
|
|
111
111
|
what waits in each section - so you never open each system in turn. A goal is a task whose steps
|
|
112
112
|
are tasks: triage opens one for an open-ended ask, and files later mail under the step it serves.
|
|
113
113
|
|
|
114
|
-

|
|
115
115
|
|
|
116
116
|
### 2. Let the Assistant walk you through it
|
|
117
117
|
|
|
118
118
|
Choose **Walk me through my tasks**. The Assistant puts one item on the table at a time, as the
|
|
119
|
-
same task
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
answer from.
|
|
119
|
+
same task you would open yourself. Under it is one small bar, **Nav**: **Back** and **Next**, each greyed
|
|
120
|
+
where there is nowhere to go. Everything you can do to the task sits on the task itself (below). For
|
|
121
|
+
anything else, type in the chat pill in the corner - a window opens out of it, and the Assistant already
|
|
122
|
+
has the message, the thread, and your past decisions to answer from.
|
|
124
123
|
|
|
125
|
-

|
|
126
125
|
|
|
127
126
|
Assistant look-ups clamp result limits to a safe range and use their default when a limit is invalid.
|
|
128
127
|
|
|
@@ -130,25 +129,32 @@ Assistant look-ups clamp result limits to a safe range and use their default whe
|
|
|
130
129
|
|
|
131
130
|
Every task reads left to right in three sections: **Came from** (the message, what triage made of it
|
|
132
131
|
and why, the ask), **Agent**, and **Close out**. The section the task is up to opens; the other two fold
|
|
133
|
-
to slim columns beside it that still say where they stand.
|
|
132
|
+
to slim columns beside it that still say where they stand. Each section carries its own moves - on its
|
|
133
|
+
spine when folded, on a strip across its top when open:
|
|
134
134
|
|
|
135
|
-
|
|
135
|
+
- **Came from**: **Remind me**, **Not a task**, and **Change ▾** (split or merge, who does it, priority, assignee, where the code is).
|
|
136
|
+
- **Agent**: **Send to agent**, then **Continue** or **Run another agent** once it has run.
|
|
137
|
+
- **Close out**: **Draft reply** or **Reply**, **Hand it to a person**, **Mark done**, **Close with a note**, **Attach a file**, and **Share**.
|
|
138
|
+
|
|
139
|
+

|
|
136
140
|
|
|
137
141
|
### 4. The agent shows what it did
|
|
138
142
|
|
|
139
|
-
|
|
140
|
-
Result:
|
|
141
|
-
The whole conversation is one link under it.
|
|
143
|
+
Choose **Send to agent**; the agent works in the Agent section. When it finishes, that section rests on its
|
|
144
|
+
Result: a summary, its answer, what it found, and **What it made** - each file with Open and Download.
|
|
145
|
+
The whole conversation is one link under it. **Continue** picks the same agent up with a note from you;
|
|
146
|
+
**Run another agent** starts a second agent on the same task. Here the agent prepares the numbers, checks that the
|
|
142
147
|
categories add up, saves a workbook, and drafts the reply. Nothing is sent.
|
|
143
148
|
|
|
144
|
-

|
|
145
150
|
|
|
146
151
|
### 5. The last word is yours
|
|
147
152
|
|
|
148
153
|
The prepared reply waits in **Close out**, addressed to Ruth, with Came from and the agent's Result
|
|
149
|
-
folded beside it. Read it, edit it, and choose **Send** when it is ready - or Redraft
|
|
154
|
+
folded beside it. Read it, edit it, and choose **Send** when it is ready - or **Redraft**. Sending and
|
|
155
|
+
closing are two steps: the task stays open until you choose **Mark done**.
|
|
150
156
|
|
|
151
|
-

|
|
152
158
|
|
|
153
159
|
### 6. Start your day before it gets busy
|
|
154
160
|
|
|
@@ -156,22 +162,44 @@ Each morning the Assistant opens on what changed since last night, what it learn
|
|
|
156
162
|
and what waits in each section - and the morning digest unfolds in place, so it is never stale by the
|
|
157
163
|
time you reach it. Ruth's request has a clear deadline: the 11:30 operations review.
|
|
158
164
|
|
|
159
|
-

|
|
160
166
|
|
|
161
167
|
## Key features
|
|
162
168
|
|
|
163
169
|
### Reports, dashboards, and FYI open like work
|
|
164
170
|
|
|
165
171
|
A report opens in the same three sections as a task, the report itself in the middle - its chart,
|
|
166
|
-
its table, the files it attached - with
|
|
172
|
+
its table, the files it attached - with **Put it on my list** beside Nav when it should become work. Dashboards land beside the reports.
|
|
167
173
|
What needs nothing from you is batched: one FYI card holds every message of the batch, each folded to
|
|
168
174
|
who, where, and its line, and **All read, next** moves on.
|
|
169
175
|
|
|
170
|
-

|
|
177
|
+
|
|
178
|
+

|
|
179
|
+
|
|
180
|
+

|
|
181
|
+
|
|
182
|
+
### General agents, coding agents, and how work fans out
|
|
171
183
|
|
|
172
|
-
|
|
184
|
+
A **coding agent** works in a terminal in your repository. A **general agent** works in a conversation -
|
|
185
|
+
research, a recommendation, a drafted reply - and touches no system. Both run on a **brain**: a CLI such as
|
|
186
|
+
Claude Code or Codex, or an AI connection, with the model you chose on it. What they are told is a
|
|
187
|
+
**profile**: instructions such as `ASSISTANT.md` for general work and `CODING.md` for code, laid on
|
|
188
|
+
whichever brain runs it.
|
|
173
189
|
|
|
174
|
-
|
|
190
|
+
Most general asks are short. When triage reads one as quick, it is answered in a single call that leaves
|
|
191
|
+
the same Result, draft, or question on the task an agent would. Hard work, work that needs a browser, and
|
|
192
|
+
a quick call that finds it needs more go to a full agent session.
|
|
193
|
+
|
|
194
|
+
Work fans out at three levels:
|
|
195
|
+
|
|
196
|
+
- **Agent sessions** run side by side up to **Settings → Agents at once** (4 by default, up to 16). The rest
|
|
197
|
+
wait their turn and start as sessions end. Sessions you start yourself are never held back.
|
|
198
|
+
- **Quick work** has its own pool of eight calls at once, apart from that number, so a burst of mail is
|
|
199
|
+
answered without opening sessions.
|
|
200
|
+
- **Inside a session**, a CLI may start its own subagents, background shells, and monitors. Taskuary reads
|
|
201
|
+
them from the session and keeps the agent shown as working while they run; they are part of that one
|
|
202
|
+
session, not extra ones.
|
|
175
203
|
|
|
176
204
|
### Use your coding CLI
|
|
177
205
|
|
|
@@ -183,21 +211,36 @@ For Qwen Code, see the [setup and compatibility guide](docs/qwen-code.md).
|
|
|
183
211
|
Use DeepSeek, GLM, or MiniMax through OpenCode, or connect Moonshot's Kimi Code:
|
|
184
212
|
[setup steps and supported roles](docs/chinese-coding-clis.md).
|
|
185
213
|
|
|
186
|
-

|
|
187
215
|
|
|
188
216
|
### A shared Hub for what agents learn
|
|
189
217
|
|
|
190
218
|
Keep discoveries, decisions, and useful warnings by topic. Agents can find what earlier work
|
|
191
219
|
uncovered, discuss it, and correct it instead of starting from scratch.
|
|
192
220
|
|
|
193
|
-

|
|
194
222
|
|
|
195
223
|
### Agents leave notes for each other
|
|
196
224
|
|
|
197
225
|
The Board's **Live handoffs** show what agents are working on, what is blocked, and what is ready.
|
|
198
226
|
An agent leaves a note; the next one reads it before picking up the work.
|
|
199
227
|
|
|
200
|
-

|
|
229
|
+
|
|
230
|
+
### Routines, connections, sign-ins, and your phone
|
|
231
|
+
|
|
232
|
+
- **Routines.** **New → Routine** runs a job on a schedule - checks, opening tasks, preparing drafts. A coding
|
|
233
|
+
routine runs a Claude Code skill in the repository you choose, as its own slash command. Each run files a
|
|
234
|
+
task, and routines sit beside reports under **Reports → Routines**.
|
|
235
|
+
- **Combine.** Each mail and messaging connection has a **Combine** slider, 1 (Separate) to 5 (Combine): how
|
|
236
|
+
readily a message from there joins a task on the same subject rather than becoming its own.
|
|
237
|
+
- **Data connections feed reports.** Finance and commerce sources such as Intacct, QuickBooks, and Amazon
|
|
238
|
+
feed reports, dashboards, and agents; they do not put items on your rail.
|
|
239
|
+
- **Sign-ins stay yours.** When an agent's browser reaches a sign-in page, take over the pane or use a
|
|
240
|
+
one-time sign-in page; Taskuary types the password itself, and the agent never sees it. Saved sign-ins and
|
|
241
|
+
authenticator keys are under **Settings → Agent permissions**.
|
|
242
|
+
- **Your phone.** Over WhatsApp or Telegram, the same Assistant walks your tasks with the same buttons. It
|
|
243
|
+
speaks only while you are talking to it. See [On your phone](https://taskuary.com/docs/phone).
|
|
201
244
|
|
|
202
245
|
### Memory that learns how you work
|
|
203
246
|
|
|
@@ -220,7 +263,7 @@ answer, whether a chase is needed, who on copy moves them - and a thread gone qu
|
|
|
220
263
|
person's own day is *slipped*, on your rail under Tasks, with Chase, Let it go, They answered elsewhere
|
|
221
264
|
and Remind me under it. See [The Advisor](https://taskuary.com/docs/advisor).
|
|
222
265
|
|
|
223
|
-

|
|
224
267
|
|
|
225
268
|
<details>
|
|
226
269
|
<summary>Technical details: how LEARNED.md becomes memory</summary>
|
|
@@ -300,7 +343,7 @@ channel, then choose the coding CLI that should receive tasks. The setup wizards
|
|
|
300
343
|
connection before it goes live.
|
|
301
344
|
|
|
302
345
|
GitHub repository pickers apply to their own connection. Until an issues picker is set,
|
|
303
|
-
an inbound trigger creates tasks, a feed connection
|
|
346
|
+
an inbound trigger creates tasks, a feed connection shows issues to read without triage, and a tool-only
|
|
304
347
|
connection leaves issues off. PRs default off. An explicit repository picker overrides
|
|
305
348
|
that connection's role without enabling other repositories or connections.
|
|
306
349
|
|
|
@@ -325,7 +368,7 @@ Updated daily from PyPI with mirror traffic excluded. The raw series is
|
|
|
325
368
|
The documentation is at **[taskuary.com/docs](https://taskuary.com/docs/)**.
|
|
326
369
|
|
|
327
370
|
- [Start here](https://taskuary.com/docs/)—installation, first run, Docker, and where your data lives
|
|
328
|
-
- [How it works](https://taskuary.com/docs/how-it-works)—the
|
|
371
|
+
- [How it works](https://taskuary.com/docs/how-it-works)—the work rail, the five roads, what triage decides, the operator documents
|
|
329
372
|
- [Connections](https://taskuary.com/docs/connections)—channels, AI providers, work systems, and report sources
|
|
330
373
|
- [Tasks and agents](https://taskuary.com/docs/tasks-and-agents)—the task, the agent work and the reply as three separate lives
|
|
331
374
|
- [Security](https://taskuary.com/docs/security)—prompt injection: what Taskuary does about it, what it does not do yet, and what to set
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://github.com/ldbumble/taskuary/actions/workflows/ci.yml)
|
|
6
6
|
[](https://scorecard.dev/viewer/?uri=github.com/ldbumble/taskuary)
|
|
7
|
-
[](https://pypi.org/project/taskuary/)
|
|
8
8
|
[](https://github.com/ldbumble/taskuary)
|
|
9
9
|
[](LICENSE)
|
|
10
10
|
[](https://github.com/ldbumble/taskuary/stargazers)
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|

|
|
19
19
|
|
|
20
|
-
Taskuary is early—currently **v0.3.9.
|
|
20
|
+
Taskuary is early—currently **v0.3.9.78**—so breaking changes are still possible before 1.0.
|
|
21
21
|
|
|
22
22
|
<p align="center">
|
|
23
23
|
<a href="https://taskuary.com/demo/"><img
|
|
@@ -42,18 +42,17 @@ one card: what changed since last night, what was learned, the morning digest, y
|
|
|
42
42
|
what waits in each section - so you never open each system in turn. A goal is a task whose steps
|
|
43
43
|
are tasks: triage opens one for an open-ended ask, and files later mail under the step it serves.
|
|
44
44
|
|
|
45
|
-

|
|
46
46
|
|
|
47
47
|
### 2. Let the Assistant walk you through it
|
|
48
48
|
|
|
49
49
|
Choose **Walk me through my tasks**. The Assistant puts one item on the table at a time, as the
|
|
50
|
-
same task
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
answer from.
|
|
50
|
+
same task you would open yourself. Under it is one small bar, **Nav**: **Back** and **Next**, each greyed
|
|
51
|
+
where there is nowhere to go. Everything you can do to the task sits on the task itself (below). For
|
|
52
|
+
anything else, type in the chat pill in the corner - a window opens out of it, and the Assistant already
|
|
53
|
+
has the message, the thread, and your past decisions to answer from.
|
|
55
54
|
|
|
56
|
-

|
|
57
56
|
|
|
58
57
|
Assistant look-ups clamp result limits to a safe range and use their default when a limit is invalid.
|
|
59
58
|
|
|
@@ -61,25 +60,32 @@ Assistant look-ups clamp result limits to a safe range and use their default whe
|
|
|
61
60
|
|
|
62
61
|
Every task reads left to right in three sections: **Came from** (the message, what triage made of it
|
|
63
62
|
and why, the ask), **Agent**, and **Close out**. The section the task is up to opens; the other two fold
|
|
64
|
-
to slim columns beside it that still say where they stand.
|
|
63
|
+
to slim columns beside it that still say where they stand. Each section carries its own moves - on its
|
|
64
|
+
spine when folded, on a strip across its top when open:
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
- **Came from**: **Remind me**, **Not a task**, and **Change ▾** (split or merge, who does it, priority, assignee, where the code is).
|
|
67
|
+
- **Agent**: **Send to agent**, then **Continue** or **Run another agent** once it has run.
|
|
68
|
+
- **Close out**: **Draft reply** or **Reply**, **Hand it to a person**, **Mark done**, **Close with a note**, **Attach a file**, and **Share**.
|
|
69
|
+
|
|
70
|
+

|
|
67
71
|
|
|
68
72
|
### 4. The agent shows what it did
|
|
69
73
|
|
|
70
|
-
|
|
71
|
-
Result:
|
|
72
|
-
The whole conversation is one link under it.
|
|
74
|
+
Choose **Send to agent**; the agent works in the Agent section. When it finishes, that section rests on its
|
|
75
|
+
Result: a summary, its answer, what it found, and **What it made** - each file with Open and Download.
|
|
76
|
+
The whole conversation is one link under it. **Continue** picks the same agent up with a note from you;
|
|
77
|
+
**Run another agent** starts a second agent on the same task. Here the agent prepares the numbers, checks that the
|
|
73
78
|
categories add up, saves a workbook, and drafts the reply. Nothing is sent.
|
|
74
79
|
|
|
75
|
-

|
|
76
81
|
|
|
77
82
|
### 5. The last word is yours
|
|
78
83
|
|
|
79
84
|
The prepared reply waits in **Close out**, addressed to Ruth, with Came from and the agent's Result
|
|
80
|
-
folded beside it. Read it, edit it, and choose **Send** when it is ready - or Redraft
|
|
85
|
+
folded beside it. Read it, edit it, and choose **Send** when it is ready - or **Redraft**. Sending and
|
|
86
|
+
closing are two steps: the task stays open until you choose **Mark done**.
|
|
81
87
|
|
|
82
|
-

|
|
83
89
|
|
|
84
90
|
### 6. Start your day before it gets busy
|
|
85
91
|
|
|
@@ -87,22 +93,44 @@ Each morning the Assistant opens on what changed since last night, what it learn
|
|
|
87
93
|
and what waits in each section - and the morning digest unfolds in place, so it is never stale by the
|
|
88
94
|
time you reach it. Ruth's request has a clear deadline: the 11:30 operations review.
|
|
89
95
|
|
|
90
|
-

|
|
91
97
|
|
|
92
98
|
## Key features
|
|
93
99
|
|
|
94
100
|
### Reports, dashboards, and FYI open like work
|
|
95
101
|
|
|
96
102
|
A report opens in the same three sections as a task, the report itself in the middle - its chart,
|
|
97
|
-
its table, the files it attached - with
|
|
103
|
+
its table, the files it attached - with **Put it on my list** beside Nav when it should become work. Dashboards land beside the reports.
|
|
98
104
|
What needs nothing from you is batched: one FYI card holds every message of the batch, each folded to
|
|
99
105
|
who, where, and its line, and **All read, next** moves on.
|
|
100
106
|
|
|
101
|
-

|
|
108
|
+
|
|
109
|
+

|
|
110
|
+
|
|
111
|
+

|
|
112
|
+
|
|
113
|
+
### General agents, coding agents, and how work fans out
|
|
102
114
|
|
|
103
|
-
|
|
115
|
+
A **coding agent** works in a terminal in your repository. A **general agent** works in a conversation -
|
|
116
|
+
research, a recommendation, a drafted reply - and touches no system. Both run on a **brain**: a CLI such as
|
|
117
|
+
Claude Code or Codex, or an AI connection, with the model you chose on it. What they are told is a
|
|
118
|
+
**profile**: instructions such as `ASSISTANT.md` for general work and `CODING.md` for code, laid on
|
|
119
|
+
whichever brain runs it.
|
|
104
120
|
|
|
105
|
-
|
|
121
|
+
Most general asks are short. When triage reads one as quick, it is answered in a single call that leaves
|
|
122
|
+
the same Result, draft, or question on the task an agent would. Hard work, work that needs a browser, and
|
|
123
|
+
a quick call that finds it needs more go to a full agent session.
|
|
124
|
+
|
|
125
|
+
Work fans out at three levels:
|
|
126
|
+
|
|
127
|
+
- **Agent sessions** run side by side up to **Settings → Agents at once** (4 by default, up to 16). The rest
|
|
128
|
+
wait their turn and start as sessions end. Sessions you start yourself are never held back.
|
|
129
|
+
- **Quick work** has its own pool of eight calls at once, apart from that number, so a burst of mail is
|
|
130
|
+
answered without opening sessions.
|
|
131
|
+
- **Inside a session**, a CLI may start its own subagents, background shells, and monitors. Taskuary reads
|
|
132
|
+
them from the session and keeps the agent shown as working while they run; they are part of that one
|
|
133
|
+
session, not extra ones.
|
|
106
134
|
|
|
107
135
|
### Use your coding CLI
|
|
108
136
|
|
|
@@ -114,21 +142,36 @@ For Qwen Code, see the [setup and compatibility guide](docs/qwen-code.md).
|
|
|
114
142
|
Use DeepSeek, GLM, or MiniMax through OpenCode, or connect Moonshot's Kimi Code:
|
|
115
143
|
[setup steps and supported roles](docs/chinese-coding-clis.md).
|
|
116
144
|
|
|
117
|
-

|
|
118
146
|
|
|
119
147
|
### A shared Hub for what agents learn
|
|
120
148
|
|
|
121
149
|
Keep discoveries, decisions, and useful warnings by topic. Agents can find what earlier work
|
|
122
150
|
uncovered, discuss it, and correct it instead of starting from scratch.
|
|
123
151
|
|
|
124
|
-

|
|
125
153
|
|
|
126
154
|
### Agents leave notes for each other
|
|
127
155
|
|
|
128
156
|
The Board's **Live handoffs** show what agents are working on, what is blocked, and what is ready.
|
|
129
157
|
An agent leaves a note; the next one reads it before picking up the work.
|
|
130
158
|
|
|
131
|
-

|
|
160
|
+
|
|
161
|
+
### Routines, connections, sign-ins, and your phone
|
|
162
|
+
|
|
163
|
+
- **Routines.** **New → Routine** runs a job on a schedule - checks, opening tasks, preparing drafts. A coding
|
|
164
|
+
routine runs a Claude Code skill in the repository you choose, as its own slash command. Each run files a
|
|
165
|
+
task, and routines sit beside reports under **Reports → Routines**.
|
|
166
|
+
- **Combine.** Each mail and messaging connection has a **Combine** slider, 1 (Separate) to 5 (Combine): how
|
|
167
|
+
readily a message from there joins a task on the same subject rather than becoming its own.
|
|
168
|
+
- **Data connections feed reports.** Finance and commerce sources such as Intacct, QuickBooks, and Amazon
|
|
169
|
+
feed reports, dashboards, and agents; they do not put items on your rail.
|
|
170
|
+
- **Sign-ins stay yours.** When an agent's browser reaches a sign-in page, take over the pane or use a
|
|
171
|
+
one-time sign-in page; Taskuary types the password itself, and the agent never sees it. Saved sign-ins and
|
|
172
|
+
authenticator keys are under **Settings → Agent permissions**.
|
|
173
|
+
- **Your phone.** Over WhatsApp or Telegram, the same Assistant walks your tasks with the same buttons. It
|
|
174
|
+
speaks only while you are talking to it. See [On your phone](https://taskuary.com/docs/phone).
|
|
132
175
|
|
|
133
176
|
### Memory that learns how you work
|
|
134
177
|
|
|
@@ -151,7 +194,7 @@ answer, whether a chase is needed, who on copy moves them - and a thread gone qu
|
|
|
151
194
|
person's own day is *slipped*, on your rail under Tasks, with Chase, Let it go, They answered elsewhere
|
|
152
195
|
and Remind me under it. See [The Advisor](https://taskuary.com/docs/advisor).
|
|
153
196
|
|
|
154
|
-

|
|
155
198
|
|
|
156
199
|
<details>
|
|
157
200
|
<summary>Technical details: how LEARNED.md becomes memory</summary>
|
|
@@ -231,7 +274,7 @@ channel, then choose the coding CLI that should receive tasks. The setup wizards
|
|
|
231
274
|
connection before it goes live.
|
|
232
275
|
|
|
233
276
|
GitHub repository pickers apply to their own connection. Until an issues picker is set,
|
|
234
|
-
an inbound trigger creates tasks, a feed connection
|
|
277
|
+
an inbound trigger creates tasks, a feed connection shows issues to read without triage, and a tool-only
|
|
235
278
|
connection leaves issues off. PRs default off. An explicit repository picker overrides
|
|
236
279
|
that connection's role without enabling other repositories or connections.
|
|
237
280
|
|
|
@@ -256,7 +299,7 @@ Updated daily from PyPI with mirror traffic excluded. The raw series is
|
|
|
256
299
|
The documentation is at **[taskuary.com/docs](https://taskuary.com/docs/)**.
|
|
257
300
|
|
|
258
301
|
- [Start here](https://taskuary.com/docs/)—installation, first run, Docker, and where your data lives
|
|
259
|
-
- [How it works](https://taskuary.com/docs/how-it-works)—the
|
|
302
|
+
- [How it works](https://taskuary.com/docs/how-it-works)—the work rail, the five roads, what triage decides, the operator documents
|
|
260
303
|
- [Connections](https://taskuary.com/docs/connections)—channels, AI providers, work systems, and report sources
|
|
261
304
|
- [Tasks and agents](https://taskuary.com/docs/tasks-and-agents)—the task, the agent work and the reply as three separate lives
|
|
262
305
|
- [Security](https://taskuary.com/docs/security)—prompt injection: what Taskuary does about it, what it does not do yet, and what to set
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "taskuary"
|
|
7
|
-
version = "0.3.9.
|
|
7
|
+
version = "0.3.9.78"
|
|
8
8
|
description = "Your work manager. Locally. Securely. In control. Mail, chats and tickets in one list; your agents do the work, you approve. Runs on your machine."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_": "A BLANK LEFT IN A DRAFT (the owner, 2026-10-30): a draft can hold a slot like [REASON] or [DATE] for the owner to fill, and Send went out with it. Send refuses while one remains - the server (taskuary/blanks.py, read by verdicts) and the draft box (website/src/blanks.js), which reads this same file. A slot is a bracket that is ALL CAPS (two letters or more), a run of underscores, or a short phrase that starts with a template cue. `not_slots` are the bracketed words real mail carries (a gateway's [EXTERNAL], a log's [ERROR]); a bracket holding a `said` word is an editor's own note ([name withheld]), never a slot.",
|
|
3
|
+
"not_slots": ["EXTERNAL", "EXT", "CAUTION", "WARNING", "WARN", "SPAM", "SUSPECTED SPAM", "ENCRYPT", "ENCRYPTED", "SECURE", "CONFIDENTIAL",
|
|
4
|
+
"URGENT", "IMPORTANT", "FYI", "RE", "FW", "FWD", "INFO", "DEBUG", "ERROR", "FATAL", "TRACE", "OK", "PASS", "PASSED",
|
|
5
|
+
"FAIL", "FAILED", "SKIP", "SKIPPED", "N/A", "NA", "SIC"],
|
|
6
|
+
"cues": ["your", "insert", "enter", "add", "fill in", "recipient", "recipient's", "customer", "client", "first name", "last name", "full name",
|
|
7
|
+
"name", "date", "time", "day", "amount", "number", "phone", "address", "email", "company", "title", "position", "reason", "link",
|
|
8
|
+
"details", "placeholder"],
|
|
9
|
+
"said": ["redacted", "removed", "withheld", "omitted", "sic"]
|
|
10
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"""A BLANK LEFT IN A DRAFT (the owner, 2026-10-30): a drafted reply can hold a slot like "[REASON]" or "[DATE]" for the owner to
|
|
2
|
+
fill, and Send went out with it. Send refuses while one remains - here, so the task page, the phone and the assistant all meet the
|
|
3
|
+
same refusal (verdicts.decide is the one door) - and the draft box marks them (website/src/blanks.js, from the same blanks.json).
|
|
4
|
+
|
|
5
|
+
Only template slots count, never the brackets real mail carries: a gateway's "[External]" tag, a markdown link "[text](url)", a
|
|
6
|
+
footnote "[1]", a checkbox "[x]", code ("rows[INDEX]", anything in backticks) and quoted lines ("> ...") all go out as they are."""
|
|
7
|
+
import json, re
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
|
|
10
|
+
_J = json.loads(Path(__file__).with_name('blanks.json').read_text(encoding='utf-8'))
|
|
11
|
+
NOT_SLOTS, SAID = frozenset(_J['not_slots']), frozenset(_J['said'])
|
|
12
|
+
# a bracket not glued to a word before it (an index) and not a link's text or a reference's label after it
|
|
13
|
+
BOX = re.compile(r'(?<![\w\]\\])\[([^\[\]\n]{1,60})\](?!\(|\[|:\s*(?:https?://|<))', re.A)
|
|
14
|
+
_SHOUT = re.compile(r"[A-Z][A-Z0-9'’&/.,#_ -]*")
|
|
15
|
+
_CUE = re.compile(r"(?ai)(?:%s)\b" % '|'.join(re.escape(c) for c in sorted(_J['cues'], key=len, reverse=True)))
|
|
16
|
+
_PHRASE = re.compile(r"[A-Za-z][\w'’&/.,# -]{0,39}", re.A)
|
|
17
|
+
# code and quoted lines are someone else's words: blanked to spaces so a slot's place in the text stays where it was
|
|
18
|
+
_ASIDE = re.compile(r'```[\s\S]*?(?:```|\Z)|`[^`\n]*`|^[ \t]*>[^\n]*', re.M)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def is_slot(inner: str) -> bool:
|
|
22
|
+
s = inner.strip()
|
|
23
|
+
if not s or s.upper() in NOT_SLOTS or SAID & set(re.findall(r'[a-z]+', s.lower())): return False
|
|
24
|
+
if re.fullmatch(r'_{2,}', s): return True
|
|
25
|
+
if _SHOUT.fullmatch(s): return len(re.findall('[A-Z]', s)) >= 2
|
|
26
|
+
return bool(_PHRASE.fullmatch(s) and _CUE.match(s))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def spans(text: str) -> list:
|
|
30
|
+
"""(start, end, '[SLOT]') for every blank still in the text, in order."""
|
|
31
|
+
if not text: return []
|
|
32
|
+
seen = _ASIDE.sub(lambda m: re.sub(r'[^\n]', ' ', m.group()), text)
|
|
33
|
+
return [(m.start(), m.end(), text[m.start():m.end()]) for m in BOX.finditer(seen) if is_slot(m.group(1))]
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def find(text: str) -> list:
|
|
37
|
+
"""The blanks as written, each once."""
|
|
38
|
+
return list(dict.fromkeys(s for *_, s in spans(text)))
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def refusal(text: str) -> str:
|
|
42
|
+
"""'Fill in [REASON] first' while a blank remains; '' when the text can go."""
|
|
43
|
+
b = find(text)
|
|
44
|
+
if not b: return ''
|
|
45
|
+
return f"Fill in {b[0] if len(b) == 1 else ', '.join(b[:-1]) + ' and ' + b[-1]} first"
|
|
@@ -3657,7 +3657,7 @@ def card_for(item: dict) -> dict:
|
|
|
3657
3657
|
# an FYI from a list that names its own way off it: the card's Unsubscribe (unsubscribe.py)
|
|
3658
3658
|
'unsub',
|
|
3659
3659
|
# ...and what triage read the words as trying to make an AI do, beside the mail's own subject (B3)
|
|
3660
|
-
'danger', 'subject',
|
|
3660
|
+
'danger', 'danger_aim', 'subject',
|
|
3661
3661
|
'presentation_revision', 'order_band', 'processing_id', 'member_ids', 'members', 'aliases', 'unread', 'deferred', 'actionable', 'paused', 'closed',
|
|
3662
3662
|
# ...and an FYI row speaking for its email thread: the mails it opens on (processing_unread.fold_fyi_threads)
|
|
3663
3663
|
'brief_today', 'thread', 'thread_n', 'thread_items')} | ({'dashboard': True} if item.get('dashboard') else {}) # a dashboard's row draws the dashboard
|