The renderer.php lines 112-114:
foreach ($sel_application->modules as $module)
{
echo "<p ".$first." class='menu_head'>".$module->name."</p>\n";
displays only those modules that are enabled and passed onto it. It appears that the Dashboard module remains inactive as far as ths is concerned even if it has been activated for the company under use.
Therefore during installation, it must be explicitly be made active in the web root's installed_extensions.php and accordingly passed on to the one under the company/#/installed_extensions.php as well.
The non standard approach to having the installed_extensions.php's array subscript "active" as being true/false or 0/1 in the webroot 's installed_extensions.php and in the company/#/installed_extensions.php may cause problems - better to standardise on either the boolean variant or the integer flag method.
The dashboard module's name in line 13 of hooks.php - is it's case sensitivity important:
var $module_name = 'dashboard';
Lines 18-27 of the dashboard module's dashboard.php:
//$this->add_module(_("Dashboard"));
$this->widgets = array();
$this->add_extensions();
$this->apps = array("orders"=>_("Sales"),
"AP"=>_("Purchases"),
"stock"=>_("Items and Inventory"),
"manuf"=>_("Manufacturing"),
"GL"=>_("Banking and General Ledger"),
"Dashboard"=>_("Dashboard"));
also has case sensitive issue for module name and the commented out add_module line.
Also a list of translatable entries should be placed in an empty.po or some sample language file like en_US.po/mo