[evol] Botnet: propagate API calls environment (user token and language prefs at the moment), propagate session a bit further too in order to implement a more dynamic API tree
[evol] Records: temporarily disclose object DN until LdapShadows is used
[fix/evol] work on better Interface/Task/Conversation/… sync and bot stop action in order to avoid races and locks
[evol] Protocol: allow returning multiple errors
[fix] DSL: do not hide original methods anymore, as we need too much things (class/is_a?/respond_to?/…, logger, I18n stuff…)
[comments] typo
[debug] log more when connecting to peer
[fix] Protocol: typo leading to error result not detected
[fix] correct TaskAspect to find the bot reference correctly
[evol] Cyborg/Interface: support returning API call replies asynchronously
[debug] Cyborg/DSL: more debug for subtasks
[evol] Cyborg: allow to schedule a task without callback
[evol] Conversation: ensure idle check timer are ready for asynchronous replies on the same thread
[fix] Conversation: don't crash if message parameters cannot be parsed
[evol] Conversation: ensure Message is sent in one block in order to allow asynchronous replies on the same thread
[monkeypatch] added support for to_hash to OpenStruct
[monkeypatch] backported a patch to solve @_rails_html_safe breaking YAML parsing
[evol] ServerApiNode: added task ability
[evol] Cyborg/DSL: temporary setting to know which user we are working for
[evol] cleanup and preliminary work on the Postman (and Needle-ization)
[licence] updated copyright years
[evol] Botnet/Interface: '/?' search now return a Hash in order to get the object name easily for further manipulations, updated Librarian accordingly
[fix] Botnet/Interface: removed silly String cast when searching nodes
[fix] MapMaker/DNS: better handle when zone content is not parseable
[fix] MapMaker/DNS: better check if zone has signed zone file before certain operations
[fix] MapMaker: user correct Needle model to instanciate Zone
[evol] Librarian/API: discover available records automatically
[evol] Librarian API work §3
[fix] Cyborg: try to stop harder (without useless delay)
[fix] Conversation: handle timer better when closing
[evol] Protocol/Interface: don't check for existence before node call, it is already done in call and a loss of time
[fix] method name mistake
[evol] Librarian API work §2
[evol] Librarian API work §1, using DI too
[evol] MapMaker API and internals rework §1, going forward to Dependency Injection using Needle
[evol] DNS API rework §1
[fix] Interface: intercept several possible errors around interface definition
[evol] API: implemented hidden nodes and used it to create a '?' node used to search children based on their attributes
[fix] DNS: don't fail if zone cannot be parsed (not a nice solution yet)
[fix] corrected MapMaker API
[fix] Protocol: check node existence asynchronously for CALL
[evol] Protocol/DSL: implemented node existence check
[evol] allow splitting the API interface declaration over multiple files/directories, split MapMaker interface, and added cross-nodes storage during the interface life (as we can't use closures across files)
[fix] recreate the whole API interface tree, root included, to ensure no clash is possible during concurrent calls
Merge branch '0.3.x' of ssh://rcs-git.duckcorp.org/rcs/git/duckcorp/cyborghood
[fix] Mail: don't forget to reverse-propagate the user into the original mail object when decrypting
[debug] more IMAP debug
[workaround] TMail does not respect RFC2045 §5.2
[evol] select and record I18n locale in DSL Task (future use)
[fix] clarify language/locale in I18nController
[fix] a task must have a name (and be unique, but this is not enforced yet)
[evol] BotnetTask DSL: now that we have one Task per task, close conversation thread as soon as the task is finished
[evol] Task DSL: rework to use the same Task objet for the same task (in order to have a proper count of tasks and be able to transport information easily through steps)
[fix] separate core api version from cyborg service api version
[fix] mistakes in API Interface: forgot to export node_name, and forgot :inspect is not available for nodes
[fix] mistake in variable name
[evol] server API tree reworked using a DSL (reply handling rework is WIP)
[evol] DNS: add better support for signed zones and serials, and partial support for slave zones
[evol] catch all remaining reactor errors
[fix] do not try to stop the bot by default
[fix] DSL: allow scheduled job to send back a reply
[cleanup] minor
[fix] missing config change leading to failure when generating server UNIX socket filename
[layout] reorganization
[evol] connect_peer: made most of the code generic to all backends
[evol] connect_peer: do not open multiple connections to the same peer while one is being attempted already
[fix] ConversationThread: register communication when communication is validated, not when peer info are received
[evol] ConversationThread: added convenience method for notification
[fix] remove traces of old Botnet DSL
[evol] Botnet Conversation: removed old idle check mecanism while preserving notification
[evol] Botnet Conversation: created a new idle threads check (old method is pending for removal)
[evol] Task-based client DSL §6 (added botnet 'ask' subtask)
[fix] Task-based client DSL: use :task instead of :thread from old DSL for task notification shortcut name
[evol] Task-based client DSL §5 (allow running subtasks in callbacks, implement 'meet' command, and fixed a race btw)
[evol] Task-based client DSL §4 (many fixes, helper, bot stop condition, more logging)
[evol] Task-based client DSL §3 (pass errors and results to next step)
[evol] Task-based client DSL §2 (Subtask and logger)
[evol] added preliminary work on new Task-based client DSL
[fix] DSL: correct mistake for outgoing notifications
[evol] DSL: partial implementation for wait_notification with callback (unfinished, but kept as example)
[evol] client DSL: reorganized notification code and move 'acts' (currently sending notifies) in the _start_dsl call
[evol] preliminary work for Conversation synchronization in DSL (action callbacks had to be moved from Protocol to ConversationThread to be able to check idle with the new locks, needed to process notifications without falling idle)
[evol] reworked notification system a bit (global registration)
[fix] corrected silly mistakes in Botnet DSL
[fix] don't crash if config or default config is empty
[evol] created a DSL for client-side calls (several conditions (calls only at the moment) can be joined together in order to exploit parallel tasks via asynchronous calls)
[evol] improve a bit how interface errors are transmitted
[evol] added convenience method to CALL directly from a thread
[fix] adapted Interface to recent changes, pass bot object, and correct api_methods() calculation
[fix] correct argument passing for send/receive_request_call
[evol] move notification from Protocol to Conversation
[fix] ensure pending threads are removed from the list when destroyed
[fix] ensure pending threads/conversations are uniquely registered
[evol] add system/user notif to bot level and detecte when a conversation is idle, to close it after used in connect_peer() with block
[evol] added a user event queue for NOTIFY EVENT received
[evol] internal notification when thread is idle allowed to mark thread closing pending
[evol] preliminary work for NOTIFY: closed thread are handled but close too early in most situations yet (need request/reply tracking)
[evol] conversation/bot protocol rework §8 (refs #30): preliminary client-side protocol handling
[fix] correct action_id generation (a reply should use the same id as the corresponding request)